IT資格取得~受験料の節約~

ITに関する資格についてのブログ

イテレーション開発とインクリメンタル開発の違い〜劣化版ウォーターフォールに気をつけろ〜

みんな大好きアジャイル開発。アジャイルに対する考え方は、十人十色。理解度も違えば認識も違う。一つだけ、共通認識があるとすれば、ウォータフォールが嫌い。ただ、嫌いな割には、離れられない不思議。蓋を開けてみると、アジャイルといいつつ、劣化版ウォーターフォールになっていること数知れず。

PMBOK第7版を読んで気づいたことがある。

アジャイルを試みる人たちが、そもそも、”イテレーション開発”と”インクリメンタル開発”の違いがわかっておらず、最終的には劣化版ウォーターフォールになってしまっているのではないかと?

私が今まで携わった多くの”アジャイルと称された開発”のほとんどが、”インクリメンタル開発”であった。

そもそもインクリメンタル開発とは何か?

インクリメンタルは、日本語では”増加の、徐々に増加する”である。要は、徐々に開発していくって意味である。インクリメンタル開発の例としてよくあがるのが家の建設である。

  1. 予算と欲しい家の具体化
  2. 設計
  3. 基礎構築
  4. 外枠作り
  5. 内装
  6. 完成

これをシステム開発に照らし合わせて考える。

旧来のウォーターフォールだと、、、

①の段階で、⑥の完成の姿を決め、あとは黙々開発していくイメージである。①以降の変更は、いわゆる変更管理、仕様変更と言われるもので、手戻りやコスト増につながる。SIerが大好きな”これ仕様変更ですよ?”である。水戸黄門の印籠並みに効力がある言葉である。

インクリメンタル開発だと、、、

工程ごとに再検討の余地がるので、多少の設計変更が許容される。しかし、結局のところ”作るもの、欲しいもの”が決まっているので、変更できるといっても壁紙の色や、部屋の仕切り程度であり、微々たるものである。やっぱ、竪穴式住居がいいよね?とかいったところで、”そんな初めから言えや”ってくだりになり、却下される。

この手の方法だと、請負契約にしづらく、結果的にコスト増につながるケースが多い。壁紙の色を変えたところで、元々の構想がいけてなかったら元も子もない。上述した”劣化版ウォーターフォール”とはまさにこのことである。請負を避けたい人売りSIerにしかメリットがない。ユーザー企業の皆様、ぜひ騙されないでいただきたい。

イテレーション開発とは?

よく例示されるがのが、

  1. スケボーを作る
  2. 自転車を作る
  3. バイクを作る
  4. 自動車を作る

である。要は、動くもの、評価できるものをしっかり作成し、次に繋げていく開発である。私の経験則では、このイテレーション開発ができている現場はほとんど見たことがない。

なぜなら、イテレーション開発を実践するためには、”その場でソースコードを書いたり、修正したりする人”が必須であるからだ。

大手SIerに頼むと何故かインクリメンタル開発になってしまう。それは何故か?

答えはシンプル。客先に出てくる社員がソースコードをかけず、結局子会社や下請け会社に依頼しなければならないからである。スクラムを組んだところで、何故か開発チームが、”設計する人とソースコード書く人”に別れ、体制図や指揮命令系統がウォータフォールっぽくなってしまうのである。

しかも、設計する人とソースコード書く人が全くの別会社だともう末期。無駄な優先度の調整が始まり、工数がどんどん消費されていく。しかも請負でないので、完成責任もない。かけるコストの割に、できた成果物がしょぼくなる。

 

ノーコード開発が流行っている今日このごろ。高い投資をして、失敗するぐらいなら、いったん誰でもプログラムが書ける、PowerAutomateとか使ってアジャイルお試しするのはいかが?多分そしたら、”アジャイルやるなら、チームにソースコード書ける人必要じゃなね?”って気が付けると思う。