Hatena::ブログ(Diary)

達人プログラマーを目指して このページをアンテナに追加 RSSフィード Twitter

2011-10-18

転職して感じたウォーターフォール文化とアジャイル文化の違いについて

今月から新しい会社に転職して、あっという間に半月が過ぎてしまいました。いろいろな会社の規則や、開発環境、フレームワーク、仕事の進め方など、とにかくたくさんのことを短期間で詰め込む必要があり、もともと想定していたことではありますが自分としてはかなりたいへんでした。

やはり、自分としては、外資系の会社で英語でのコミュニケーションが必要となるということが、最も気がかりなことでした。実際、初日の歓迎ランチはいきなり名前もわからない多くの外国人に囲まれる状況でしたし、電話会議を使って中国やアメリカのチームと一緒に行う日々の進捗ミーティングも英語で行われています。自分としては、特に、リスニングが苦手ということもあり、いまだに完全に会話についていくのが困難なところはありますが、同僚やマネージャーもみんなすごく親切に教えてくれるので安心しました。私は新しい環境に慣れるのに結構時間がかかる方なので、まだまだ完全に新しい職場の文化に適応するというところまではいかないのですが、徐々に仕事のやり方を覚えて、チームの一員として頼られる存在となれるよう努力していきたいですね。

ということで、実はまだ新しい会社の文化を完全に理解したという段階ではないのですが、それでも以前私が働いていたSI業界の文化とアジャイルな考え方が尊重されるグローバル企業とでは、やはり大きな違いがあるなということは、実際にはっきりと感じられますね。

まず、第一に大きく違うと思ったのは、会社の売上や利益に直接つながる、ビジネスの中心に近いところに開発チームが置かれていて、当然プログラマーはプロダクトオーナーなどビジネス担当の人と密接にやり取りをしながら開発を進めるというところがありますね。ビジネス担当の人とプログラマーが同じ部屋で作業をするということはもちろん、たとえば「この項目を外すとプログラムはすごくシンプルになるし、顧客にとっても画面がすっきりしてメリットがあると思いますが。」といったような提案をプログラマーからすると、あっさり認められて翌月のリリースに変更を反映するといったことが日常に行われています。少しでも使いやすいシステムの開発に貢献することで、売上に貢献するのだというモチベーションも湧きます。ウォーターフォールが中心のSI業界のやり方だと、項目の追加はまだしも削除などと言うことを提案しても、稟議書などを上げて何階層にもわたった承認が必要で、何週間、何か月も待つといったことは普通だと思います。そのような状況があるので、PGの側でもよいアイデアがあっても、わざわざ提案しようという気にはならないし、逆に、仕様書に書かれていることのみを実装して、余程の問題がない限りそれ以上のことはやらないという傾向が強くなってしまうところがあると思います。

それから、チームのサイズが小さくて、業務担当の人とプログラマーが直接会話できる距離にあるため、作成する文書は非常に少ないというところがあります。これはもちろんチームによると思いますが、開発後に説明のためWikiに情報を書くということはあっても実装前にWordやExcelの文書を作成するということはめったにないですし、作業時間の大半はEmacsVimEclipseといったツールを立ち上げてのコーディング単体テストの作業が中心となります。以前は自分自身がコードを書くといった作業にあてられる時間は、全体のプロジェクトの中ではせいぜい10%程度でしたので、そこは大きな違いだと感じています。逆に言うと、自分の英語力のなさから、口頭で英語で説明を受けても理解しにくいというところがあり、時としてきちんと書かれた仕様書が恋しくなる時もあるわけですが、そこは文化の違いですね。

さらに、B2Cでどんどん新しい機能をリリースしていくという環境では、システム全体を何年もかけて作り直すという機会はほとんどありません。むしろ、細かい機能改善やバグフィックスを行うというプレッシャーが常にあり、その中で空き時間を見つけてリファクタリングを繰り返すという方向になります。そういう意味では、SIerのように新システムの開発をゼロから行うという機会はめったにありません。だから、常に最新の言語やフレームワークでなくては嫌な人には向いていないかもしれません。一方、SIerの場合は自分のシステムを維持管理するという機会は少ないのですから、むしろ、最新の最良の開発手法を取り込めばすごく面白い仕事ができるのに、実際には古いフレームワークを使い続けているケースが多いというのは残念なことですね。

