Blogブログ・読みもの

2018.04.10

アジャイル開発とは何か?

西 武史

エグゼクティブ・オフィサーCTO
西 武史

学び 技術



システムを開発する際、どのように開発を進めるか?を開発手法と呼びます。
代表的な開発手法に「ウォーターフォール」というものがあります。

「ウォーターフォール」の文字どおり、水が上から下に流れるように、「要求定義」「外部設計(概要設計)」「内部設計(詳細設計)」「開発(プログラミング)」「テスト」「運用」などのシステム開発工程を上から順番に、極力前の工程に戻らないように、各工程を1つずつ完了させて開発を進めていく手法です。

この手法は要件がある程度固まっている社内システムなどの開発で採用されることが多いです。

 

この他にも「プロトタイプ」「スパイラル」などの開発手法があります。

 

アジャイル開発

近年、ソフトウェア開発が大規模化・複雑化が進み、主にコンシューマ向けのサービスにおいてユーザーが求めるシステムが多様で不確実化してきたことを背景に、

  • ソフトウェア開発よりもドキュメント管理や様々な調整に多くの時間がかかりプロジェクトが完了しない。
  • 膨大なコストをかけて開発したものの、全くユーザーに使ってもらえないシステムが完成してしまった。

などの問題が起こっています。

 

そんな中でよく出てくる言葉が、「アジャイル開発で行こうよ!」という言葉です。

ここでよく言われるアジャイル開発とは、1〜4週間の短い期間で設計・製造・テストを行い、それを複数回繰り返すことで、優先度の高い徐々にシステムの完成度を高めて行こうという進め方です。

 

しかし、この言葉が一人歩きしてしまい、実際の現場では様々な問題が起きています。

  • 発注者が求めるシステムが一向に完成しない
  • 無制限に何度も作り直せるんでしょ?
  • 発注者側が開発に参加してくれない。

 

そもそも「アジャイル」とは何か?



エンジニアリング組織論への招待という書籍を最近読みました。
これによると「アジャイル」という言葉は特定のプロセスではなく、ある状態を指している、とあります。
アジャイルとは「チーム全体をメンタリング」するための方法論であり、開発方法でなない、ということです。

チーム全体をメンタリングする、とはチームメンバーそれぞれがチームのゴールに対して高い意識を持ち、自分が今何をするべきか、を理解した状態を構築することです。

そのために必要なことはチームを役割で分断しないこと。
システムの発注者から、開発メンバーまで一貫して同じ意志や課題感を持っていることが必要です。

 

そこでやはり大事になってくることが「コミュニケーション」です。

 

「アジャイル」な状態を作る

  • 発注者が求めるシステムが一向に完成しない
  • 無制限に何度も作り直せるんでしょ?
  • 発注者側が開発に参加してくれない。

も役割の分断によって発生する問題です。

 

全ての関係者が同じ目的に向かっていて、同じ意識を持っていれば、このような役割の分断は発生しません。

プロジェクトマネージャーに必要なのは、このような「アジャイル」な状態を作るためのコミュニケーションの計画を適切に立てることです。

「ウォーターフォールか?アジャイルか?」ではなく、状況に応じてウォーターフォールモデルの長所も取り入れつつ、適切なコミュニケーションによって、チーム全体が同じ目的に向かって自分が今何をするべきか、を理解した「アジャイル」な状態を構築することが、本来のアジャイル開発ではないか、と思います。

 

diffeasy主催のプロジェクトマネジメント道場ではこの「コミュニケーション」についても実践的なワークショップ形式で講義します。
第1期はすでに満席ですが、第2期以降も今後開催しますので、興味ある方はぜひご連絡ください。

 

また、福岡プロジェクトマネジメント勉強会では、第2回プロジェクトマネジメント勉強会を2018.6.6(水)に開催します。
こちらもすでに満員のお申し込みをいただいていますが、まだキャンセル出る可能性もありますので、ご興味ある方はぜひお申し込みください。

written by

西 武史

エグゼクティブ・オフィサーCTO
西 武史

Twitter