アジャイルソフトウェア開発のための10のヒント
では、ソフトウェア開発においてアジャイル手法に移行する予定はあるのでしょうか? それは、テスト駆動のアプローチに従って、コードが正しく動作しているかどうかを確認することができるようになったからです。 アジャイル手法の各反復は、作業コードを作成し、これは2週間のスプリントで行われ、緊急性と価値あるものの間の完璧なバランスを見つけることができます。 TMM(Time To Market)低減のニーズは、開発プロセスのスピードアップにつながるため、この技術の利用を大きく後押ししています。
アジャイルへの移行は知的なものですが、正しい方法で行わなければ非常に困難なものになりかねません。 しかし、アジャイルがウォーターフォールの方法論に勝る利点は、多くの組織がシフトするように誘惑されていますが、プロセスがスムーズかつ迅速になるように、以下のヒントに従うことができます。
1)自動化ツールの活用
自動化とアジャイルは相性がいい。 そして、この2つが揃うと、TMMをかなり減らすことができます。 自動化ツールは、プロジェクトを徹底的に評価し、配備する前にそれにふさわしい注意を払うことを支援します。 自動化によって、一貫したワークフローを生成し、削減領域への可視性を高め、ビジネスとプロダクションの利益を同時に、かつ協調的に統合することができます。
また、1つのプロジェクトに複数のユーザーが参加し、リアルタイムで変更内容を確認する必要があるため、ツールを統合する必要があり、適切なツールを手元に置くことが不可欠です。 ツールを統合することで、チーム間のコラボレーションが容易になり、プロジェクト期間中、全員が同じ見解を持ち続けることができるようになります。
2)成果を重視する
アジャイルの良さを生かして、結果にこだわること、それが常に一番大切なことですから。 上層部の人間はプロジェクトのビジネス面に集中し、開発者は自分の仕事に集中することができます。 その境界線とパラメータは、もちろん上層部が設定することになります。 初期のアジャイルはボトムアップで発想しなければならなかったが、アジャイルはトップダウンで発想するようになった。
3)従来の手法の完全な放棄
アジャイルに移行する一方で、旧来のレガシーアプローチを放棄することが不可欠である。 開発者やテスターは、アジャイルの価値観に合わせてプロセスを調整する必要があるため、これまでの仕事の進め方を捨てなければならない。 アジャイルの成功は、プロジェクトに関わる人々が、品質の高いアプリケーションを作ることを第一に考え、柔軟に連携して作業を進めることにある。 これは、アジャイルマニフェストの中の宣言文の1つが、「プロセスより人」というシナリオに依存しているからです。
4)定期的なコミュニケーション
プロジェクトの成功は、チームメンバー同士の定期的なコミュニケーションがあってこそ。 そして、これはコミュニケーションが一貫して行われている場合に限ります。 そして、これが開発やテストにおいて最も重要な部分です。 定期的にコミュニケーションをとることで、全員が同じ環境にいるのと同じ効果が得られ、痛みのポイントが認識され、それに応じた行動がとれるようになるのです。 そのためには、必要な調整を行い、プロジェクトを完了させるための明確な知識ラインを持つことが非常に重要であるため、コミュニケーション不足が妨げになる可能性があるのです。
5)継続的デリバリーはアジャイル開発の鍵である
前述したように、アジャイルは継続的なデリバリープロセスで、一定のペースで実行されます。 開発者へのフィードバックも早く、迅速です。 また、急な変更や予期せぬ事態が発生した場合にも、この技術でチームに知らせることができます。 そこでビルドが使われるようになり、前回のビルドからのフィードバックを参考にしながら、修正や改良を加えてビルドがリリースされます。
6)開発・テストサイクルの短縮化
ソフトウェアの開発サイクルが長期に及ぶ場合、開発サイクルとテストサイクルを短くする方が賢明です。 開発サイクルが非常に長くなると、人々が好まない機能が製品に含まれる可能性があり、会社が損失を被る可能性があるため、時間の大きな無駄となります。 この脅威を回避し、minimum viable productを作るためには、開発サイクルを大幅に短縮する必要があります。 そうすることで、ユーザーにとって使い勝手の良いものが届き、フィードバックもより正確なものになります。
7)初日から自動化を実現する
Automation from Day OneはAD1とも呼ばれ、ソフトウェア開発プロジェクトのスピードアップに貢献します。 アジャイルが得意になれば、2年目、3年目にはすべてを自動化できるようになります。 シンプルな処理を自動で行うことで、開発者にとっては本当にシンプルで簡単なものになります。 実際、多くの時間を節約することができます。
8)効果的なチーム比率
チームのメンバーが多すぎると、プロジェクトの成功や早期完了は望めません。 一つのプロジェクトに多くの人が参加すると、経済的な負担が大きくなるのは言うまでもありません。 プロジェクトのニーズ、与えられた時間枠、チームの能力などを考慮し、実行可能なチーム比率を導き出す。
9)開発用サンドボックス
アジャイルプロジェクト開発のベストプラクティスの1つは、自分自身のサンドボックスを持つことである。 サンドボックスとは、開発者が使用する定義済みの技術環境のことで、その主な目的は技術的なエラーを特定することです。 そして、その特殊な役割から、サンドボックスは5種類に分類されています。 それらは開発、プロジェクト統合、デモ用サンドボックス、本番前テスト/QA、本番。 プロジェクトに最適な技術環境を決める必要があります。
10) 変化に応じたテストの実践
変更ベースのテストを取り入れると、チームはソースコードの変更によって影響を受けるコンポーネントと、再度実行すべきテストに関する情報を得ることができます。 これは、時間とリソースを節約し、より付加価値の高いタスクに集中することができるため、非常に大きな救いとなるのです。
以上のことから、アジャイルアプローチは、要求が変化する厳しい市場において競争力を維持するための最良の選択であり、最も信頼できる選択肢であることがわかります。
興味深い記事:
アジャイルソフトウェア開発における10のヒント
アジャイル開発の10の試行錯誤のヒント
Flickr.com/ Kay/ Improve