バリューストリーム管理を使用して自信を持ってアプリをリリースする

最終更新日:2021年5月06日 — ジョニー・シュタイナー、プロダクトマーケティングマネージャー

目標は、高品質なコードをより早くリリースすることです。アジャイルと DevOps 明確なバリューストリーム管理計画なしに使用され、ソフトウェアは信頼なくリリースされます。 

DevOps

世界中の多くの企業が、 DevOps アジャイル手法を活用し、バリューストリーム管理とアプリリリースの向上に努めています。 DevOps 開発チームと運用チーム間の連携を強化します。 DevOps また、企業がアプリを継続的にテストし、提供していくのにも役立ちます。アジャイル手法は顧客からのフィードバックと迅速なリリースに重点を置いています。また、アジャイルは絶えず変化するコードの改善にも重点を置いています。これら2つの手法は、それぞれ重点が異なるものの、それほど大きな違いはありません。

最終的な目標は、高品質なコードをより早くリリースすることです。しかしながら、明確なバリューストリーム管理計画なしにこれらの方法論を適用すると、開発者とテスターの両方が求めるレベルの信頼性が確保されないままソフトウェアリリースが行われてしまうことがよくあります。   

簡単な例  

チームがスプリントを完了し、コードを本番環境にプッシュする準備が整ったとします。マネージャーを含むチームメンバーにコードを本番環境にプッシュすることについて相談したところ、次のような返答がありました。 
 
 

  
もう何もする必要はありません。すべてのタスクは完了し、テストもすべて完了しました。実のところ、本番環境にプッシュしたらどうなるかは誰にもわかりません。もちろん、すべてがうまくいく可能性もありますが、何らかの問題が潜んでいる可能性もあります。   

ソフトウェア配信の複雑化  

ソフトウェア配信の複雑さが増すにつれ、その重要性も高まっています。業種、製品、サービスを問わず、顧客に何らかのレベルのWebアプリやモバイルアプリを提供する必要があります。それだけではありません。ソフトウェアを提供するだけではもはや十分ではなく、高性能なバージョンを提供しなければなりません。これは、取り組むべき複雑な課題です。

今日のCIOは、より少ないリソースでより多くのビジネス価値を生み出すという使命を負っています。その結果、ソフトウェアデリバリーにおける高い生産性の追求という目標が達成されないことがあります。その失敗は、ビジネスユニットと開発者、品質保証、IT部門の連携の難しさにあります。 リリース速度と品質を向上させながら別のブログ記事でも述べたように、これは困難でプレッシャーのかかる立場です。       

バリューストリーム管理の導入  

VSMは、アイデアから本番環境まで、SDLCプロセスのすべてのステップを検証することで、ソフトウェア開発の複雑さを克服するのに役立ちます。このプロセス全体をバリューストリームと呼びます。VSMプロセスは、各ステップにおいて、ボトルネック、サイロ、そしてアプリをエンドユーザーにリリースするまでの過程におけるその他の非効率的なプロセスを特定し、強調表示します。

バリューストリームとは、アイデア創出から最終製品のユーザーへの提供に至るまで、SDLCにおいて必要なあらゆる要素を指します。バリューストリームに重点を置くことで、顧客をソフトウェア開発における最も重要な要素とすることができます。顧客に満足いただける体験を提供することが組織の成長につながるため、これは理にかなっています。しかし、顧客を満足させるには、まず社内のあらゆるストリームをエンドツーエンドで管理する必要があります。  

バリューストリームを制御する方法をいくつか紹介します。  

  • プロセス、チーム、ツールを接続してサイロを解体します。  
  • リアルタイムの指標を使用する  
  • チーム間のコラボレーションを促進する  
  • SDLCプロセスのすべてのステップにリーダーシップを組み込む  
  • ワークフローを調整し、必要に応じて自動化する  

これらすべてを組み合わせることで、SDLCプロセスのどのステップが価値を生み出し、どのステップが無駄を生み出しているかを特定できます。そして、各ステップを最適化し、バリューストリームをスムーズに流れるようにすることができます。プロセスのレビューから得られた知見はすべて、SDLCのすべてのステップを示すバリューストリームマップとなります。このマップは、ビジネス、技術、テストのリーダーを結集させ、ソフトウェアリリースプロセス全体を俯瞰する場を提供します。  

自信を持ってアプリをリリースできるのは、人材だけではありません。彼らが使用するツールも重要です。これらのツールは、SDLCプロセスと DevOps 方法論の潜在能力を最大限に引き出すには、顧客を重視し、プロダクトオーナーから手動テスターまで、すべてのチームを結集したSDLCが必要です。これを実現することで、開発プロセスはリリースの品質に自信をもたらすでしょう。   

SDLCを効果的に活用する

バリューストリームマップを活用すれば、バリューストリームを最適化することで組織の目標を達成できます。ソフトウェア開発ライフサイクルにおいて、最終目標は速度にあるように思われるかもしれません。しかし、それは必ずしもそうではなく、チームの自信を奪う要因となることは間違いありません。全体像を把握できないまま、バージョンを迅速にリリースするよう迫られるのは誰も望んでいません。真の目標は、最短時間で顧客に新たな価値を提供することです。重要なのは速度だけでなく、速度と品質の両方であるという点で、その違いは微妙です。好きなだけ速く進めても構いませんが、それがうまくいかなければ、会社全体に悪影響が及びます。しかし、バリューストリームマップを活用すれば、どのステップを最適化すべきかがわかります。これは、リリース速度の向上につながります。  

