開発手法 IT業界話

部品を先に作ってはならない

更新日:

以前関わっていたデスマーチに関して個人的にふりかえり。

あまり細かくは書けないので、ざっくりとした感じになりますが、一番の問題はタイトル通り部品を先に作ってしまったことです。

システムの概要としてはよくあるWEB+DBです。DBからSQLでデータ引っ張ってきてPHPでページ出力するシステムになります。ただページの種類が死ぬほどたくさんある。

そのプロジェクト、わたしゃ途中参加なので良くわかりませんがSQL作成とPHPの描画ページ部分の製造を分けておりました。

目論見としては部品化することで複数の会社に作業を分担させたかったんですね。そうすることで大量のページ製造に対応しようと。

理屈は分かりますが、一部分の製造だけを任された外注先は、言われたことしかしません。その結果以下のような問題が起きました。

ページ部分が動的データをまったく想定していていない。PHPで作ってあるのですが中身は静的なHTMLとほぼ変わらないのです。特に2ページ3ページと続くようなリストではNEXTページに対応していなくてレイアウトがぐちゃぐちゃになる。

SQLに関しては負荷テストをしていないので、データを入れたら動かないSQLが多発

パッと見は仕様通りなのですからお支払するしかないですね。細かい指示をしていない発注側が悪い。

結局、部品を引き受けて結合するエンジニアが作り直しをすることになりました。

まあ、ゼロから作るよりは全然マシなので、これはこれで仕方ないと諦められるのですが、問題は進捗を部品の数で計っていたのです。

部品の数だけのカウントだと進捗70%だったものが、実際には30%くらいまで後退したことになります。

はいデスマーチの完成です!おめでとう自分!

ココからの教訓ですが、あげられるとしたら以下のようなものかなと。

 

①部品の数で進捗を計ってはいけない

②SQLだけの外部発注、ページだけの外部発注は極力避ける

③最初にダミーでもいいので想定データ数を指示して負荷試験させろ

 

①②に関しては言うは易くですが、システムが大規模になると部品化して複数の会社に投げざるを得ないとこもあります。それで進捗を計るしかないケースもある。

ならば、どうすればいいのか?こうすればいいのです。

①想定されるケースごとのプロトタイプを先に作って外注に見せる

②想定される件数のダミーデータを先に作る

③外注先にはページ+SQLあわせた完成品を発注する

④納品に関しては一括ではなく、1ページごとに納品してもらい、チェックする。

⑤チェックを通ったものだけが進捗として加算される

 

そもそもこの案件、最初の半年はプロマネもおらずに漂流するように作業だけが進んでいたらしいので、そっからしてデスマ確定だった気もします。

-開発手法, IT業界話

Copyright© ばしさんの開発ブログ , 2019 All Rights Reserved Powered by STINGER.