ソフトウェア受託企業のアジャイル採用のメリット
ソフトウェア受託企業(開発者)からみたアジャイル採用のメリットについて述べます。アジャイル開発の企業レベルでの採用を検討されるときに参考になれば、幸甚です。
・リスクの早期発見 要求内容の決定が遅れがちなプロジェクトをアジャイル開発で行う場合、ウォーターフォール型開発に比べ、動作して初めてわかる問題点や、文書では伝わらない要求の意識違いをより早く抽出できるため、要求に関するリスクは少なくなる。また、動くソフトウェアの増分を顧客に確認をとりながらたびたびリリースすることにより、顧客が当初は思っていなかった課題などを早期に検知できる。開発者はリスクの早期発見により先の読める安定的な開発作業が可能となる。 ・動くソフトウェアの早期リリース 開発初期から優先順位の高い機能を盛り込んだ動くソフトウェアの増分を顧客と開発者双方で確認できるため、早期のリリース可能となり、いつでも出荷可能という安心感を得られる。 ・頻繁な反復により品質向上 反復するごとにテストを繰り返した動くソフトウェアの増分を見せることにより、顧客との認識のズレが少なくなる。また頻繁な反復により統合テストやシステムテストの機会が多くなり、十分テストされて出荷されることになるため、品質は向上する。 ・開発を通じての開発者の能力向上 受託企業にとって開発メンバーの能力向上は重要な課題である。アジャイル開発は、チームのメンバー間の相互作用と知識の共有を大変重要視する。相互作用と知識の共有により従来の学習方法と比べより容易にスキル向上が可能となる。開発に必要な技術や業務知識、それにリーダーシップやコミュニケーションなどのソフトスキルが、チーム内で一緒に作業している先輩メンバーやスクラム・マスターの指導を通して仕事の中で自然に身につく。開発メンバーはいろいろな能力を持った多能工となることができる。 ・開発チームのモチベーションの向上と高い生産性 アジャイル開発では、顧客との協調を重視し顧客のビジネス価値を理解しながら開発が進められるので、自分達の作業の意義を実感でき、やりがいを感じる。さらに、作業を通じて業務知識、技術知識、ソフトスキルなどの習得が可能となるので、仕事が自分達の能力向上につながる。また自ら自分達の責任で計画を立てて実行することができるのでやらされ感はなく、開発に取り組むことができ、高いモチベーションで仕事をすることができ、高い成果を上げることができる。 ・残業からの解放 アジャイル開発では、開発チームは、反復を開始するときに、自分たちの開発能力を判断して達成可能な計画を自主的に立てることができる。ウォーターフォール型開発のようにやらされ感はなく、要求の数が多すぎることにより発生する残業や見積りの曖昧さから発生する残業から開放される。開発チームは残業がなくなることにより集中力も高まり、稼働時間内に効率よく作業するようになる。さらに残業による継続的なストレスから開放されることで、心身ともに健康な状態を維持することができるようになる。開発チームは自己学習や啓発の時間を計画的に確保できるので能力向上につながり、創造性の発揮や高い生産性や高い品質を維持するようになる。 ・ムダの削減 ソフトウェア開発では、最初から要求が全部明確になってことは必ずしも多くない。曖昧な要求のまま開発が着手されると、手戻りや不要なソフトウェア開発などのムダが発生する。アジャイル開発では、要求に優先順位をつけ、優先順位が高い明確になった要求から開発することができるので、手戻りなどのムダはほとんど発生しない。ウォーターフォール型開発では、要件定義や設計段階ではドキュメントによるコミュニケーションが重視されるため、必要以上のドキュメントが作られるといったムダが生じることが多い。アジャイル開発では、フェース・ツー・フェースの対話により内容を理解できるので、必要以上のドキュメントを作る必要がない。 ・振り返りによる継続的改善 アジャイル開発では、反復レビューが終わった後、反復レトロスペクティブ(振り返り)ミーティングを行う。反復期間中の作業の進め方、開発方法、コミュニケーション方法、ドキュメント方法、情報共有、チームワークなど開発プロセスで発生した悪かった点や良かった点を振り返り、次からの反復に反映する。反復の生産性とか品質などのデータで改善の度合いを計測しながら振り返りをするので、継続的にプロセスを改善していくことができる。 ・顧客との良好な関係の維持 アジャイル開発では、顧客との協調を重視しており、顧客のプロジェクト参加は必須である。顧客がプロジェクトに参加することにより、顧客とのコミュニケーションは容易になり、顧客から出される要求の理解を深めることができ、顧客要求に合った動くソフトウェアを順次提示しながら開発することができる。顧客は、ウォーターフォール型開発に見られるように、最後にならないと動くソフトウェアを確認できないのに比べ、順次漸進的に動くソフトウェアの状況を確認できるので、開発リスクが少なくなり、顧客満足度は高くなる。顧客満足度が向上すると顧客との良好な関係を維持することができ、開発をスムーズに進めることができるだけでなく、次への開発依頼にもつながる。 以上 |
HOMEへ |