例えば、スプリントで新機能の開発よりもバグ修正に多くの時間を費やしているとします。その場合、スピードを重視したリリースを求めるあまり、自信を持ってアプリをリリースできていないことがわかります。品質に重点を置く必要があります。スピードは後からついてくるものです。   

外部または内部からのフィードバック  

アジャイル環境では、フィードバックは外部から来ることがあります。アプリをリリースすると、ユーザーからアプリの機能に関するレポートが届き、それが開発とテストの取り組みにおけるチームの指針となります。   

確かに役立ちますが、真の仕事は内部から生まれるものであり、SDLC全体にわたるフィードバックループを通して実現するのが最善の方法です。まさにバリューストリーム管理が不可欠な領域です。コードの作成、ビルド、テスト、そしてデプロイ中にレビューを行う場合、ループが最高の効率と精度で実行されていることを確認する必要があります。それだけでなく、バ​​リューストリーム管理プラットフォームはバリューストリーム全体をエンドツーエンドで可視化するため、自信を持ってリリースアプリを準備するために必要なフィードバック情報をすべて簡単に入手できます。データが手元にあれば、イノベーションを迅速に進め、リリースに関するより適切な意思決定を行うことができます。

SDLCへのフィードバックの統合  

先に進む前に、SDLCの現状とこれまでの進捗状況を確認する必要があります。これは、本番環境の全体像を把握できるパフォーマンスレビューの形で行われます。このレビューは、プロセスにおける重要なフィードバックループです。Webアプリやモバイルアプリで最も重要なことは、顧客よりも先にパフォーマンスの問題を発見し、そのパフォーマンスを次のスプリントのベースラインとして活用することです。

これはバリューストリームを管理する上でも重要な要素です。組織全体にフィードバックを統合することで、各チームは自身のストリームを測定し、他のストリームと比較できるようになります。組織全体で共有できるパフォーマンス指標によって、全員がプロセスに関する洞察を得ることができます。   

プロセスの一部には、次の点の確認が含まれます。 

  • 繰り返し発生するアプリケーションエラー  
  • Webリクエストのパフォーマンス  
  • パフォーマンスの低いSQLクエリ  
  • パフォーマンス回帰テスト  

コーディングしながらコードを改善する  

バグを発見し、予防するには、実際に作業している時が最適です。コードの変更を改善する非常に簡単な方法の一つは、誰かにレビューしてもらうことです。単純なことのように思えますが、実際にはそうではありません。誰かにコードを見てもらい、質問してもらうことは、非常に役立つだけでなく、実装にそれほど時間もかからないフィードバックループなのです。   

さらに、人為的なエラーを排除してコードを自動的にチェックする方法もあります。  
ビルドとデプロイを自動化したサーバーがあれば、チームメンバーに新しいコードを手動でビルドしてプッシュしてもらう必要がなくなります。Jenkinsのようなツールは、このプロセスを自動化し、人為的なエラーを防ぐのに最適です。   
もちろん、ユニットテストはより複雑なシナリオをテストするのに最適な方法です。デプロイ前にこれらのテストを実行することで、ビルドの検証に役立ちます。  

バリューストリーム管理システムを導入することで、すべてのテストとステークホルダーレビューはSDLC中に完了します。チームメンバーとリーダー全員がバリューストリーム管理システムによって定められたガイドラインに従うことで、ソフトウェアデリバリーは継続的な改善状態を維持します。   

QAとのコラボレーションゲームをプレイする  

私たちはQAを心から応援しています。ビジネスリーダーや開発者からは、QAの存在意義はコードエラーを見つけて指摘することで、チームの仕事を困難にすることだと考えているような人たちから、QAへの評価は低く、批判は多すぎます。QAは文字通り彼らの仕事であり、全く不公平です。   

でも、もしQAと一緒に働いたらどうでしょう?本当に。  

まずはQAチームと情報を共有し、連携しましょう。重要な詳細をすべて共有し、テストすべき項目をチームに伝えれば、厄介なバグを発見するのに大いに役立ちます。同様に、過去のスプリントをレビューして計画を立てることをお勧めしますが、QAチームも同様にレビューを行いましょう。ビルド間でアプリのパフォーマンスがどのように向上するかを確認しましょう。   

アプリをリリースする際に、ビルドを人間によるテストと自動テストの両方に通すことで、より自信を持ってリリースできるようになります。   

VSMフィードバックループで自信を持ってアプリをリリース 

バリューストリーム管理は指標に依存していますが、それ以上に多くの要素が絡み合っていることを指摘しておくことが重要です。前述のフィードバックループの開発は、VSMから得られるBIインサイトと組み合わせることで、よりシンプルかつ効率的になります。VSMのようなフィードバックループは、統合されたツールチェーンを中心にチームを連携させ、開発およびリリースプロセスのあらゆるステップを強化します。重要なのは、各ループが価値を生み出すようにすることです。そうでなければ、ループを精査し、排除する必要があります。  

VSMを活用することで、リリースマネージャーはリリースのスコープ設定と計画を通じてバリューストリームを改善し、ひいてはSDLC全体を向上させることができます。また、リスク評価や自動化の実装によってSDLCの効率性を向上させることで、Webアプリやモバイルアプリをリスクなく、自信を持ってリリースできるようになります。

このホワイトペーパーを読んで、 Digital.ai Continuous Testing は 完璧なアジャイルソリューション 自動テスト用です。 

お勧めの関連ガジェット