SSブログ

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

「ソフトウェアエンジニアの心得」と題する教育や講演の最初に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年間で良い開発チーム(組織)をリーディングして私自身の技量も向上できたらと思っています。
nice!(0)  コメント(2)  トラックバック(1) 

nice! 0

コメント 2

ck

ご無沙汰しております。
3年前まで一緒に仕事をさせていただいていたものです。
その節はお世話になりました。
こちらからちゃんと退職のご挨拶をすることもせず、大変失礼いたしました。

転職されるのですね。
僭越ながら、これからの益々のご活躍を祈念しております。
by ck (2009-07-16 23:55) 

Yoshiki

ckさん、

お元気ですか?

もう、3年になるのですね。
by Yoshiki (2009-07-17 06:24) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 1