新人PGとの書簡 案件の検討

私の担当の新人PG、T君(二年生)がソフトウエア製品を開発しているお客様のリブ管(開発しているソフトウエアのコードの管理部門)にご採用いただきました。

T君本人は最初、リブ管と聞いて乗り気ではありませんでした。自分自身のキャリアパスとして、もっとJavaプログラミングが経験できる職場を希望していたからです。

T君は30歳、別の業界からこの業界に入ってきた、遅れてきた新人です。そのため、はやく一人前になりたいという気持ちが人一倍あります。私はだからこそ、彼が望むような大規模系業務システム開発の現場ではなく、一見地味なこの現場を勧めました。

私も以前そのお客様にお世話になった事があり、どういった環境かを知っていた事があります。それよりもまずT君にこの案件を勧めた一番大きな理由は、一般の業務システム開発の現場で技術者が技術を身につけられないのではないか?という疑問があるからです。

大規模系業務システム開発現場の問題

技術者のキャリアパスにはいくつも経路があると思いますが、以下二つを考えてみます。

  1. PG – SE – SL – サブリーダー – プロジェクトマネージャ
  2. PG – SE – アーキテクト – 技術コンサルタント
1番目の経路で到達するプロジェクトマネージャは、予算の管理まで管理する場合はエンドユーザ会社のプロパーか、自社が元請けの場合が多いでしょう。弊社の場合、関連会社で消費者向けサービスを展開しており、おかげさまで業績も伸びております。今後より多くの技術者が必要ですが、新人のT君にはまだ狭き門、まず外で力を付けてくる必要があります。
ですので、お客様の仕事に貢献するには、技術コンサルタントを目指して技術を習得していくほうが将来様々な役に立つと考えます。もちろんその仮定でリーダーくらいは何度か経験しておく必要もあります。PG/SEやリーダーといったポストが若い人のみ求められたり、オフショアに振られたりする中、仮に二者択一しかないとすると、やはりシステム全体を設計できるアーキテクトを目指すほうが確実です。

それに対して、PGが通常参画する一般的な業務システム開発の現場では何を習得できるでしょうか?

よく「○○にはもっとJavaのコーディング経験を積ませたい」などと配置を依頼される事があります。しかしウエブシステムはアーキテクチャが決まっており、PGの仕事は大雑把に言うといくらかのフレームワークの作法を覚え、業務ロジックの部分を埋めるだけです。そのフレームワークのコンセプトや、システムを支える技術を知る必要はありません。そもそもフレームワークを導入、あるいは開発してきた目的が、誰にでもPGができるようにするためだからです。そして業務ロジックは一般的に四則演算と1方向のみの同期処理の連続である簡単なものでしかありません。仕事の大変さは、ドキュメントを含めた量の問題にすぎない事が多いと思います。

少し乱暴ですが、詳細設計から単体テストまで、一回こなせばそのエッセンスを習得するには充分でしょう。Javaコードをたくさん書くよりも、そのアーキテクチャがなぜ選ばれて、どう動いているのか、そのフレームワークのコードを調べる事が大事であり、より深いコンピューティングの世界に繋がっていきます。Strutsをカスタマイズする、といった仕事があれば最適です。

また、一度はオブジェクト指向をできる限りまともに勉強することが大事ですし、知るべき事は他にたくさんあります。Java EEの環境はどんな構成、機能が用意されているのか、Java VMはどんな仕様なのか具体的に知っていく事が、技術や設計というものを知る事だと思います。

Javaの稼働系とともに、OSの勉強も必要です。JavaというプロセスはOSの中でどういった位置づけなのか、WindowsとSolarisではそれがどう違うのかと、どんどん根本的な技術に遡って調べて欲しいのです。

そしてその興味はDBやアプリケーションサーバはどういった構成を持つのか、仮想化技術はどういった機能があるのか、というふうに横に拡がってもいきます。そしてPHP、Ruby、Javascript(Ajax)といった言語やそこで使われるフレームワーク、プロジェクト管理手法を学んだり、今度はiOS、 アンドロイド向けアプリを経験すべきです。

また、異なるベクトルもあります。SaaS、IaaS、Paas上でのシステム構築ですが、これも基本となるアーキテクチャに触れておく必要があります。Linuxや仮想化プラットフォームです。

つまり、技術を習得したいならば、ソフトウエアインフラに興味をもち、拡げていって勉強すべきだと思うのです。

ところが、そう言った本来技術者が知るべき事は業務システム開発で求められないので、最近のPG/SEの多くはそこに関心を持ちません。一般の業務システム開発ではPGやSEには重要な技術は隠されており、知らなくても良い事となっています。全体の効率を求めるためにPGには単純な仕事を大量にこなす役割を求められているのです。 それでよいのでしょうか?なんだか使い捨ての奴隷のようです。

今回のリブ管の現場では、まずWindows OSを深く知る機会がたくさんあります。そして、それは他のOSや基盤技術に興味を持ち、理解することへのハードルを下げる事になるでしょう。また高負荷が続く職場でもないので、自分で学習する時間も取れます。

そう判断し、この案件を勧めました。そして彼をメールでサポートして行く事にしました。

このシリーズでは、新人T君への日々のサポート内容をご紹介していきたいと思います。

Posted in

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">