メソッド屋のブログ

米マイクロソフト Software Development Engineer 牛尾の日記です。ソフトウェア開発の上手なやり方を追求するのがライフワーク。本ブログは、個人の意見であり、所属会社とは関係がありません。

日本と米国で異なる「想定する物量」がソフトウェア開発の生産性の違いを生む

私は米マイクロソフトの DevOps のインターナショナルチームに所属しています。ただ、住んでいるところは日本なので日本側のオペレーションも実施しています。

前回のブログでも書いた通り、私はどうして米国のエンジニアが生産性が良いのかをずっと知りたいと思っていたし、今も研究中です。この2つのチームに同時に見えてきたことがあり、彼らの生産性の良さの一端に気付いたのでブログにして残しておきたいと思いました。

f:id:simplearchitect:20160214232158j:plain

見えてきた「物量」の違い

 私がインターナショナルチームと一緒に向こうでしているときに、仕事でアップアップになったことはありませんが、日本だとしょっちゅうです。日本のMSもはっきり言って過去に私が所属したどの会社より相当効率的で無理がないのですが、それでも存在するこの差はいったい何でしょうか?いくつかの事例を通じてだんだん見えてきたことは1つのことをこなすための「物量」が違うということです。

海外イベントに行った時の報告の違い

   一つの例を具体的に考えてみます。インターナショナルチームで、以前高額のDevOps Enterprise 2015というイベントに参加した時のことです。インターナショナルチームでも当然レポートとかはあるのですが、一般的に大変シンプルです。E-Mailで、Wordでいうと1-2ページ程度、大まかにポイントがまとまり、写真で雰囲気がわかればオッケー的な感じです。ですので、これを作るのはそんなに時間がかかりません。2-3時間ぐらいでしょうか?

 一方日本側として、海外のイベントに参加した時の報告は、プレゼンを作って、そのプレゼンをみんなで見れるように報告会があり、それが録画されます。これはとてもいいことなのですが、報告する人からすると、最低1日はがっつり準備が必要になってくるでしょう。見るほうも1日のイベントになります。

ちなみに、私が初めてインターナショナルチーム向けにレポートを書いたときに、がっつりとした日本式のものを書いて提出した事がありました。それは没になりました。というのも、彼らによると「読むのに時間がかかるからシンプルなのを」とのことでした。

会議に対する姿勢の違い

1つの会議に参加する工数もずいぶん違います。この辺りはMSの日本チームも米国チームと近いので、過去に日本の企業で務めていた時のことと比較してみます。インターナショナルチームの会議は、会議を実施している時間はとにかく集中していて、議事もOne Noteという共有サービスを使いその場でシェアしてシンプルなものを書いていきます。だから、会議の前も、後も何もする必要がありません。必要な時間は会議の時間だけです。

 ところが、日本で過去に実施していた典型的な会議の場合、実施前に準備し、実施後に、数時間かけて議事録を作成します。その議事録も、会議の内容がすべて収まったような詳細なものです。また、会議では次の会議までにこれを済ませてほしいという重厚な宿題がだされるケースも多くあります。

 ワークショップを開催する例はどうでしょう?

 例えば米国でValue Stream Mappingというワークショップを同僚のDavidと実施した時のことです。会場に行ってワークショップを実施して、他チームのプロセスや課題を見える化してディスカッションします。ワークショップをしながら、テンプレートに簡単なテキストベースで記録をとります。手書きダイヤグラムを作成、写真をその場で撮影して共有にアップロードします。他チームのメンバのほうも、「後日資料をまとめて提案しててください」みたいなことは言われず、「いやー助かったわ。次はこういうことお願いします」という感じでその場が濃厚に終わります。

 私はゲスト参加だったので、何もしなくてもいいのですが、折角なのでバリューを出そうと、写真を撮りまくって ほかの仲間と共有するために、ワークショップの進め方の資料をその場でさっとつくりました。さすがにそれはワークショップ中に終えるのは無理だったので、終わった後1時間ぐらい作業していました。Davidがやってきましたが私がワークショップの 続きのことをやってるのを見て「何をしているんだろう」という感じの若干微妙な顔をしていました。彼らにとっては、ワークショップの作業の続きがワークショップの後にも行われているのが、不思議なのかもしれません。

そして、Davidのもう一つの会議が終わった後、4時ぐらいですが、さっさと切り上げて一緒にスノーボードに行きました。なぜなら、会議の後に必要な残作業などないからです。

万事がこんな感じで、必ず「会議をしている時間」の中で基本的にすべてが無理なく完結するようにできています。会議の間は集中していますが、その前後にかけてる時間が全然違う感じです。でも成果はどの程度かわるのでしょうか?

お客様との会議でもかわらない

驚くことに、これは、お客様が相手でも変わりません。先日も欧州のお客様とIoT x DevOpsのディスカッションをしたときのことです。たまたま参加させてもらいましたが、500人ものデベロッパーを抱えるお客様のところで、ハッカソンを開催して業務プロセスを変えるというイベントの相談でした。お客様は手ぶらで来ていますが、こちらに対してやってほしいことがとても明確です。こちらも手ぶらです。ディスカッションは濃厚に行いますが、終わった後にやはり議事録をだしてくれとか、提案してくれとかそういう話は一切ありません。びっくりしたのですが、「500人ものハッカソンを開催して、業務プロセスを変える」というイベントを行うという決定が、その場で「じゃあ、やりましょう。」と決定されたことです。

日本だったら、上の人にお伺いを立てて、稟議を通して、承認されて、、、、とかあるところなのに、全然違います。これはスピードで勝てるはずがありません。

考え方の違いに対する考察

