見出し画像

なぜソフトウェア開発は計画通りにプロジェクト進行できないのか

というわけで、ここんとこビジネスの基礎的なお話ばかりでしたので、久しぶりにソフトウェア開発について書きたいと思います。

なにぶん、私が

 ・ソフトウェアアーキテクチャ
 ・ソフトウェア品質
 ・プロジェクトマネジメント
 ・法令/規格
 ・人材教育

と色々なことに手を広げすぎ、且つ意外と身近な周囲にはそういったリテラシーが低いか、あるいは「自分は関係ない」と思ってらっしゃる同年代が多すぎたこともあって、少し説教くさくなってしまっているのかもしれません。

あー、説教くさい爺にはなりたくない。
まぁ、知らないでいるよりはいいんですけど。

さて、今回は「ソフトウェア開発」そのものについて、少し語りたいと思います。

他責と自責

多くのIT業界の方々は、タイトルのような質問をされると、おそらく

 「顧客が、要求仕様を詰め切れていない」
 「そのために、仕様変更がやまない」

と言ったことを理由に挙げられるかと思います。たしかに、世の中のITプロジェクトにおいて、一番問題が混入しやすい工程が『要件定義』であるのは間違いありません。ユーザーのITリテラシーが低く、また担当者は上から言われただけで自社内の要求仕様をまとめきれず、後手に回っているのも確かでしょう。

ですが、私たちIT企業側のプロジェクトリーダーやマネージャーは、そういうものだと理解したうえで

 「ユーザー以上に、業務に精通する」
 「むしろ提案し、ユーザーの決断を誘導する」
 「タスクを疎結合にして組み合わせに自由度を持たせる」
 「わからないなりの仮説検証を行い、顧客にフィードバックをもらう」

と言った努力を行っているでしょうか。放置しておけばリスクになる可能性を「リスクである」と認識していながら、そのまま口を開けて放置していたら、そりゃー顕在化して大問題に発展するのは当然です。『この先危険』と書かれた看板を無視して先に進んでいるようなものですから、自業自得と言わざるを得ません。

ユーザーに責任を押し付ける前に、まずは足元を確認してみましょう。

私たちは、私たちにできる『最大限』を本当に実施していますでしょうか?愚直な作業を増やさなくても、ほんの少し情報を収集し、整理するだけで、ユーザーを誘導することは可能です。作業を増やそうとすると、どうしても「工数が…」「スケジュールが…」「予算が…」といった弊害にあって、できることもできなくなってしまいますが、情報を収集し、整理するのであれば、手はいくらでもあります。

たとえば、よくあるのが

データ移行を行うのに、現行システムの原データを借用しようと思ったら、個人情報保護の観点から手続きが複雑で、ユーザーに断られた。
そのため、現行システムのデータ仕様から、憶測で設計、移行を実施した。

すると、仮想データを使ったテストでは十分に検証できたが、いざ一発勝負の本番移行で想定外のデータが含まれていたため、データ移行は失敗した。
システム切り替えを延期し、現行システムでの稼働で乗り切ったが、原因調査、修正対応、再検証で1ヶ月ほどカットオーバーが遅れた。

といったケースです。ものすごくピンポイントな内容になっていますが、これ、非常によく聞く事例の1つです。では、これはデータを提供しなかったユーザーの責任でしょうか?

ここから先は

7,400字 / 5画像

¥ 800

いただいたサポートは、全額本noteへの執筆…記載活動、およびそのための情報収集活動に使わせていただきます。