DevOpsは自動化と開発チームとITチーム間のコラボレーションによってソフトウェア開発を効率化し、効率的なデリバリーを実現する。Nedko Hristov氏によると、テスターの好奇心、適応性、学習意欲はDevOpsに適している。失敗は建設的なマインドセットで捉えることができる;成長の機会を提供し、スキルやプラクティスの向上につながる。
Nedko Hristov氏は、QA Challenge Acceptedで品質保証エンジニアとしてのDevOps経験をシェアした。
DevOpsの定義は開発チームとIT運用チーム間のタスクを自動化・統合することでソフトウェア開発を効率化することだ、とHristov氏は述べた。より迅速で効率的なソフトウェアのデリバリーと統合のためにコミュニケーション、コラボレーション、責任の共有を促進する。
Hristov氏は、DevOpsは一般的にエントリーレベルのロールではないと述べた。ソフトウェアがどのように設計され、構築され、テストされるかを含め、ソフトウェア開発プラクティスの強力な基礎が必要となる。幸いなことに、ソフトウェア品質エンジニアやソフトウェアテスターは、よくこの基礎知識を持っている、と彼は説明する:
私たちはソフトウェア開発ライフサイクルを理解しており、多くの人が自動化の専門知識を持っています。このバックグラウンドにより、DevOpsのコアコンセプトを素早く把握できます。
ソフトウェアテスターはDevOps環境で使用されるすべての技術に精通しているわけではないが、もっとも一般的なものには慣れている、とHristov氏は述べた。彼らはコーディング原則、デプロイメントプロセス、システムアーキテクチャを高いレベルで理解している。彼はこの幅広い理解はDevOpsを適用する上で非常に価値があると述べた。
ソフトウェアテスターは本質的に好奇心が旺盛であることが多い、とHristov氏は述べた。彼らは学び、知識ベースを広げることに意欲的だ:
私が初めてDevOpsに興味を持ったとき、彼らの仕事の複雑さを理解するために、プロアクティブに探究しました。システムの挙動、トラブルシューティングの手法、失敗の根本原因について質問しました。
Hristov氏が説明するように、ソフトウェアテスターは既存のスキル、持ち前の好奇心、プロアクティブな学習アプローチを活かしてDevOpsのロールにうまく移行し、活躍できる。
私が得たもっとも重要なスキルの1つは適応力だ。絶えず進化するテクノロジーの世界では私たちは常に新しい技術に遭遇する。これには重要なコンセプトを特定し、実践的な事例を見つけ、目の前のタスクに必要な知識の習得にフォーカスすることが含まれる。
コアテクノロジーの強固な基礎が不可欠だ、とHristov氏は述べた。すべての領域で深い専門知識が必要というわけではなく、基本原則をしっかりと理解していることが重要だと彼は付け加えた。
失敗は成長とより深い理解のための貴重な機会を提供する、とHristov氏は述べた。失敗が望ましいものではないが、建設的な考え方で取り組むことが重要だ:
私は指導している人たちに常に、失敗は本質的にネガティブなものではないと強調しています。私たちのプロとしての成長は基本的に経験に基づいており、失敗はもっとも効果的な教師です。
失敗は理解力を高め、作業慣行を改善するための重要な踏み石である、とHristov氏は述べた。それは本質的に良いことでも悪いことでもなく、むしろ成長のための必須要素なのだ、と彼は結論付けた。
InfoQはNedko Hristov氏にソフトウェアテスターとしてDevOpsを適用することで得た学びについて、インタビューした。
InfoQ: どのようなスキルを開発し、どのようにそれらを習得されましたか?
Nedko Hristov氏: 私のスキル開発は、適応力、集中学習、効果的なコミュニケーション、実践的な応用、知識の共有の組み合わせによって進められています。
コミュニケーション能力、特に効果的な質問をする能力を磨いてきました。これは見落とされがちですが、知識を得るうえで非常に重要です。
新しい技術に取り組むとき、私は通常、自分自身にたくさんの質問を投げかけます。
- この技術の核となる目的は何か?
- どんな問題を解決するのか?
- どのように機能し、基礎となるメカニズムやアーキテクチャは何か?
- 現在のプロジェクト、ツール、ワークフローにどのように統合できるか?
- その技術を使うためのベストプラクティスや推奨パターンはあるか?
- このテクノロジーに関連する一般的な課題や落とし穴は何か?
- この技術は、代替品と比べてどうなのか?
InfoQ: 失敗に対してどうアプローチしますか?
Hristov氏: 失敗に遭遇したとき、私たちは私たち自身に3つの重要な質問を投げかけるべきです。
- 何が起きたのか - 失敗に至った事象を客観的に分析する。
- なぜ起こったのか - 根本的な原因とその要因を特定する。
- 教訓は何か? - 学んだことと、それを今後どのように活かすかを明確化する。
重要なのは、それぞれの失敗から価値ある教訓を引き出すことであり、将来同様の状況により多くの知識と準備をもって臨めるようにすることです。
InfoQ: あなたが学んだことを、もしもう一度最初からやり直すとしたらどうされますか?
Hristov氏: 私は幸運にも、強いリーダーの指導のもとでDevOpsのキャリアをスタートし、しっかりとした基礎を築くことができました。しかしもし最初からやり直すとしたら、完璧を追求しないことにフォーカスするでしょう。テクノロジーの世界ではより最適化されたソリューションや500ミリ秒速いリクエストが常に存在します。完璧を追いかけるのではなく、コアとなるビジネスニーズを理解し、解決すべき重要な課題を特定することを優先します。
キャリアの初期、私はしばしば最初からすべてを完璧にしようとする罠にはまりました。これはほとんど不可能で、不必要な遅延やフラストレーションにつながることがあります。それよりも価値を迅速に提供し、時間をかけてソリューションを洗練させていく、反復と改善の方が効果的です。