今週のキーワード

「アジャイル開発」の用語解説、システムやソフトウェア開発で注目

2021/08/31 18:33

週刊BCN 2021年08月30日vol.1888掲載

 システムやソフトウェア開発における手法の一つ。開発対象を小さな機能に分割し、それぞれの機能ごとに「計画」「設計」「開発」のサイクルを短期間で回す。このサイクルを何度も繰り返すことで、各機能の集合体として大きなシステムを形成していく。「agile」は英語で「素早い・機敏な・(頭の回転が)速い」などを意味する。

 全体の要求を開発初期段階に固め、その要求に基づいて設計、開発、テストなどの作業を順に展開する「ウォーターフォール開発」よりも開発期間の短縮化や低コスト化などが見込める。途中経過の段階から継続的に顧客に成果物を引き渡すため、顧客からのフィードバックや仕様変更にも対応しやすくなるとされている。開発チーム内や顧客との対話を重視することも特色として挙げられる。

 アジャイル開発の手法で一般的なのものに「スクラム」がある。10人以下の小チームで、バックログと呼ばれるリストに従い、1カ月以内のスプリント(任意の期間で計画・実行する開発の単位)を回して開発を進める。積極的にコミュニケーションを図り、チームが一体となって開発に取り組むことに重きを置く方法論である。このほか、無駄を徹底的に省くことを目指す「リーン」や、二人一組でプログラミングを行うペアプログラミングをはじめとした「エクストリームプログラミング」(XP)などの手法も普及している。

 アジャイル開発は大規模システムの開発には向かないとする定説があったが、近年では、アジャイルで大規模開発を可能にする手法も検討されている。その代表格である「SAFe(Scaled Agile Framework、セーフ)」は大規模アジャイル開発を効率よく実践するために必要な役割や責任、行動に関する考え方が体系化されている。戦略的な目標の下で複数のアジャイルチームが開発を行う際に求められる、組織やリーダーのマインドセットに関する要素も盛り込まれている点が特徴だ。
  • 1