パンケーキ作りを通して「プログラミング思考」を学ぶ? パンケーキが選ばれた納得の理由 (1/3) 〈AERA〉|dot.ドット 朝日新聞出版

ほぉ・・・

パンケーキ作りを通して、プログラミング思考を学ぶ──。

そんなユニークなワークショップを社内で敢行した会社がある。東京・渋谷にあるウェブや空間のデザインを手がけるクリエイティブエージェンシー、ロフトワークだ。

ロフトワークでは、部署の垣根を越えた「班」活動が盛んだ。3~6カ月ごとに「ヨガ」「英会話」「ビジネス女子力向上」「論理的思考」などの体得に取り組んでいる。2013年に編成された班のひとつ、「プログラミング脳」班が、このワークショップを企画した。

●無意識に判断していた

発想の原点は、「プログラミングと料理には共通点がある」。プログラムは、順序に間違いがあったり抜けや漏れがあったりしては動かない。料理も同様に、工程が正しく明確に示されなければ、おいしく作ることができない。

ワークショップは、インタビュアーと回答者に分かれて、パンケーキ作りの工程をひと通り洗い出すことから始まった。

パンケーキが選ばれたのは、比較的作り方が簡単で、多くの人が作ったことがあり、工程を洗い出しやすいと思われたからだ。

一連の工程をアクティビティー図に書き起こしたら、実際にパンケーキを作る作業に入る。その時、アクティビティー図に書かれていないことは一切しないのがワークショップの原則。なぜなら、コンピューターはプログラムに書かれていることしかしないからだ。

全員でもう一度、アクティビティー図の工程に漏れがないかを確認。そのうえでパンケーキ作りを始めたのだが、

「卵の殻がボウルに入ってしまったときのための、『卵の殻を取り出す』という工程が書かれていない」

「混ぜるって、いったいいつまで混ぜるの?」

などと、指示が抜け落ちているところが次から次へと見えてくる。日頃、どれほど多くのことを無意識に、あるいは「あうんの呼吸」のようなもので判断していたのか、実感できた瞬間だった。

「火力の指示もあいまいで、パンケーキが焦げてしまった。手順の中に入るべき『分岐』がなかったことで、こんな結果を招いてしまった」

と、ある参加者は振り返る。

必要な情報を洗い出して可視化しよう。順序立てて論理的に説明しよう。頭ではわかっていても、実践することは難しい。自分たちで手を動かしてパンケーキを作る、という作業に落とし込んだことで、誰もが体感できたようだ。

●「もしも」が抜けていた

そもそも、エンジニアを抱えていないロフトワークに、「プログラミング脳」班が生まれたのはなぜなのか。

当時、会社が抱えていた課題のひとつが「業務の効率化」だった。業務の分担や引き継ぎがうまくいかず、一人で抱え込みすぎて、パフォーマンスが落ちているケースが多く見られたという。

班長としてワークショップの指導役を務めた、テクニカルディレクターの大森誠さん(35)は、元プログラマーだ。

「自分の業務が『見える化』できていない人が多かったのだと思います。そうした課題の解決策として、プログラミングの手法や論理的思考を学べばいいのではないか、と考えました」(大森さん)

この班に参加した吉澤瑠美さん(32)は、マーケティングを担当していた。

こう振り返る。

「クライアントとの打ち合わせも、グレーなまま終わることが多かったと思います。事前にアジェンダを作って臨んでも、その通りいかないことのほうが多い。ずるずると打ち合わせが続き、結局何が決まったかわからない状況でした」

「プログラミング脳」班は、3カ月かけてプログラミングのエッセンスを学んでいった。

業務に生かすことを念頭に置いて、大森さんが重視したことは二つ。「分解すること」と「時系列の概念」だ。

最初に取り組んだのは、自分の行動をフローチャートに落とし込む練習だ。

「ランチに行くフローチャートを書く」というお題を設定し、それぞれがどういう思考で行動しているか、分解して考え、時系列を整理した。できたフローチャートの一例が左の図だ。まず時計を見て時間を確認し、仕事が一区切りついたかどうかを考える。「ついているとき」「いないとき」で分岐も発生した。

その後は、複数フロアにまたがる社内の掃除の手順など、もう少し複雑なフローチャートも作っていった。

吉澤さんいわく、

「慣れるまでは、要素を漏れなく洗い出したつもりでも、抜けていることが多かった。この行動の前にこういう判断があるのでは、とみんなでチェックし合いました」

大森さんも言う。

「打ち合わせがうまくいっていなかったのは、『もしも』という仮定が抜けていたからだと思います。分岐がないアジェンダばかり作っていたから、クライアントに想定外のことを言われたときに対応できなかったのでは」

●プログラムは書かない

オブジェクトに分解する練習にもトライした。

「プログラミングでいうオブジェクト指向という考え方につながりますが、動詞と名詞に分けて考えるという方法があります。たとえば車なら、『走る』という機能や、『タイヤ』という部品がある」(大森さん)

動詞と名詞に分解していくと、それぞれのパーツが担っている機能がクリアに見えてくるという。

「プログラミング脳」班に参加するまでは、仕事で思わぬアクシデントが起きると「わー! どうしよう、大変!」となっていた、と吉澤さん。でも、

「要素分解ができていると、改善のアクションをどこで起こせばいいのかがわかる。これを改善するためには、ここに手を打てばいい、とあわてず冷静に考えられるようになりました」

フローチャートの書き方は「UML(統一モデリング言語)」という世界標準の仕様にならったが、プログラムを書けるようになることは目指さなかった。そう割り切って身近なテーマに落とし込んだことで、具体的な業務に生きる「プログラミング思考」が身についた。(編集部・高橋有紀)

※AERA 2016年10月31日号

パンケーキでねぇ・・・