ソフト開発分野で求められるスキルは変わってきている?
この数年で、ソフト開発関連の業界はかなり変化しました。きっかけは仕事量の減少でしょう。減った原因は、
・不景気で開発仕事が立ち上がらない
・オフショア開発
・クラウド
・金融系の統合が大体落ち着いた?
・事業仕分け
など、さまざまな要因はあると思いますが、仕事量が減ることで、
・エンジニアが余る
・仕事がないよりましと、安くても引き受けるところが多くなり、低価格化
・オフショアと価格競争
・元請けが下請けに出さない
という状況になり、さらに、
・短納期・低コスト
の要求が非常に強くなり、トータルとして、
「大変な割に儲からない」
という状態になっていると思います。
一方、ユーザからの要求はシビアになる一方で、性能・仕様・規模など、いずれも高い要求の仕事が増えています。
このような背景で、エンジニアに必要とされるスキルもだいぶ変わってきているのではないかと感じています。以前は、それなりに言語や開発環境を使いこなせれば仕事はあったのですが、今は誰でもできるような開発仕事は、低コストなオフショア、あるいは、作らなくてもクラウドなどで既存のものを連携させれば実現できたりすることも増えてきました。一方で、ユーザからの要求がシビアになっていることから、どう実現すべきかを考え、提案し、実現できるようなスキルはますます非常に重要になって来ていると感じています。
以前は、「こんな開発仕事があるから頼みたい」と、ある程度構成や仕様がまとまってから相談を受けることが多かったのですが、最近は、「こんなことを実現したいのだけど、どうすれば実現できるのか相談にのって欲しい」という感じの相談が増えました。一般的なものはわざわざ個別に開発しなくても、サービスやオープンソースなどを組み合わせて、自分たちでも実現できるものが増え、より難しいものをプロに相談したい、ということなのだと思います。
今日も2件、打ち合わせをしてきましたが、いずれも、「ネットワークシステム・プログラムなら任せて」と思っている私や当社メンバーでも、頭を抱えてしまうほどの難問です。どれだけお金を出しても、既存製品の組み合わせでは実現困難で、それでも実現したいという相談なのです。お客さん側からの参加メンバーもネットワークのプロの方々が参加しますし、非常にハイレベルな議論になります。それぞれのプロが集まって1時間以上頭を使ってもベストと思われる解は見つからず、それぞれ課題を持ち帰ってまた相談しましょう、となることも多いのです。さらに、当然ながら、そのような議論をしている間はほとんどの場合、お金にはなりません。実現可能な提案をして、それが承認されてようやく仕事になるのです。
もちろん、仕事になった場合には、ノウハウの提供も含んだ見積になりますし、他ではできないかもしれないことをなんとかしよう、という仕事になるので、金額的には一般的な請負仕事よりはるかに高くなることがほとんどです。一言で言えば「付加価値の高い仕事」なのです。「ハイリスク・ハイリターン」とも言えます。こういう相談が増えてきたと感じています。
相談を受ける側としては、実は「ハイリターン」もうれしいのですが、それよりも、「難問を解決する楽しさ」がモチベーションになっている気もします。私自身、ネットワークプログラミングに傾倒していったのは、「こんなことできない?」「他に相談したら無理といわれたのだけど」「他だと高すぎる」などの難問を「それなら私が解決しよう!」という「ドキドキ・ワクワクする気持ち」が好きだったからだと思います。難しい課題が現れるほど燃えてくるものです。それがノウハウとして自分に蓄積されていきます。難しくて苦しい仕事は、実は結構楽しいのです。一方、誰でもできるような仕事をやっていると、安くて監視されて手も抜けず、ノウハウもたまらないので、いつまでたっても指示通りにしかできないジレンマに陥ります。
ということで、ソフト開発自体が特殊だった時代から、一般化した今、求められるスキルは、「一流のプロとしてのノウハウ提供と実現力」ではないかと感じています。
2007年に「プログラミングでメシを食えるか!?」を出版した際には、あっという間にAmazon書評などで批判されました。得意分野にこだわるなんて駄目だ、という感じでした。ところが、この本はいまだにコンスタントに売れていて、内容に関する批判はほとんど出てこなくなりました。これもある意味、受け身の仕事から提案型の仕事でなければ食えなくなりつつある、ということなのではないかと感じています。
今日の打ち合わせの内容も、公開はできませんが、とてつもないプランを、どう実現するか、というもので、メンバー共々ワクワクしながら頭を悩ませているところです!
ちなみに、もう一つ重要になってきているスキルが、「短納期の高密度な仕事を、炎上させずに進めるスキル」だと思ってまして、これはまた今度書いてみます。