DevOpsエンジニアには、要件から開発、テスト、運用まで、あらゆる段階で自動化テクノロジおよびツールを実装する能力が求められる、とAT&Tの幹部であるJim Morse氏は話す。
インフラストラクチャシステムを手動で設定する時代は終わった、とkCuraのリードDevOpsエンジニアAdam Kadzban氏は話す。Kadzban氏は、「インフラストラクチャのプロビジョニングと設定は、コードで行う必要がある。そうしなければ、サポートに忙殺されるだろう」と述べた。「PowerShell」や「Chef」「Terraform」といったツールはこれを実現し、インフラストラクチャ自動化を可能にする。オンプレミス(VMWare、「Hyper-V」など)やクラウド(Azure、Amazon Web Servicesなど)のインフラストラクチャプロバイダーの利用経験も非常に大きな武器になる。「インフラストラクチャと監視ツールの接続を自動化するのを忘れてはいけない」(同氏)
5. テスト
Software Stewards文言のプログラマーでコンサルタントのAndrae Raymond氏によると、DevOpsエンジニアとして成功するには、強力なテストスキルが必要だという。
「コードや機能のデプロイを自動化するという考えは、人々に不安を抱かせることもある。何か不具合が発生したときにエンドユーザーに及ぼす影響を考えると、なおさらだ。適切なテスト体制が確立していれば、それぞれの機能は意図通りのことを実行しているという安心感を得られる。開発からデプロイまでの全ての段階で、テストを実行して、新しい機能がシステム全体に悪影響を及ぼしていないか確認することが可能だ」(Raymond氏)
6. 顧客第一のマインドセット
DevOpsエンジニアは通常、外向きの役割ではないが、開発者、QA、顧客の成功、プロジェクト管理、ビジネスリーダーの全てが彼らのクライアントだとGiles氏は話す。「運用と開発、製品チームからのさまざまな要望に対応するとき、彼らと良好な関係を築くには、共感能力、優先順位を付ける能力、透明性を確保する能力が重要だ」(同氏)
何よりもまず、優秀なDevOpsエンジニアは常に顧客に価値を提供することに留意し、自分の仕事がどのような影響を及ぼしているのかを理解し測定したいと考える、とPuppetの最高製品責任者(CPO)のOmri Gazitt氏は話す。サプライチェーンにおける自分の役割ではなく、結果を気にすることで、彼らは全体的な成功のために最も効果的な最適化を行う方法について、正しい直感を得ることができる、とGazitt氏は言い添えた。
7. コラボレーション
強力なDevOpsマネージャーは、素晴らしいチームメンバーであることも求められ、必要に応じて同僚を助けることでボトルネックの緩和を支援しなければならない、とGazitt氏は話す。「どんな問題も全員の問題である。優秀なエンジニアはいつも自分の周りの人間を向上させる」(同氏)