SSブログ

Don't Listen to Your Parents [転職]

The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)

The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)

  • 作者: Chad Fowler
  • 出版社/メーカー: Pragmatic Bookshelf
  • 発売日: 2009/07
  • メディア: ペーパーバック

項目6「Don't Listen to Your Parents」では、1つの会社で働き続けることに対するリスクが述べられています。
Staying in a single company, working your way up the ranks, is a limiting environment in which to grow as a developer. Gone are the days of the "lifer" who would join a big company and settle in for a full career. This sort of behavior used to be a sign of dedication. Now it's a liability. If you've worked in only one palce and seen one set of systems, many (smart) managers would see that as a strike against you when making a hiring decision. I'd personally rather hire someone who has seen a variety of successes and failures in different environments than someone who has known only one way of doing tings.

一社だけで働き続けて、昇格していくということは、開発者として成長するには限定された環境です。大企業に入社して、全キャリアをそこで過ごすというのが当たり前という時代は過去のことです。そうすることは、かつては、献身とみなされていました。今日では、それは負債です。一箇所でしか働いてこなく、1つのシステムしか見てこなければ、多くの(優秀な)マネジャは、採用決定の際に、あなたの怠慢だとみなすことでしょう。一つのやり方しか知らない人よりは、様々な環境で色々な成功や失敗を見てきた人を、私なら採用します。
さらに、友人との会話として、次のことが述べられています。
I remember talking to a friend about potentially moving out of this company, and he said, "Is it your destiny to work at $big_company for the rest of life?" Hell no it wasn't! So, I quickly found another job and left.

今の会社を離れる可能性について友人と話をしたことを覚えています。彼は、「人生の残りをその大企業で働くことが、君の運命なのか?」と言ったのです。全くそんなことはありません。それで、すぐに仕事を見つけて、転職しました。
この項目は、日本と米国の雇用形態の違いも考慮すると、そのまま当てはまらないかとは思います。しかし、私自身は、すでに3回転職しています。そして、今働いている会社は、8月末で退職し4回目の転職をします。

今回の転職では、年収が2割以上の減収になります。しかし、ソフトウェアエンジニアとしてソフトウェア開発に集中できる環境であり、新たな人々と一緒にソフトウェア開発を行い、様々なことを学ぶことができると期待しています。

今の会社は11年以上勤めましたが、残念ながら、私自身がソフトウェア開発に直接関与したり、若手を育成してソフトウェア開発を行ったりすることが評価されない組織となってしまい、私自身のモチベーションを維持するのが困難となってしまいました。(「ソフトウェアエンジニア」「開発チーム(組織)の成長」「ウィークエンド・プログラマー」「Be the Worst」「40代最後の年」「若手の育成」「自己啓発が組織を導く」

開発チーム(組織)の成長 [転職]

「ソフトウェアエンジニアの心得」と題する教育や講演の最初にRichard Gabrielの言葉を紹介しています。
Writing software is an art, and it takes about ten years to really get good at it.
ソフトウェアを書くことは芸術であり、本当にうまくなるには10年を要する。

Richard Gabriel, 「The Poetry of Programming」
ソフトウェアエンジニア一人一人が一人前になるには10年を要するということですが、単にソフトウェア開発を10年間行っていれば一人前になるという意味ではありません。ソフトウェアエンジニアとして常に学習を続けて、学習したことを実践して修得し、技量を向上し続けても10年は要するということです。

先日書いた「Be the Worst」「ソフトウェアエンジニアの成長カーブ」とも関連しますが、人は環境に流され易いため、自分の回りが成長しない開発チームの中にいると、自分自身も成長しなくなってしまいます。その結果として、開発チームそのものが成長しなくなってしまうのです。開発チームが成長しないということは、そのチームはソフトウェアの品質を向上させるための継続的な改善を行わないで、今までの開発プロセスに全く疑問を持たなかったりする訳です。

成長しないということは、ひょっとしたらそのチームだけでなく、そのチームが属しているより大きな組織も同じ状態になっている可能性があります。そのため、ソフトウェア開発組織のトップというのは、ビジネス(利益)の追求もさることながら、高品質なソフトウェア開発を行うために、自分の組織は成長しているのかということを常に見ている必要があると思います。

残業して頑張っているからというだけで、個々のエンジニアや開発チームを評価していけません。本当に優秀な人や優秀なチームが開発のピーク時に一ヶ月とか短期に高残業せざるを得ない場合はあるかと思います。一方で、非効率な開発をしているとか、品質の悪いソフトウェアを大量生産しているとか、あるいは、本人の能力が低くて高残業になっている場合もあります。

後者の場合は、すべて本人任せかチーム任せになっているため、「問題を作り出して、それを解決するための高残業」ということもあるわけです。そして、本人も開発組織のトップも「頑張って問題を解決した(してくれた)」と高く評価することになります。外部から見れば、「自ら問題を作りだしやすい開発手法(やプロセス)を用いていて、自ら問題を作り出している」と分かることでも、当事者はそのやり方が正しいと思っている訳です。

たとえば、初心者あるいは能力の低いエンジニアに、小さいながらもモジュールの開発をさせて、その人のコードを全くレビューしなかったとします。コードレビューの重要性や意義を全く認識していないチームでは、レビューしないことは起きます。そして、最初から品質が悪かったり、本来ならすぐに見つけるられるべきバグの原因が本人には全く分からなかったりして、一日もあれば開発が終わるようなモジュールでさえも、一週間や二週間とか要してしまう場合もあるわけです。

そして、何とか上手く動作するようになったら、高残業をして頑張ったねと評価されたりするのです。

したがって、個々のソフトウェアエンジニアが成長し、その集合体として成長を続ける開発チームや組織を作り出すことは、意志を持って根気良く続ける必要があることだと私は思っています。40代の10年間は、今から振り返ってみると、そのような活動を私自身が続けてきた10年間だったと思います。

今年9月からは、転職して、私の人生で5社目となる会社で働き始めます。50代の10年間で良い開発チーム(組織)をリーディングして私自身の技量も向上できたらと思っています。

部下に伝えることの大変さ [転職]

1984年4月に就職してから現在までに、3回転職しています。会社の上司に対して退職の意志を伝えて、退職が決まれば、部下に伝えます。上司に伝えるのは簡単なのですが、問題は部下に伝えることです。1回目の転職では、部下はいなかったので良かったのですが、2回目と3回目は部下がいました。

2回目の時は部下を集めて、退職する旨を伝えたのですが、非常にショックだという感情が表情から読み取れる人がいました。この時の経験から、退職することを上司に伝えるよりも、部下に伝えることの方が大変だと思ったのです。3回目の時は、部下4人に退職の旨を伝えた時のことは、実はあまり覚えていません。

若い人の場合、退職することを伝える部下を持っていることは少ないでしょう。それでも、OTJトレーナーとして一人の後輩の面倒を見ているかもしれません。以前、部下の一人が退職することになった時、彼女が面倒を見ている新人に対しては、自分で退職することを伝えてくださいとお願いしたことがあります。意地悪でそうしたのではなく、今回だけでなく将来も転職するかもしれない彼女に、部下に伝えることの大変さを経験してもらいたかったのです。

私自身は、自分が転職してきた側なので、幸か不幸か上司が転職したという経験はありません。良い上司であればあるほど、上司が転職することで受けるショックは大きいと思います。しかし、そのショックを受けないように退職の意志を伝えるのは不可能だと思います。