COLUMN コラム
NHKが日本IBMを訴訟している。
事実かどうかは分からないが、日本IBMの言い分を読んでみるとNHKが悪いように見える。
これについては別途コラムを書いているので、そちらを見ていただきたい。
下記コラムでは、本件を一般化した上で、なぜシステム開発が70%以上も失敗するのか、その原因は何かについて言及した。
システム開発だけプロ扱いされない
さて、今回は開発プロジェクトが失敗する理由を別の角度から見ていきたい。
それは我々エンジニアを歯車のように考えている「愚か者」についてだ。
我々はシステム開発におけるプロである。
求められている未来、理想を実現するために、我々は持てる知識・技術などを総動員する。
時にはチームを組み、様々な会社とタッグを組みながら開発を行うこともあるだろう。
専門職としての誇りと自信を胸にクライアントの夢、理想、未来を実現し感謝していただけるように全力を尽くしたい。
それが我々の生きがいである。
なのに、である。
それなのに、手前勝手な野郎どもがいる。
愚か者と言わざるを得ない人がいる。
どういうことか。
「いいから作れ」と言ってくるのだ。
表題の通り上流工程(要件定義や設計書の作成)は自分たちでやるから、下流工程(開発するところ)を我々に依頼してくるパターンに多い。
上流工程は設計図を作成する工程で、下流工程は手を動かすところだ。
建築でいうと、家の設計図を作る人と設計図を見ながら家を作る人
服飾でいうと、デザインを作る人とデザインを元に服を作る人
みたいなイメージだ。
そして、我々プロの意見を聞かずに自分たちの夢やロマンを詰め込むだけ詰め込んだプロジェクトが日本では非常に多い。
だから失敗確率が70%を超えているのではないだろうか。
我々の意見を聞かず、自分たちのはた迷惑な熱い熱いパッションをゴリ押しされても迷惑でしかない。
我々は何を意識して開発をしているのか?
このような状況ではシステム開発における最重要事項を担保することが難しくなる。
最重要事項とは、不具合を起こさずシステムとしての整合性を担保しつつ、拡張性を持たせたシステムを維持することである。
難しい表現になってしまった。
いまいちピンと来ない方もいるだろう。
要するに3つのポイントを気を付けているのだ。
- 不具合が起きず常に操作ができること
- データやシステムを信用することができること(整合性の担保)
- 追加機能の開発や既存機能の削除などがやりやすいこと(拡張性)
この3点が必要不可欠であると思う。
優先順位や重要度の高い低いは人によって変わるので、ここでは割愛する。
建築で例えてみよう
上記の説明でも難しい方のために家をたとえにすると
- 建付けがよくて
- 整理整頓がしやすくて
- 庭いじりも楽しめる
そんな感じだろうか(だいぶ曖昧にしているので、なんとなくっていう感じだが)。
だが、もしこんなことをいう人がいたら、どう思うだろうか?
「風呂とトイレとキッチンを同じ場所に置いてくれ」
「1階にキッチンで3階にダイニングで2階にリビングにしてくれ」
もう何を言っているのか不明だ。
もしプロの施工会社はどうするだろうか?
絶対に止めるだろう。
絶対に提案するだろう。
もしお客さんが提案を断ってきたら、どうするだろうか?
依頼を断るだろう。
もしくは、念には念を入れて契約書を書かせるだろう。
「何か起きても絶対にこっちは悪くないですよ、注文したのはお客さんですよ、止めましたよ」と幾重にも書いて訴訟されないように契約書に書いて締結することだろう。
そうでなくては恐ろしくて何もできない。
では、システム業界ではどうだろうか?
はい、ガン無視です。「黙れ」と言われます。
これだから、失敗する。
これだから、我々がどんどん苦労する。
だから、我々はプロ意識を持って指摘する。
結果、「プロなんだから早くやれよ」と言われる。
このような無茶な注文が続くと、調査に時間がかかるようになり結果として開発する時間が長くなることがある。
だから、工数削減のためにも調査は必須だし、調査報告を受けた上での検討も必須だ。
やみくもに「やれ」では失敗の未来しかないのだ。
我々エンジニアに責任はないと言い切れるのか?
では、次は我々エンジニア側に責任はないのか?という点で考えてみよう。
私は業界の慣習がそうさせてしまっているのではないかと考えている。
つまり、我々が御用聞きになってしまったせいで、お客様との立場が逆転し、我々の責任を果たすことができないようになってしまっているのではないか、ということである。
お客さんが言ったから、というのはすごく言いやすい。
「Yes」と「はい」しか選択肢を持たず、プロとしての自覚もなく、ただただ手を動かすだけ。
それではロボットと一緒だ。
これが一般化してしまうと、慣習となる。
だから、「いいから作れ」と言ってくる人が大量に存在することになるのだ。
考えてみて欲しい。
素人考えで建築の設計書を持ってきたら、プロは何というか。
素人考えで服飾のデザインを持ってきたら、プロは何というか。
絶対にプロとして意見を述べるはずだし、提案をするだろう。
これがプロだ。
なのに、エンジニアは素人考えの設計書をそのまま作ろうとする。
今では生成AIですら質問してくれる世の中になったのに、このままでいいのか?
これはプロと言えるのか、甚だ疑問である。
もちろん上流工程を依頼されていないケースがあるだろう。
それでもプロとして関わっているのなら、自分の意見を述べるべきだ。
お客様のためを思うなら自分の意見を伝えて、その上でお客様にご判断していただく。
判断の結果としてGOならば、問題が起きないように細心の注意を払いながら開発を行う。
これがプロではないか。
お客様は意味不明な要望や願望をねじ込んでくることがある。
それを「はいはい」と言って開発して、品質の悪いシステムを作り上げることがプロではない。
ただの作業者に落ちぶれてしまっては、生成AIの餌食となる。
エンジニアとして今後もやっていきたいなら、今からでもしっかりプロとしての意見を伝えることができるエンジニアを目指すべきである。
双方向のコミュニケーションが成功を支える
プロジェクトを成功させるためには、経営的な視点と技術的な視点のコミュニケーションが大事である。
経営的な視点だけを突き通してしまうと、システムとしての品質を担保できない可能性もあるし、IT業界でのトレンドを握ることができないこともあるだろう。
たとえばユーザ間でのコミュニケーションが大事という文脈で「掲示板」機能を作ろう、みたいな話がよく出る。
確かに掲示板機能は利用者のコミュニケーションを図るのに優れた機能ではあるが、果たしてそれが本当に有効な手段なのか不透明だ。
利用者の年齢層によっても変わるだろうし、掲示板機能によってコミュニケーションを図るのは全てのサービスに有効ではない。
また技術的にもし作るとしたら、どういった懸念点があるのかをしっかり握った上でやる・やらないの判断をすべきだろう。
このように我々の知見から情報を引き出すことで、より優れたサービスを作ることもできる。
一方で、我々の知見だけを優遇するのも問題である。
我々はできる限り今あるシステムを維持していきたいと考える。
作品としてもそうだし、品質としても手を加えることで悪化する恐れがある。
だから、経営的な視点でビジネス上の競争優位性を確保するための意見を伝えていただく必要がある。
この双方のコミュニケーションを図り、落としどころを見つけて開発していくことでサービス品質を向上させることができる。
多額の金額と多大な時間をかけて開発しているプロジェクトが失敗するかどうかの土台は、コミュニケーションにあることを忘れないでいただきたい。
最後に一言
改めてになるが、エンジニア諸君。
お客さんと話すのが面倒。
上と衝突するのが面倒。
と思っていると、AIの発展とともに諸君の居場所が駆逐されていくだろう。
今の内にコミュニケーションの重要性を理解し、挑戦していくことを推奨する。
今回のコラムはここまで。
何か気づきや学びになればシェアしていただけると嬉しい。
それでは、また次回のコラムでお会いしましょう。