「倉重公太朗のこれからの『働く』を考えよう」対談コーナーに登場させてもらいました。鋭い切り口で質問して頂いたことで、「人が増えても速くならない」について、改めて自分なりに言語化できる良い機会でした。ありがとうございました。
<前編ポイント>
・人を増やしても納期が短くなるとは限らない?
・一度にたくさん作っても生産性は上がらない?
・新しいアイデアを早く出すには?
システム開発は、人が増えても早くならない(前編)(倉重公太朗)
<後編ポイント>
・やみくもに数をこなしても仕事は上達しない
・市場で求められるエンジニアになるために必要なこと
・新人の視座を上げるために有効なことは?
システム開発は、人が増えても早くならない(後編)(倉重公太朗)
以下に、私の話した部分を抜粋します。
目次
「その事業やプロジェクトは何のために行うのか」
エンジニアの人たちの接し方にもなりますが、「これを作ると決めた。画面も機能もこのような感じで頼む」と言われるのは非常に作りにくいのです。例えば「Facebookのようなものを作ってください」と言われたとします。Facebookはどれだけお金をかけて作っているのでしょうか。それと同じことは簡単にはできません。
経営者が欲しいのはFacebookかと言うと、そうではないことが多々あります。「本当に行いたいことは何か? どのようにしたら実現できるのか」というwhyからhowの部分を一緒に考えるのがエンジニアの仕事です。実装というプログラムを組むことは、そのおまけのようなものです。
まず経営者のしたいことを聞いて「こういう方法であれば実現できる」と提案するほうがやりやすいのです。
一気にたくさん作っても生産性が高くなるわけでない
作りたいものはたくさん出てきてしまうので、「一遍に頼むから少し割安にできませんか」と言われることがあります。紙の本を出版するときには、1,000部よりも2,000部刷るほうが割安になるという発想があります。
けれどもシステム開発の場合は全然割安になりません。なぜかというと紙や物は物理的に同じものがたくさんあるので、大量に作ると割安感が出ます。しかしソフトウエアの場合は一つひとつ違うものを作っています。家電に例えるなら、それぞれ違う規格のテレビを作っているのと同じことです。毎回全部違うものを作っているので、量が多いだけでは何の割安感も出ません。
プレッシャーをかけても速くならない
当たり前のことだと思いますけれども、作っているものは今まで話したとおり単純労働のルーティンワークではありません。クリエーティブな仕事で、新しいアイデアを早く出すにはどうすれば良いでしょうか。強いプレッシャーをかけられたらアイデアは早く出せますか?
本当は速く走れる人がゆっくり走っていたら、プレッシャーをかければもう少し頑張ってくれるかもしれません。ですが、良いプログラマーはキーボードを打つよりじっと考えている時間のほうが長いのです。カメラマンで言えばシャッターを押すことが仕事ではなく、良い構図、色合い、ポージングを切り取ることが仕事です。考えることが仕事の人に「速くやれ」と言っても速くできません。
週に1度ふりかえりの時間を設ける
ソフトウェア関連の生産性は、自分自身がより上達していくことで上げていくしかありません。よく高校球児が上達のためにバットをめちゃくちゃ振らされる場面が漫画やドラマではありますが、それで本当に上手になるのでしょうか? もし下手な素振りを1,000回しても絶対に上手になりません。途中で「今のフォームでよかったのか?」というふりかえりをしなければ改善しないのです。
ふりかえりの中で大事なことは自分を省みることです。
チームや師匠が付いてフィードバックを与えることで、より改善し、生産性が上がります。生産性を上げていくにはプレッシャーをかけるより時間をかけてふりかえりをしながら人を育てるしかありません。
人を育てるのもチームを作るのも時間がかかります。逆に言うと時間さえかければ良いチームが出来上がるのです。
計画よりもロードマップが大事
計画を立てる時に「1週間でいけると思うけれども3週間にしておこう」とバッファーを積んでおくと、大体3週間で仕事が終わります。
世の中大体無駄なバッファーで仕事が埋まっているのです。ですから大体で良いから見積もりをもらって、「もし期間内にできなかったとしても絶対に責めません」と伝えます。見積もり通りできたらハッピーですが、できなくても納期を延ばしていけばよいだけです。正確な見積もりを求め、かつコミットメントを取るという方法では無駄が生まれるのです。
まず見積もりではなくロードマップを作ります。大きなものを全部一斉にそろえるのは無理ですが、1個ずつ機能を増やすことはできます。一番優先順位が高いのは何か考えて、作る順番を決めていきます。
近くのものは正確に見積もり、遠くのものはぼんやりと順番だけ決めます。ロードマップは状況に応じて毎月更新すればよいのです。常に未来を少しずつ更新していきます。近くのものは精緻に、遠くのものは解像度を粗くしてずっと更新し続けていけば、機能がどんどん積み上がっていきます。
変化を抱擁せよ
ソフトウエア開発は不確実なものであり再現性がない仕事だと思っています。他の業界や業種でも同様に答えや正解がない仕事が増えているのではないでしょうか。
昔は大勢の人たちが工場で働いていましたが、不確実性があまりなく、皆が同じ労働を時間内にすれば給料がもらえました。ですが今や単純労働はコンピューターやロボットに置き換えられていて、人間は複雑なことばかりするようになってきました。
意思決定や複雑な判断、コミュニケーションなど、正解がない問題ばかりになってきています。不確実なことを絶対に上手に行うことなど不可能です。うまくいかないことを前提として、うまくいく方法を考えましょうというのが本のサブタイトルに書いてあることです。
経営は複雑なものであり、答えのないものだということは分かっていますが、ソフトウエアも同じものだと思っていただきたいのです。「経営をソフトウエアと一体化すること」がDXだと私は思っています。経営者がいろいろな意思決定をしながら経営するのと合わせて、ソフトウエアも変化していかなければなりません。経営サイドとソフトウエアを作っていく側が対等に会話をしていくことにより、本当のDXが出来上がっていきます。
すべて読むにはこちら