東京大学教養学部特任助教 吉田塁さん(29)/よしだ・るい/東京大学大学院博士課程修了。今の専門はアクティブラーニング。著書に『スーパープログラマーに学ぶ最強シンプル思考術』(ディスカヴァー・トゥエンティワン)(撮影/編集部・高橋有紀)
東京大学教養学部特任助教 吉田塁さん(29)/よしだ・るい/東京大学大学院博士課程修了。今の専門はアクティブラーニング。著書に『スーパープログラマーに学ぶ最強シンプル思考術』(ディスカヴァー・トゥエンティワン)(撮影/編集部・高橋有紀)

 これからを生き抜くために必須の能力。それが「プログラミング思考」。論理的思考、問題解決能力などと言い換えてもいい。カリスマプログラマーは、「仕事や日常生活にも役立つ」と言うけど本当? 東京大学教養学部特任助教の吉田塁さんに、具体的に質問してみました。

【Q】会議の時間ばかり長くなって、仕事になりません
【A】「モデルベース思考」で抽象化してください

 プログラムを設計するときの考え方を応用した思考術として「モデルベース思考」があります。モデルベース思考の基本は、物事の関係性を整理して、四角と線で表すこと。つまり「無駄を省いて物事をシンプルに考える」ことです。

 会議の時間が長くて困っているのなら、まずは「よい会議」のモデルを作ってみましょう。

 会議には、「目的」「議題」「議論」「重要度」「参加者」そして「かかる時間」などの要素があります。

 要素を洗い出したら、それぞれの関係性を明らかにしていきます。例えば「議題」と「参加者」は互いに対応している必要があります。その議論に必要のない人が参加していたら、それは無駄です。議題の「重要度」と議論に「かけるべき時間」も、本来は比例しているべきです。些末な議題に長々と時間をかけるべきではありませんよね。

 このように、要素を洗い出し、要素間の関係性を考えて、理想の形をモデル化します。これに現実を照らし合わせていけば、どこに不具合が起きているかがわかります。

 私が大学や企業でワークショップを行っているこの「モデルベース思考」という思考術は、プログラムの設計言語である「UML(統一モデリング言語)」をもとに開発されました。

●重要なのは「設計」

 建築家が家を建てるときにも、いきなりは着工しません。設計図を描きますよね。同じようにプログラムにも「設計」と、実際の建設工事に当たる「実装」があります。

 不具合があったときも、設計図があれば部品を取り出して改善できます。また、設計が十分でないと、実装の段階でつぎはぎの修正をすることになり、より多くの労力と時間がかかってしまいます。そのため、どういうふうに作るかをしっかり考えておいて、それをベースに作るほうがいい。結果的に、そのほうが速いんです。

次のページ