書評『プログラムは技術だけでは動かない』
小俣さんより新著『プログラムは技術だけでは動かない』をいただきました。ありがたく頂戴すると共に書評を書かせていただきます。
本書は小俣さんの12冊目の著書です。小俣さん自身の実体験として過去にCADの開発をしたり、受託開発をしたり、ネットワーク製品の開発・販売をしたり、会社経営に携わったり、という経験を通じて得られた見識が全編に散りばめられていました。小俣さんの以前の著書『プログラミングで飯を食えるか』等にもそういった経験談が豊富に語られていますが、本書では9章で海外進出というテーマも触れられているところが注目です。
かくいう私もこれまでオーソドックスな業務をこなしてきていたわけですが、つい最近に海外業務に参画する機会を得ました。その国で小俣さんの愛車のミニカーが販売されているのを発見し、自分の子供用と一緒に小俣さんの分もゲットしお送りしました。本書はそのお返しに頂いた次第です。
さて、本書の対象読者は私の印象からするとプログラマを中心としてSE、PMまたはシステムの営業あたりの方かなというところでして、日々の業務で直面する問題をどのように解消して行ったら良いかのヒントがたくさん書かれていました。多くは実際に発生した問題または成功例を下敷きとして考察がされており、具体例から入るため非常にわかりやすい展開となっています。
1章「なぜ、技術力はあるのにいつまでも仕上がらないのか」ではプログラマ自身の問題として、理想を追求しすぎて期日に完成しないケースや、お客様への確認不足により仕様相違が発生するケースなどが紹介されています。
実際は、自分が考えているほど、相手は中途半端さなど気にしません。
2章「意味のないルールやプロセスに縛られるとうまくいかない」では集団の中で開発をする場合の難しさについて、開発ドキュメントの整備やプロトタイプ作りの勘所などが紹介されています。
言いなりになるのではなく、「どうするのがいいのか」をプロとして提案できるのが当たり前、という気持ちでいてください。
3章「理想を詰め込んだ製品は喜ばれるわけではない」ではソフトウェア製品開発の話になり、開発者本位の考えで作った製品が必ずしもユーザの希望にマッチせず満足感に繋がらなかったケース等が紹介されています。
ユーザーは、「自分が一番使いやすい状態で最初から持ってこい」という感じだったわけです。
4章「人とのつながりが技術を生かす」では開発を進めていく上でのコミュニケーションや人脈の広げ方等が紹介されています。ここはプログラミングの手法というよりは、プログラマとして求められるビジネス上の人付き合いの方法という感じでした。この点に悩まれている方はなかなか多いんではないでしょうか。(自分自身の場合または部下の場合のいずれにおいても。)
たくさんの知識を持つことは役に立ちます。しかし、知識で競い合う必要はなく、「得た知識で何をなしえたか?」がポイントだと考えるようにすればいいのです。
5章「付加価値の高い仕事を得るには」ではプログラマとしての仕事のとり方や市場価値の高め方が紹介されています。短納期やミッションクリティカルといった難しいプロジェクトで過去にプロトタイプを活用してお客様との合意をしつつ信頼を獲得していく話が紹介されています。私自身は情報システムの開発の現場から5年ほど離れていますが、この章の話はコンサルティングの現場でも役に立ちそうでぜひ真似していかなくてはならないと感じました。
どれだけ負荷試験で高性能をアピールできても、本当に高負荷な環境で運用実績があるのとないのとでは大きな違いがあるものです。
6章「2人プロジェクトで新しいことを成功させる」ではプログラマが誰かと一緒にプログラム開発をすることで化学反応を起こして良い結果を残すという例について紹介されています。言われてみれば私も小俣さんが組込型のネットワーク製品を開発しているという話を聞いて「こんなことで困ってるんですよね」という相談をしたことがありました。それはあまり一般的なニーズではなかったため雑談のつもりでお話したのですが、小俣さんからはすぐに新製品サンプルが届いて驚きました。試用した感想などをお伝えした後に小俣さんの会社で本格改良され、今でも小俣さんの会社のWebサイトには製品が掲載されています。
私が開発した製品で、世に出て売れた製品は「ほぼすべて」自分で考え付いたものではありません。逆に、「こんなもの、作れない?」と知り合いから相談を受けて作ったものは「ほぼすべて」完成して、売れました。
これは本書の記載ではなく私の持論ですが、スポーツクラブや自宅でのトレーニングで筋肉を使うのと、相手のいるスポーツの試合やアウトドア等で筋肉を使うのとでは筋肉痛の度合いが大きく違うように感じられます。それはおそらく何か目的を持って筋肉を動かすとしっかりと隅々まで鍛えられるからではないかと思います。プログラミングの能力も同様に、課題や夢に向かって作るときは様々なスキルが磨かれるのですが、何になるかわからない部品を仕様書設計書から作るときというのは磨かれるものが限定的であるように思います。やはりプログラミング能力を伸ばすときは誰かのために力を使うこと。本章で書かれていたのはそういうことなのかもしれません。
7章「受託開発から製品開発・販売へ」ではプログラミング事業としてそれぞれにボリュームのある受託開発型と、ソフトウェア製品の開発・販売型の両方の経験から得られた違いや特徴等の見識が紹介されています。受託開発ノウハウというのはそれこそブログなどでよく書かれているところもありますし、ソフトウェア製品の開発の部分まではスタートアップ企業のWebサービス立ち上げ等に似ている部分があると言えます。一方でB2Bで販売されるようなソフトウェアの販売やサポートの実態というのはあまり紹介される機会がなく、貴重な資料と言えるんではないでしょうか。スマートフォンアプリだとプラットフォーム上で販売も配信もできてしまいますのであまり苦労がないですしね。
得意分野で勝負できるなら、製品やサービスの開発・販売事業の方が楽しく、やりがいもあると思います。
8章「自分で事業部を運営する」ではプログラマから離れてプログラマ社長としての経験が紹介されています。この章はあまり技術的な話ではなくソフトウェア開発企業の経営という観点が中心となっています。
3年は種まきをして、失敗を積み重ねてはじめて業界が見えてくる、くらいかもしれません。
9章「日本の製品を海外で動かす」ではタイでの取り組みが紹介されるとともに、その対比として日本国内に閉じた取り組みの悪い点が振り返りの形で書かれています。タイでガパオ食べたりスマホ買ったりゴルフばっかりしているわけじゃなかったんですね!
「自動化するより人を増やす方が安い」という、今の日本では思いもよらない違いがあったりするのです。
10章「一生、プログラマとして飯を食っていくためには」では今後の展望が書かれています。これまでの9章が過去の経験談を引き合いとした形であったのに対して、プログラミングにかける小俣さんの熱い思いが伝わってくるような章でした。私はここで特に
多くの場合、チャンスは目の前に現れた時点では、まったくおいしそうに見えません。
というフレーズが記憶に残りました。思えばオルタナティブブログに参加したときには炎上のリスクがありそうだし、ブログを書くには時間がかかりそうだし、有名な人がいっぱいいてとても目立てる余地がなさそうだし、と「おいしそう」に見えるものではありませんでした。が、やってみたらやってみたで何かとチャンスはあるものです。こうして小俣さんともお知り合いになれました。ブログやってみてよかったです。
そういった感じの1冊です。ITに関わる人たちに幅広く読まれる1冊となりますように。