超要約!エンジニアの話

ITとエンジニア、時々わらい

なぜ炎上プロジェクトはなくならないのか?

私はよく思う所があるんです。

IT業界に入り早くも2年が経とうとしているこの時期に。


『炎上プロジェクトに参画していて毎日22時帰りで面接行けません』
なんで炎上しちゃうの?


『仕様書なくて、ソースコードから読み解いて解決してます』
なんで仕様書ないの?


『テスト段階でバグ大量発生して帰れない(涙)』
なんで開発前に防げないの?



何故デスマプロジェクトはなくならず

何故仕様書通りにつくったものが動かない?

何故若手エンジニアが酷使されていて

何故ユーザー企業は文句ばかり言うのだろうかと。



その大元の理由を大手SIer勤務の遥くんに聞きました。
※非エンジニアのブログなので超要約してます。間違ってたらご指摘ください


遥くん
『それは要件定義をしっかり行わないから。』



もう少し詳細かつ非常に乱暴に再現すると、こんな感じ。

ユーザー企業『2018年3月にリリースするシステム作りたい』 

多重請け構造の中でもTOPのSIer『どんなシステム作るんですか?要求定義から始めましょう。』


ユーザー企業『担当部門に詳細聞いておくわ』

TOP SIer『わかりました。ヒアリング結果を2017年4月3日までにその要求ください。』




4月3日当日

TOP SIer『担当部門からのヒアリング状況如何でしょうか?』


ユーザー企業『あ、まだ返ってきてないわ。』

TOP SIer
『。』

その下請けSIerに『ちょっとスケジュール押してるから待っててな。』と伝える

下請け企業『。』

文句言いたくても言えないのである。

それだけSIerの立場が弱いから。
ユーザー企業の動かす金はおおきければ数千億にもなり、SIerはユーザーのミスであってもNOと言えない
言いたいことも言えないこんな世の中である。



スケジュール通りに動いていたら要件定義が始まる期日になり、
ユーザー企業『要求定義できたで。ほらよ!』

TOP SIer『(すでにスケジュール押してるな…下になんとかやらせよう)ありがとうございます!』


といった具合で、最も重要な『何を解決するために、どんなものを作るのか?』が抜けた状態で無理やりプロジェクトが走り始めるのである。


ということで、だいたいの炎上プロジェクトは、要件定義を行っている段階で見抜けるものなのだ。

しかしそれを隠したまま基本設計、詳細設計、各パーツの開発へと進んでいく。

そして大規模案件であればあるほど担当部署は細分化され、


TOP SIer『こんな感じで要件きてるからよろしく。』
ユーザーには『順調です』と言う


要件定義担当SIer
『(スケジュール押してるやん。てか要求定義ずさんすぎ)』
『これが要件定義書です。(ずさんで絶対あとから揉めるけど)』 
ユーザーには『順調です』と言う


基本設計担当SIer
『(ずさんだな…絶対あとで炎上するけど指摘したら自分達の責任になるからなんとか形作ればおけ)』

『基本設計できました(あとはよしなにやってくれ)』
ユーザーには『順調です』と言う


詳細設計担当のSIer
『。』

『詳細設計です。開発担当の皆さん宜しくお願い致します。』
ユーザーには『順調です』と言う


項目ごとに割り振られた開発担当のSIer複数社
『。』『。』『。』『。』
『。』『。』『。』『。』
『。』『。』『。』『。』



~~~ここでテストスケジュールも後ろだ押しされる~~~

2018年3月某日

開発担当SIer
『『『できました!納品します!』』』

単体テスト結合テストなど手順を踏まずいきなり受け入れテストを行う

結果・炎上。


各担当のSIer
『『『複雑すぎて、どこにミスがあったのかわからないので責任負えません』』』

といった具合で逃げる(本当の話らしい)


上記のようにユーザー側の非協力的な態度や、自分の所さえなんとかなればOKという考えから、
要件定義⇒基本設計⇒詳細設計⇒開発⇒単体テスト結合テスト⇒総合テスト⇒受け入れテスト⇒リリース
といったやり方が

要求定義⇒⇒
    要件定義⇒  
       基本設計・詳細設計⇒
         開発⇒⇒⇒⇒⇒⇒⇒⇒
             (各テスト省略)
                   受入テスト



という風に、各工程が重なり合ってぎりぎりのスケジュールで行っている。(本当の話らしい)
  

なぜ元凶である要件定義はいつの世も蔑ろにされるのか?


■そもそも技術がわかる人がいない
■ベンダーに丸投げ体質
■各部門が仲悪すぎで自分の仕事しかしない(関連作業を怠る)
■中立の立場であるコンサルは結局ユーザー立場なので、上手くいってなくても『概ね順調です』と言い張る

色々理由はあると思うが、


結局のところ、


ユーザー側に、自分達のシステムを作っているという認識がない。


これが全ての元凶である。



自分たちが使うシステムを作っているという認識ではなく、

上から与えられた仕事をとりあえずこなすからこうなる。

ユーザー企業のメンバーに主体性がないから部門間で仲悪かったり

非協力的だったりする。

そして、そこにNOといえないSIer構造の日本が

炎上プロジェクトを盛り上げる拍車となっている。


責任のがれ、自分だけいい顔しては良いものは作れない。


主体性を持った行動こそ、

『自分たちのシステムをより良くつくる』ことに繋がる。


なので、アメリカのように、

SIerに頼らず自前で作ることが当たり前の世界にしたいと想う。