時代を超えるエンジニアリングスキル
ソフトウェアエンジニアリングについて長く見ていますと、万能な方法論がないということは身に沁みて分かっています。オブジェクト指向、アスペクト指向、RUP, RAD, モデルベースなどなど、枚挙に暇がありません。
そうして分かったことは、あるときに万能に見えたとしても、それは時代が創り出す幻でしかないということです。
最新の例だとアジャイルがそのように感じています。
アジャイルの方法論に特段異論はありませんが、アジャイルを用いて素晴らしいパフォーマンスを出すには、前提として従来のプロセスの経験があるエンジニアが必要です。
つまり、従来の手法の利点・欠点を理解しているエンジニアが欠点を改善するようにアジャイルを活用すると真の効果を引き出せるのであって、アジャイルしか知らない人が小規模プロジェクトでアジャイルを使ったところで、特段優れた成果には結びつかないないように思います。(プロジェクトの成功がアジャイルによるものなのか判別できないし。)
いまはまさに「従来手法を知っているエンジニアがアジャイルに移行している」時代です。
このような時代であるからこそ、アジャイルを導入することで成果が上がる状況が多いだろうと。もちろん導入の難しさもそれはそれで大変なことですが、導入されて回りはじめれば、ある種の「pi型タレント」の人材が揃っていることになるわけです。
そうして、やがてやってくるのはアジャイルの経験しかないエンジニアばかりになる時代でしょう。
そうなればアジャイルの弱点が顕在化し、いま「旧時代」扱いされつつある方法論(の多少改善版)をうまく実践できるエンジニアが重宝されるようになるのではないでしょうか。
アジャイルを例にしましたが、俯瞰すると、ソフトウェアエンジニアとして熟達することとは、相反する能力を身につけることだと感じることがあります。俊敏かつ慎重、不確実であり計画的、タイムボックスを意識した長期的視野、など。
これらの能力をひとりの人間が身につけることは人間生物として結構無理があるので、それを乗り越えて身につけた技術者はレアリティが高くなり、どの時代でも通用するように考えています。
Discussion