プログラミングで問題解決するためにとるべき3つの手順
優れたプログラミングコードを書くエンジニアが優秀であることは間違いありませんが、ソフトウェア開発の現場においてコードを書くスキルは必要ではあるもののそれだけでは不十分です。プログラミングで問題解決を目指す際に、コードを書いてシステムを構築するほかに必要となるプロセスについて、「世界をプログラム可能にする」という理念を掲げるソフトウェアプラットフォームLoBのエンジニアが解説しています。
Understand, Design, Build: A Framework for Problem-Solving - Lob Blog
https://lob.com/blog/understand-design-build-a-framework-for-problem-solving
LoBのエンジニアであるラファエル・リー氏は、LoBが導入している「優れた形の問題解決ができるようになる3つのステップ」を紹介しています。この枠組みに従うことで、プロジェクトは後戻りや中断が少なく、また労力や運用の負担も少なくなるため、成功する可能性が高くなるとのこと。
リー氏は第1のステップを「理解する」ことだと述べ、ビジネスの成果として望むものは何か、今その結果を妨げているものは何か、ということを十分に理解することの重要性を説いています。事前の理解が十全に行われていないと、情報確認のために作業に割り込んで中断させてしまうことが頻繁に行われるほか、いざ完成させてみたものが問題を解決するものではないという結果に終わるおそれもあります。
第2のステップは「設計する」こと。実際にプログラミングを始める前に、どのようなアプローチが可能で、それぞれの手段の利点、リスクおよびその軽減策は何か、という完成までの青写真を描くことが、プログラミング技術を純粋な実装から充実したクリエイティブな仕事へ変化させるカギだとリー氏は述べています。通常、解決のためにとる手段はいくつか考えられ、最初に思いつくものが最善であるとは限りません。そのため、あらかじめ設計図をデザインして手段を検討することが重要だそうです。
抱えている問題を理解し、どのような手段をとるべきか設計できたら、実際に「構築する」段階に入ります。このステップが最も労力を要すると考えがちですが、リー氏は「すでに難しい設計上の決定を下していれば、コードを書くことは最も簡単な部分となります。またそれはスピーディーであり教育的であり、また楽しいものでもあります」と述べています。
この3ステップの枠組みは、入門レベルのエンジニアを指導するときや解決法が分からない問題に取り組むとき、またプロジェクトがうまくいかない理由を検討するときに有用であるそうです。一見すると特別なことは言っていないプロセスですが、しっかりと枠組みを意識してそれをチーム全体で共有させることで、共通の理解や意志決定などをスムーズに行うことが可能にできるということが強調されています。
・関連記事
過去の歴史からわかる「技術者の仕事がAIに奪われることがない」理由とは? - GIGAZINE
スタートアップに「参加すべき理由」と「参加するべきでない理由」をTwitch創業者が語る - GIGAZINE
成功者からアドバイスをもらいやすくなる3つの方法 - GIGAZINE
プログラマーが知っておくべき「PC内部の通信速度」 - GIGAZINE
ビル・ゲイツが「シリコンバレーを理解したいのならドラマ『シリコンバレー』を見るべき」と熱く語る理由 - GIGAZINE
・関連コンテンツ