arclamp

ITアーキテクト 鈴木雄介のブログ

「ソフトウェア開発プロジェクトをとりまく6つの誤解」は真実でもある

ソフトウェア開発プロジェクトをとりまく6つの誤解〜プログラミングを経験しないとわからないこと」に釣られてみます。

6つの誤解は次の通り。

  • 既にあるソフトウェアを流用した方が速く作れる
  • ソフトウェアはハードと違って後から容易に直せる
  • 誰が作っても中身は同じ品質になる
  • 共通部品から先に作ることが出来る
  • 人を増やせば一度に沢山の機能が作れる
  • 正確な見積もりを出すことが出来る

記事の前提は"お客さんはITにそれなりに詳しい(けどプログラミングはしたことがない)情報システム部門の人"ということだと思います。

この6つは誤解しやすいし、僕もお客さんと会話する内容です。でもね、お客さんがそう感じていることも事実です。なるべく安く早く、そして変更に強いシステムを作りたいと願うことは当然のことです(もちろん予算どおりに)。

 

ソフトウェア開発に職人的(あるいは芸術的)要素があることは間違いありませんが、それが生産力の中心であることは産業としての未熟さを示しています。上記の問題を「誤解です」と言ってしまうのは作り手のエゴではないでしょうか。

だからといって「お客様の言うとおりです。その通りに進めます」みたいな営業トークをすればいいということではありません。

それはもう真面目に作ることに向き合う。対象システムを分析し、ドメインに分割し、個別に実現手段を探りながら適切な統合方法を模索する。そこからプロジェクトの体制やWBSを考え、スケジュールに落としこんでいく。

なによりも僕らは品質と生産性をあげなくてはいけない。そのためにはあらゆる可能性を検討する必要があります。

パブリッククラウドもパッケージ製品も使えるなら使えばいい。半年で数百人月のシステムを実現したいなら誰が作っても同じようになる部分も必要です。最初に全体を共有できる部分は共通部品を整備したほうが効率がよくなります。コミュニケーションオーバーヘッドがあっても人を増やせばいい。予算稟議を書いてもらうのに見積もりは必要です。

 

何もかもはうまくいきませんが、それを「誤解です」と言ってしまうのはどうなのか。僕も受託開発をする身として、おそらく倉貫さんと目指しているところは似ていると思います。だからこそ「こっちの都合もわかってよ」というのは受託開発のプロとしてはどうなのよ?と思った次第。

 

いやね、Disりたいわけじゃなくて勘違いしちゃうエンジニアがいるんです。「誤解している客が悪い、俺は正しい」みたいな。いや、わかります。僕だって「良い客を選べ」って言いますから。でもね、6つの誤解をしていても素晴らしい顧客はいるし、一緒に協力して良いものを作れます。少なくとも受託開発のエンジニアはプログラミングどうこうで語るべきじゃない。提供するシステムの価値で語らないと、って思います。