最近思うのだが、私の部署は技術的なスキルについては外注で済ませるという方針があるのだろうか?
残念ながら私の会社では、社内より外注の人間の方がプログラミングの(あくまでプログラミングに限って)スキルが高い。
実は今担当しているシステムでは、技術的な検証をするのは外注の方が筆頭で動いている。そこから、各メンバーにトランスファーする形で動かすようだ。技術的な最前線部分に、内部の人間ではなく外部の人間を(しかも、外注削減の方針を掲げてるこのご時世に)充てるところに、プログラミング能力を軽視する考えが見え隠れしているように感じる。
その一方で、内部の人間のスキルが不足しているからという理由で、効率の悪い開発方式を選択せざるを得ない状況を嘆いている。そう思うのなら、内部の人間に新技術を押さえさせ、外部の人間には適当に教えてやらせる方が、内部の人間のスキルを向上させていく余地があるように思うのだがどうだろうか?
少なくとも、現在の私の所属グループでは、そのような状態になっている。
私の所属している部署では、スキルアップについての意識が(上の人間ではなくて下の人間が)いまいち希薄なのかもしれない。実践で試そうと思っても、新しいことを試しながら仕事を進められるだけの余裕がないように感じてしまうからだ。
しかしそれなら、実践で試せるだけの余裕のあるプロジェクトを、みなさんは体験したことがあるだろうか? 私は無い。ということは、無理してでも(プロジェクトの進捗が送れることになっても)新しいことを試していかないと、永遠に追いつく機会はないと言うことだ。
それができないのなら、下の人間は不満があっても会社を飛び出せるだけの能力がいつまでたっても付かない不自由さを、上の人間はいつまでも向上しないスキルに足を引っ張られて、どんどん同業他社から開発効率が引き離されて採算が悪化していくリスクを受け入れる必要があるように思うのだがどうだろうか?
私が働いている会社は、基本的にはSI企業である(と私は考えている)ため、プログラミングのスキルそのものについては、あまり重要視していないのかもしれない。
確かに全体としてみてみれば、社内のプログラマのスキルのあるなしは、それだけでは些細なことである。しかしこれはもう少し正確に言うなら、「そのスキルが必要になった場合に、外部なりなんなりからスキルを持つ要員を必要なだけ調達できる」という前提が成り立つ場合に限っての話である。この前提が成り立たない場合は、例えばそのスキルが調達できないことにより、設計変更をせざるを得なくなったとしたらどうだろうか? 例えばOSのあるいはツールの機能制限により、設計した挙動が実現できずに設計変更せざるを得なくなった場合はどうだろうか? 心当たりのある方もいらっしゃると思うが、これは私の部署でも実際に起こった事である。
原因はひとまず置いておくとして、設計変更が頻繁に発生することも、会社にとっては些細なことなのだろうか? 開発効率が悪いことによる採算の悪化は些細なことなのだろうか? 些細なことでないのなら、そして設計変更が頻繁に発生する原因、あるいは開発効率の悪化の原因がプログラマのスキル不足であるのなら、スキルのあるなしが、どうして些細なことと言えるのだろうか?