Q. 開発経験が多いと身に付く能力というのは何でしょう?

man wearing blue uniform

あえてひとつに絞るならばそれは危機管理能力です。

可能性がある危機を察知し、その発生確率や深刻度を正当に評価し、事前の対策を打っておくあるいは用意しておくこと。それら一連を高い品質で実現する能力のことです。 これだけは経験の浅い開発者には一切ありませんし、なかなか経験の壁を打ち破ることはできません。なお経験とは開発年数のことではありません。どれだけ多くのチャレンジをして、どれだけ多くの失敗と成功を体験したかです。

危機とひとくちに言っても外部由来のものと内部由来のものがあります。

外部由来のものは非常にコントロールが難しいです。例えば日程に影響を及ぼすような部材納期の遅延であったり、クライアントからの突然の仕様変更であったり、コンペティターの動きであったり。自分たちの努力だけでどうにかなる話ではありません。 したがって危機管理としてできることはマージンを見ることです。スケジュールであったり、予算であったり、仕様変更の余地であったり。

マージンを見過ぎると自分たちの首を締めることになります。企画がボツになったり、コンペとの競争に敗れたり、コストがなかなか下がらなくなったり。しかしノーマージンでプロジェクトを進めることほど無邪気かつ無謀なことはありません。 したがってここには絶妙なさじ加減が必要となり、これは経験に根差すことが多いです。

また内部由来のものというのは要するにエンバグです。 こちらは本来的にはコントロール可能なはずです。ただし理想的には、と付け加えなければなりません。 誰も好き好んでバグを埋め込むことはありませんし、多くの開発者は「きっとバグはないはず」と信じてリリースしています。 内部で十分に仕様検討し、レビューを行い、試験を十分に行なった上でリリースしています。 しかしそれでもバグは発生します。 これをゼロにする方法を私は知りません。どんなに入念に準備を重ねても、やはり何かしらのミスは発生するものです。

そう理解しているかどうか、理想主義に陥っていないか、常に疑いを持ってものを見る姿勢が身に付いているか。そのような点については経験の程度に依存する感が否めません。

ちなみに私は自分の設計能力を信用していません。バグは埋め込むだろうし回路はどこかしら間違えるだろうし見落としている不整合やそもそも決め忘れている仕様もきっとあります。そして、きっとあるだろうと考えて色々な手を事前に打っておきます。もしそういうミスが発生しても最小限のロスでリカバリーできるように。

そういう事情で私の回路図を見ると経験の浅い設計者には冗長に見えたり意味がわからない部品や仕掛けがそこらじゅうにあります。それらは備えです。そして、私はそのような私のトータルでプロジェクトを前に進めるための能力を信用しています。

このポストの内容は以下の書籍の一部(原文)です。興味のある方はぜひ書籍をお求めください。

幸せなIoTスタートアップの輪郭

九頭龍 'kuz' 雄一郎 エンジニア/経営者, 日本の大企業からシリコンバレーのスタートタップまで多種多様な千尋の谷に落ちた経験を持つ。 株式会社ClayTech Founder/CEO, 監査役DX株式会社 Co-founder/CTO, 株式会社スイッチサイエンス取締役, 株式会社2nd-Community取締役, 東北大学客員教授, 東京工業大学非常勤講師, 武蔵野美術大学非常勤講師, 他複数社の顧問など。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする