目指せ、守備範囲の広い開発者

ソフトウェア開発の現場に関わっていて惜しいと感じるのは、開発者自身が自分の守備範囲を自ら決めてしまい、そこからなかなか脱却出来ないことだ。例えば、こんな類の発言を聞いたことがある。

  • 開発は組み込みが対象なので、クラウドサーバを触った経験は有りません。
  • ○×処理の専門なので、マルチスレッド処理を作ったことは有りません。
  • Windowsの開発しかやったことがないので、iPhoneのアプリは作れません。

組織の中でソフトウェア開発を行っているとどうしても自分の担当領域が出てくるし、ある程度の専門性を持たないと開発者として生き残っていけないのは確かだけど、だからと言って自分の関心をその中に限定させてしまうのは残念だと思う。自分の持っている知識を他のソフトウェア分野に生かせないか、逆に他の分野の技術を自分の領域へ持ち込めないか等と考え始めると、必然的に隣の分野が気になるものではないかと思う。

今の時代、便利なもので組み込みの機材や開発環境は極めて安価、又は無料で入手出来るし、Web系の開発など無料で開発出来ることが当たり前だ。少しばかりの好奇心と手間暇をかければ、ごく簡単な"Hello World"アプリケーションを作ることは難しくないはずだ。もちろん、それで本格的にビジネスを行おうとすると難易度はかなり高くなってしまうものの、日曜プログラマが行う程度の作業で「どのような開発が必要なのか」「どのような形で開発を進めるのか」と言った基本的な知識は充分に得られるはずだし、その分野の「開発の雰囲気」といったものを実感することが出来る。

そんな基本知識を幅広く持ち合わせていると、ソフトウェア開発では役立つことが少なくない。自分が全く触ったことのない開発環境については、その話題の議論に加わっていくことが出来ないし、どのようなものか想像出来ないようでは開発工数の見積もりどころか、その選択肢がソリューションとして妥当なのか否か判断を下すことが出来ない。でも、簡単なものでよいから少しでも知識を持っていると、話がスムーズに進み、見通し良く議論出来ることが多い。開発分野だけではなく、開発プロセスプログラミング言語、検証技法など幅広い知識を持ち合わせておいて損することは無いと思っている。



関連