【プログラマーに必要な“先を見る力”とは】〜予見力こそが真のプロを支える〜
- yuji fukami
- 5月21日
- 読了時間: 5分
※本記事は、OpenAIの言語モデル(ChatGPT)を活用して草案を作成し、最終的な編集・調整は筆者本人が行っています。

■はじめに:プロとして生きるということ
私は個人事業主として、主にExcel VBAを専門に、システムの要件定義から開発、納品、さらにはアフターサポートまでを一貫して行っています。お客様は業種も立場もさまざま。ですが、共通して言えるのは「完成して終わりのシステムはほとんどない」ということです。納品後に「やっぱりここも対応してほしい」「運用してみたらこういうパターンもあることに気づいた」といった要望が必ず出てきます。
そうした中で、プログラマーにとって不可欠な力が「先を見る力=先見力」です。この記事では、この“先を見る力”とは何か、なぜ重要なのか、そしてどうやって身につけていくのかについてお話しします。
■“先を見る力”とは?
先を見る力とは、単に将来の出来事を占う能力ではありません。
「この設計でどんなエラーが起こりそうか?」
「ユーザーがこちらの想定外の操作をする可能性は?」
「将来的にどんな機能追加や変更がありうるか?」
こうした現実的な“予見”をしておくことが、開発現場ではとても重要になります。
■私が初心者だった頃に感じた限界
私が駆け出しだった頃、お客様から追加要望がどんどん来るたびに、心の中でこう思っていました。
「私は予言者じゃないぞ…!」
もちろんその時は、仕様どおり作ったのに、後出しのように新しい要件が出てくることに苦しんでいました。でも今では、それが当たり前だと分かります。むしろそうなることを“先に想定しておける”ことがプロである証だと感じるようになりました。
■先見力は“経験”で鍛えられる
この力は、決して最初から誰もが持っているものではありません。さまざまなお客様とやり取りをし、複数の機能を実装し、失敗と修正を繰り返す中で、自然と培われていきます。
エラー処理はどのパターンを考慮するべきか?
データの入力ミスはどこで起こる可能性があるか?
今後増える可能性が高い機能はどこか?
経験を積めば積むほど、こうした「予測→備える」という流れが自然にできるようになります。
■先を見据えた“柔軟な設計”ができるようになる
予見力が身につくと、コードにもその考え方が現れてきます。
変更に強い構造にする
冗長性を持たせ、不要な制限をしない
エラーハンドリングを幅広く丁寧に設計する
あらかじめ機能追加を想定したインターフェースにする
▼ 具体的な事例:Excel VBAの開発での工夫
例えば、Excelで入力先のセルが将来的に変わる可能性がある場合、Range("A2")のようにアドレスで直接指定してしまうと、変更のたびにコード全体を修正しなければなりません。しかし、あらかじめセルに名前定義をしておき、Range("入力先")のように記述しておけば、定義の変更だけで対応でき、保守性が格段に上がります。
また、テーブルに新しい列を追加する・列の順番を変更したいというケースも非常に多く発生します。その場合、列名をハードコードするのではなく、列名の列挙型(Enum)を使ったり、名前定義を用いたりすることで、追加や順番の変更に強い設計にしておくことが可能です。
こうした工夫によって、ユーザーからの想定外の要望や将来的な仕様変更にも柔軟に対応できるようになり、それがまさに“先を見る力”の技術的な実践例だといえます。
■ウォーターフォール vs アジャイルという反論について
読者の中には「そもそもウォーターフォール型の開発なら最初にしっかり仕様を固めてから作るべきでは?」という意見を持つ方もいるかもしれません。確かに理論上は、ウォーターフォール開発では要件を事前にすべて決め、その通りに実装して納品するというスタイルをとります。
しかし、現実の開発現場ではその通りにいかないことが多いのです。実際には「使ってみて初めてわかる」「現場で運用してみたら別の課題が見つかった」ということが頻繁に発生します。特に業務システムにおいては、現場のスタッフがシステムに触れてから初めて「こうしてほしい」「これでは使いにくい」といった声が上がるのが一般的です。
アジャイル開発はその考えを前提としています。一旦納品してから改善を重ねる手法です。ウォーターフォール開発を採用する場合でも、こうした実態を理解したうえで、ある程度の柔軟性や拡張性をあらかじめ見込んだ設計が必要です。
すべてを最初から“予言”することはできません。ですが、「何が起こるか分からない」ことを前提にコードや構成を設計しておくこと、これこそがプロとしての先見力であり、長く通用するプログラマーとしての資質だと私は考えています。
■まとめ:初心者が目指すべき“Pro”の視点
初心者のうちは「言われた通りに作る」だけでも大変だと思います。でも、ぜひ以下のような“プロとしての視点”を目標にしてみてください。
この機能は将来どう使われるか?
どんなトラブルが起きそうか?
お客様が「今は言ってないけど」将来求めそうな機能は?
そうした想像力を持ちながら開発できるようになった時、あなたはすでに“Pro”の一歩先を歩いていると思います。
■筆者について
Excel VBAを専門とした業務システムの開発を多数経験。業務の効率化、自動化ツールの開発など、要件定義から納品・運用支援までを一貫して行う個人事業主。これまで600件以上の開発案件を手がけ、リピート率の高さが信頼の証です。



コメント