なお、気にしていた自分の年齢ですが、やはり、グローバルな会社では35歳定年などということは全くないですね。今の会社の場合は全くの新卒というよりも、ある程度経験を積んだ人を中心に採用しているようなので、プログラマーとして自分くらいの年齢でも結構普通みたいです。実際、おじさんというレベルを超えて、そろそろ孫がいても不思議でない、おじいさんという感じの年齢の現役プログラマーもたくさん活躍しています。もちろん、年齢というよりはスキルによってポジションが決まるので、年齢が下の人がより上級のプログラマーということも普通にあり得ます。(おじさんと書きましたが、もちろん、グローバルには女性のプログラマーもたくさんいます。)

Chris SalzbergChris Salzberg 2011/10/23 18:49 ryoasai様

はじめまして、クリス・サルツバーグと申します。グローバル・ボイス(Global Voices)というソーシャル・メディアを中心とする非営利団体の記者です。(プロフィールはこちら http://globalvoicesonline.org/author/chris-salzberg/ )

ryoasai様が書いたこの記事と、そして先日の「すでに定年を過ぎていますが、Amazonで引き続き達人プログラマーを目指すことになりました。」という記事も部分的に翻訳させていただき、グローバル・ボイスで紹介させていただきたいと思っておりますが、よろしいでしょうか。外国人にとってはryoasai様が書いた内容は大変面白いと思います。

グローバルボイスの記事の例として、先日にアップした以下の記事もありますので、興味があればご覧ください。(元ネタは永江一石氏が書いた「ジョブズもいってた、日本メーカーがAppleに負けっ放しの理由」という記事です。)

http://globalvoicesonline.org/2011/10/18/japan-were-losing-to-apple-and-heres-why/

お手数ですが、できれば早いうちに教えていただければ大変ありがたいです。

お忙しいところで恐縮ですが、どうぞよろしくお願いいたします。

クリス・サルツバーグ

ryoasairyoasai 2011/10/24 00:01 クリス・サルツバーグ様

既に公開ずみの記事ですし、どうかご自由に転載いただいて結構です。翻訳されることで、より多くの方々に読んでいただけるのであれば、私としてはこれほどうれしいことはございません。今後ご連絡いただく場合は、プロフィール欄にて公開していますメールにご連絡をいただければと思います。

こおこお 2011/10/29 21:23 はじめまして。部門は異なりますが、私も現在37歳でアマゾンへの転職を検討している者です。
ネットの情報ではアマゾンの評判はよくないのですが実際に転職しての感想はいかがですか?

ryoasairyoasai 2011/10/30 17:39 本文に書いた通りで個人的にはプログラマーとして非常に楽しんで仕事をしています。Work Hard, Have Fun, Make Historyというamazonの文化が合って、自分から進んでさまざまな課題に対して進んでリーダーシップを発揮できる人であれば、非常に充実した仕事ができると思います。立場上、これ以上詳しいことが書けなくてすみません。

こおこお 2011/10/31 22:53 ryoasai さん

早速にご回答頂きありがとうございました。そうですね。ネットのうわさ二は惑わされず、自分の想いと会社との合致を基本に考えたいと思います。

こおこお 2011/10/31 22:53 ryoasai さん

早速にご回答頂きありがとうございました。そうですね。ネットのうわさ二は惑わされず、自分の想いと会社との合致を基本に考えたいと思います。

大手SIer大手SIer 2011/11/14 21:25 社内開発、受託請負開発の違いを
アジャイル、ウォーターフォールの違いにすり替えていますよね?

ryoasairyoasai 2011/11/16 22:10 最近では受託開発を新しい契約形態で行うという会社も出てきているように、ご指摘のように社内開発、受託開発の違いとアジャイル、ウォーターフォールの違いは本来は独立したものです。ただし、伝統的な人月モデルのSIの契約形態やユーザーの意見を取り入れて新機能を素早く開発するB2Cのモデルということを考えると、実質的にはほぼウォーターフォール文化、アジャイル文化とすり替えて差し支えないのではないかとも思いますね。

ryoasairyoasai 2011/11/16 22:15 つまり、アジャイルかウォーターフォールかどうかは単に開発プロセスやツールの違いとしてとらえると間違いなことが多いと思います。特にアジャイルは短い期間で顧客に価値を提供するということが本質ですから、一般の受託開発の形態で顧客と開発サイドがどうしても対立する傾向がある文化ですと、いくら形式をまねてもうまくいかないのです。そういう意味でも、受託開発でアジャイルな文化を取り入れるためには、今までも契約形態やビジネスモデルを大きく見直す必要があるのではないかと思います。

Connection: close