勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

「人が増えても速くならない」と素朴概念の問題

読むのがホネな技術書やビジネス書を取り上げて2週間の読書期限を課して読んでアウトプットする仮想読書会「デッドライン読書会」の第55回。同僚と読書期日を約束することによって消化が捗るという仕組み。過去記事はこちら

さて、今回取り上げるのは話題(?)の本「人が増えても速くならない ~変化を抱擁せよ~」である。

非エンジニア(起業家、経営者、マネージャ)向けに、ソフトウェア開発でよく起こる誤解を解くという目的で書かれた本書である。結論から言うと良い本であった。一方でいくつか気になる点もある。そういった事を書いていく。

ソフトウェア開発における素朴概念との戦い

先ほど「ソフトウェア開発でよく起こる誤解を解く」と書いたが、最近勉強している心理学の用語でいうと、この誤解は素朴概念の一種であると言えるのではないかと最近考えている。

素朴概念とは、観察を通じて自然に獲得される知識体系のことである。これは科学や工学的な概念知識とはイコールではないことがある。わかりやすい例としては、地球が丸いという知識だ。現代人の多くは教育によって「地球は丸い」ということを理解しているが、教育を受けていない人にとっては理解することが難しい。素朴概念では「地球は平面」なのである。知識が無い状態で観察すれば、地面は平面としか見えない。

この「素朴概念」の問題がソフトウェア開発においては大きな課題になっていると考えている。ソフトウェア開発の実態と、(ソフトウェア開発の)知識をあまり持たない一般人の認識には極めて大きな乖離が見られるからだ。本書「人が増えても速くならない ~変化を抱擁せよ~」が相手にしているのは、まさにそういった誤解だ。例えば

  • 完成度の高いソフトウェアを作り出せば、そのままずっと使い続けることができる(実際には、できないことが多い)
  • 作業する人を増やせば、ソフトウェアの完成が早まる(実際には、早まらないことが多い)
  • まとめて大きなソフトウェアを作れば、得をする(実際には、損をすることが多い)

など(本書にはもっといろいろと書かれている)は全てソフトウェア開発においては誤解である。

こういった誤解はなぜ生まれるのか。私の予想では根本には、ものづくり、そのものについての理解の浅さがあるのだと思う。小学校教育などで学ぶ「製造業(工場)」の雑なイメージ、それ以降の人生における複数人での共同作業による「ものづくり」経験の少なさがあり、人はソフトウェア開発プロジェクトの困難さが想像できないのではないか。

加えて、ソフトウェア開発業界自体が素朴概念をミスリードしていったという経緯もある。

ソフトウェア開発業界が誤解を助長している

ソフトウェア開発における素朴概念の問題は、ソフトウェア開発業界の中にもある。そもそも、ソフトウェア開発を行っているエンジニアたちも誤解をしていたのだ。

人間が行うほとんどのことで、「もの」の製造、生産は難しい部分です。自動車、旅客機、携帯電話などは、設計でも労力と創意工夫が必要になりますが、最初のプロトタイプの設計とアイデアを大量生産できるところまで持ってくるためには、設計段階よりもはるかに大きなコストをかけて複雑な道のりをたどらなければなりません。少しでも効率ということを考えてものを作ろうとするときには、このことが特に当てはまります。このように、難しいのは生産段階であるため、工業化時代とその思考法の産物である私たちは、少しでも腰を据えて仕事をしようとすると、ほとんど何も考えすに自動的に製造、生産の心配をしてしまいます。
その結果、私たちはかなり一貫してソフトウェア産業にも同しように「製造現場の思考法」を応用しようとしてきました。
継続的デリバリーのソフトウェア工学 もっと早く、もっと良いソフトウェアを作るための秘訣 2.1 私たちにとって製造は問題ではない、より

エンジニア自身も勘違いをしていたし、さらにソフトウェア開発プロジェクトをリードする非エンジニアのマネージャーも勘違いをしていた(kawaguchiさんの言う「おじゃる様問題」を参照)。

何が言いたいのかと言えば、ソフトウェア開発プロジェクトが誤解されやすいのは非エンジニアであるユーザー(起業家、経営者、マネージャ)だけのせいではないということだ。

本書「人が増えても速くはならない」で誤解は解けるか

というわけで(やっと)「人が増えても速くならない ~変化を抱擁せよ~」の話に入る。
本書はSonicGarden 株式会社ソニックガーデンの創業者である倉貫さんが、顧客に対して延々と説明してきた「ソフトウェア開発プロジェクトの誤解」の集大成である。

「そのギャップを少しでも埋められたら、きっと世の中のビジネスもソフトウェアももっと良くなるし、ソフトウェアを必要とする人とソフトウェアを開発するエンジニアの双方が幸せになれるのでは」
人が増えても速くならない ~変化を抱擁せよ~ はじめに、より

非エンジニア向けに平易に書かれており、比喩も多くたいへんに読みやすく良い本というのが感想である。特に、以下の点が良いと思った。

  • 優れた比喩(メタファー)が多い
    • 著者がおそらくビジネスで大変苦労をしながら生み出していった「わかりやすく説明する」ための工夫が惜しげもなく公開されている
    • 同じような説明をしなければいけない立場として、とても参考になる
  • アジャイルスクラムを扱っていない
    • 本書は(あとがきを除いて)アジャイルという単語が出てこない。
    • アジャイルという単語が出てくると胡散臭くなるというか説教くさくなる今日この頃、これらの単語が出てこないのは好感度が高い

というわけで、非エンジニア向けの本ではあるが学びの多い本だった。

本書を読む上での注意点

とはいえ本書については問題もある。
本書の冒頭でも語られる通り、本書は著者の経験を元にしたノウハウがまとめられたものである。
では著者の経験はというと、基本的にはSonicGarden 株式会社ソニックガーデンさんのお仕事であろう。よって本書のスコープは、あらゆるソフトウェア開発に適用できるわけではないという点には留意する必要がある。

ここは筆者の想像も入るが、ソニックガーデンさんとソフトウェア開発を行うということは、

  • ビジネス創業期などから段階的にソフトウェアを成長させていく
  • SIerなどに一括発注して開発リスクを軽減するのではなく、リスクを負って開発者とともに作る

ということになるのではないだろうか。

たとえば筆者はSIer的なビジネスに関与をしており、大規模(?)なソフトウェア開発プロジェクトに関与することもあるので「第7章 一度に大きく作れば得に見えて損をする」などは気掛かりな記述も多かった。私は経験が無いが、組み込みソフトウェア開発でも異なる違いがあるだろう。本書は優れた記述やメタファーに溢れているが、適用すべき対象(コンテキスト)を誤ってしまうとさらに誤解が増えてしまいそうだ。そういう点では、本書が想定しているコンテキストに関してもう少し説明があっても良かったのではないかという気がする。

とはいえ、ソフトウェア開発に関係する人すべてに一読を勧めたい本である。

というわけで、本書は完了。さて次はなにを読もうか。いま気になっている本は……

どれにしようかなぁ