エンジニア端くれ。

それに所属してはいるが、末に連なるつまらぬ者。末輩。

仕様がガバガバで開発がスタートする地獄

はじめに

例えば携帯電話一つを開発するとしても、決めるべき仕様が多くあることは明らかだ。
見た目、OS、内臓アプリ、バッテリ、GUI
これらは製品仕様としてエンドユーザ向けに決定、提示されるものだ。
そしてその機能を実現するために開発者は設計仕様(書)を作る。
「この機能はこのようにして動きます」「このようにプログラムが動くとこうなります」などなど。
開発の担当者が互いに意思疎通を行うために必ず必要になる資料を設計仕様(書)と言う。

開発部門に設計仕様書がないことは致命的だ。無いことによっておこる問題はたくさんある。
本気で上げたらきりがないくらいに。

  • 第3者が同様の製品を設計できない
  • 修正を加えた個所がどこに影響するか分からな
  • 検証方法が正しいか分からない
  • というかそもそも設計が正しいか分からない

ということで、仕様が固まる前に開発をスタートしたらどうなるか事例(実体験)を紹介してみる。

X年前:社会人2年目~はじめての開発~

1年目はほぼ研修だった。社内の部署を様々たらいまわしにされ、ようやく開発部に配属になった。
これから開発ができるぞ!と期待しながら渡された仕事は開発品の動作確認だった。
だがそれは仕方のないことだ。
1年~数年かけて行う開発で、運よくはじめから携われるという方が稀だ。
私はその開発品の動作確認を指示された通り行った。
初めての上司に指示されるがまま、我ながら結構忠実にやったと思う。
こんな方法で確認するのか~と勉強した気になりつつ、いつの間にか社内審査をパスした開発品は市場へ流れていった。

X+3年前:社会人:5年目~実は仕様が決まってなかったアイツ~

市場へ出たアイツは2年間ユーザの元で頑張っていたが、突然限界が来た。
「動きがおかしい」「説明書と違くない?」など、いわく(クレーム)付きの製品となって再び私の元へ帰ってきた。
私の初めての上司は他部署へ異動(※1)となってしまい、私が面倒を見ることになった。

あれ以降、少しは経験を積んだ私は設計仕様書もなんとなーくは書けるようになり、少しずつ仕事の責任も増えてきていた。

「どれどれ、まずは設計仕様書を見ながら動作確認やな…
って無いんかーい!

プログラムを見ても、資料がないので細部が不明。
製品仕様書もよく見ると何となく文字が書いているだけ。
ソースコードはよくわからない変数が暴れまわっている。
コメント欄に私情をかいてんじゃねーよ!
でもバグは直さなければ…

こうしてバグ修正がバグを呼ぶという無間地獄に、私はjump in!
大量に回収される製品の山々。謝りに謝る営業。
荒れに荒れる生産部門。

当時の上司の発言を思い出すと、

  • 「この仕様でいい…のか(自己決定)」
  • 「とりあえず社内的にお金を使える状態にしてスタートするしかない…」
  • 「間に合わないなら、このままやるしかないだろうがぁ!」
  • 「この仕様は過去の製品と同じだから、同じようにチェックすればオッケー☆彡(ソースコードは超変更)」

など、記憶の片隅に怪しい言葉がひっそりと。

とにかく私はここで、
仕様が固まらない状態で開発がスタートしたこと、元上司しか設計仕様を知らないこと、その上司が勝手に仕上げた仕様が実はガバガバだったこと、ガバガバの仕様でも余裕で社内審査をパスする開発がデフォだったこと(これは数年の経験から気が付いた)、様々な疑念を抱くとともに社内の闇を感じ取ることに成功した。

そして、まぁいろいろあって一応終わった後にこの損失額を予想してみると…
損失は〇千万(※2)
という予想になりました。どうもありがとうございました。
~完~



どうでしょう
これでも仕様をガバガバにしておきますか?
私はしません。


(※1:噂ではパワハラが原因の左遷)
(※2:結構現実に近い額でした)


SE一年目のための仕様書の書き方