SSブログ

継続的な学習という技芸の伝統 [プログラマー現役続行]

ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

ソフトウェア職人気質―人を育て、システム開発を成功へと導くための重要キーワード (Professional Computing Series)

  • 作者: ピート マクブリーン
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/03
  • メディア: 単行本

拙著『ソフトウェア開発の名著を読む【第2版】』を読み返して、次の部分が目に入りました。
経験豊富な優れた開発者を探し出す上での難点は、継続的な学習という技芸の伝統をすでに実践している人を探し出すという点にあります。これは、すでに優れた水準にあるものの、ソフトウェア開発の熟達度をさらに向上させようと絶えず努力している開発者を探すということなのです。
『ソフトウェア職人気質』
確かに、継続的な学習によって、自分自身のソフトウェア開発の熟達度の向上を行うと努力している開発者を探すのは容易でありません。それは、継続的学習を早い段階でやめてしまった中堅開発者が多いからかもしれません(「ソフトウェアエンジニアの成長カーブ(再掲載)」)。
※ 実際には、社会人になってからの年数が長いという意味だけでの「中堅」です。

私自身は、今は54歳です。現在は、小さな開発グループのリーダをしていますが、自分自身で設計・実装・デバッグまで行いたいという欲求を抑えながら、小さいとはいえ10名以上メンバーがいる開発グループによる開発のリーディングを行っています。

自分のグループを運営する上での問題点の1つは、『ソフトウェア職人気質』で述べられているような継続的学習を実践している中堅開発者が不在ということです。前職(FXIS)での育成してきた若手は、今は中堅開発者として活躍していますが、転職により私自身が一度リセットしてしまったため、再度育成し直しという状況です。

開発年数とソフトウェアエンジニアの実力

 コンピュータを取り巻く技術の進歩は大変速いため、大学で学んだこと、あるいは社会人になった当初の数年間に学んだことだけで、その後一生過ごせることはありません。
 たとえば、私が社会人になった1984年当時は、C言語の知識があれば十分でした。1993年にC++を使うようになったのですが、これで、C/C++の両方を使用できるようになり、しばらくは新しい言語は登場しないと思っていました。
 しかし、Javaが登場し、それまでのプログラミング言語の普及のスピードとは比較にならないほど短期間で広く普及し、そうこうしている間に、マイクロソフトがC#を登場させたわけです。
 こうなると、どこでも通用するプログラミング言語知識として、C/C++/Java/C#が求められる時代に突入したといえるでしょう。さらに、今日ではRubyが広く普及しています。
 ソフトウェア業界はこのような業界なので、本来は古くから関わっている人のほうが知識・経験が豊富となり、大学を出たばかりの新人よりは絶対に有利なはずなのです。
 実際、米国では、私と同じ年代やその上の年代でも、一流のソフトウェアエンジニアとしていまだに活躍している人が少なくありません。
 しかし、日本では、もともと転職をするという文化がなかったため、そのような人はかなり少ないのが現状ではないでしょうか。つまり、同じ会社に長期間在籍し続け、その分年をとったという理由で管理職となり、その結果現場の技術から離れてしまうことも多いと思います。

継続的な学習という技芸を修得していれば、本来なら、経験年数が長い人の方が圧倒的に有利な業界なのですが、現実にはそのような中堅開発者が圧倒的に少ないのが、日本の現状かもしれません。