万事がこのような感じで、結局のところ、彼らの生産性が良い大きな理由は、彼らがものすごい量のことをものすごい速さで効率的にやっているのではなく、物理的に「量」が少ないからということが大きいと思います。アジャイルのコンサル時代 に学びましたが、改善の最大のポイントは「やらないことを増やす」ことです。日本の文化だと、どうしても、仕事というのは「献上」モデルになっていると思います。仕事の成果を「献上」する相手の生産性や成果を最大化しようとします。だから「献上する側」が楽かどうか、時間がかかるか?はあまり考慮されません。  一方インターナショナルチームだと、「チーム全体の生産性」をあげるように工夫されているように感じます。日本だと「献上」する相手を敬い、そこに最大限のパワーを使う感じでじゃぶじゃぶ時間が過ぎていきますが、インターナショナルチームだと、後述しますが、「助け合い」という感じで上下関係もないので、仕事をやる側の人にとっても「大変」なことは要求されません。

 よく外資系に務めていると「本社から、とてもやれないようなことを要求された」とかよく聞きますが、本当のところは、1つの仕事に対する、仕事量イメージの違いが生み出している不幸のような気がします。私はBOSSにとてもできないような仕事を要求されたことは1回もありません。彼のイメージする仕事をこなしているのは本当に楽に定時内で楽々できるものです。  きっと、仕事をお願いするほうがそういうイメージなのだと思います。ところが、日本側からすると、先ほどの会議の例でもそうですが、「日本式」に同じ仕事をするイメージをすると、ものすごい物量になってしまうということではないでしょうか? だから、本国側も「なんで、あんなに簡単な仕事を頼んでるのに、日本側は大変だとかいうんだろう?」みたいな感じになっているのではないでしょうか?

上下関係がない

 ほかに気づいたことは、日本では「偉い」人がいるのですが、インターナショナルチームでは「偉い」人がいないということです。インターナショナルのチームでは、「BOSS」や「マネージャ」はいるのですが、彼らが「偉い」という感覚がありません。単なる同僚で違う役割の仕事をしてくれているという仲間という感じです。彼らも私に命令をしてくるなんてことはなく、私に意見を求めたり、チームで一緒に仕事をするのがうまくまわるのに、協力してくれている感じです。 一方日本では「偉い人」が存在するので、「偉い人」にお伺いを立てないと万事何事も進まなかったりします。チーム内でも「偉い人」の順番があって、「偉い人」が若い人に指導をするみたいな雰囲気があります。インターナショナルチームでは、誰も年齢とかを気にしません。自分で考えて、お互いが助け、助けられ、お互い感謝する感じです。だから、基本的に自分で意思決定をして物事を楽に進めることができます。もちろん時にはBOSSに相談したほうがいいことはありますが、頻度が圧倒的に少ないイメージです。 基本仕事は、自分の意志で「俺これやるわー」というノリでやるもので、KPIのみがあり、強制的にやらされることはない感じです。だから圧倒的にストレスがありません。

日本で生産性を上げるために

外国人上司にしょっちゅう言われることは「最も少ない工数で、最大のインパクトを」ということです。彼らは私がたくさん工数を使うこと、休日も働くことを全くいいと思っていません。例えピカピカな成果を休出して出したところで、微妙な顔をされるのが関の山です。

 大量の物量を速い速度でこなそうとしても結局無理がかかって、結局時間外労働することになります。それよりも、物量を減らして、本当の「実」をとる方法を考えます。 「偉い人に献上する成果」だけを最大化するのではなく、「チーム全体の生産性」を最大化させるために、「チーム全員が大量の仕事をしなくてもいい仕組みづくり」をするほうがよっぽど簡単でしょう。

仕事をする側も楽になる仕組みづくり。余った時間でさらに新しいことも取り組みやすくなりそうです。

 でも、こう書くと「いやー君が言う通り、文化が違うから日本では無理だよ~」という声が聞こえそうですが、日本でこのレベルのことをやっている会社さんを私は知っています。ソニックガーデンさんです。倉貫代表のブログがあるので、これを読めばその考えの一端に触れることができるでしょう。

kuranuki.sonicgarden.jp

 私が一度彼らとお仕事させてもらった時です。彼らは私のクライアントでした。ある仕事をするために会議をするという段取りになったときです。代表の倉貫さんがその時に私に言ったことが衝撃的でした。

「牛尾さん。会議をやるときに準備はしてこなくていいです。無駄ですので。その代わりに会議のその場で良い成果を出しましょう。」

 普通でいうと、人を雇うときに、その人にいっぱい仕事をしてもらいたいと思うのが普通だと思います。だから新しい仕事を始める前、クライアントは私がいっぱい準備して、提案書とか作ってくれることを期待するのが普通だと思っていました。ところが、倉貫さんは全く逆でした。雇っている方が、無駄な作業をしてこなくていいというのです。雇われているほうも、こっちのほうが楽に仕事ができますが、その「場」で成果を出すためには普段から実力をつけておくしかないので、空いた時間で本当の「実力」をつけることに注力できます。

 日本の全体を今すぐ変えることは難しいですが、こういう人が一人でも増えてくると日本の生産性は上がってくると思うのです。お客様相手の箇所が難しいなら、自分の会社内、いやグループ内だけならできるかもしれません。少なくとも自分がそうなることもできます。米国の人ができることも日本人ができることも大して違いはありません。しかし、「成果」につがならないこういう無駄の積み重ねで、日本がソフトウェア産業で負けているのだとしたら、相当もったいない気がします。以前にも書きましたが個々の日本人の能力は高いと思います。

こういう環境で働ける人が増えたら、もっとみんなが楽しく働けて、グローバルから見ても成果が楽に上げれるようになると思います。少しづつでも始めてみませんか?日本だから仕方がないとあきらめるのではなくて、私も自分の幸せのためにも実践してみたいと思います。