|
マイクロソフト プロダクト ディベロップメント リミテッド
ディベロッパー製品開発統括部プランニンググループ
マネージャ
鈴木 啓一
PC-9800シリーズ用のMicrosoft BASIC version 7.1からずっと開発ツール畑で仕事をしています。その後,MASMやVisual Studioなど,リリースに関係した製品は数知れず。趣味で集めた腕時計も数知れず。
Windows用アプリケーションを開発している皆さんの中には,多くの方に弊社のVisual Studioを利用していただいていると思います。そのVisual Studioが,どのようにして開発されているのか興味はありませんか?一般向けのソフトウエア製品とは違って,開発ツールの場合は,作る側も使う側も同じ開発者で,非常に親近感のある存在です。そして開発手法や品質管理,チーム作りなど,共通の問題を抱えています。
ただ会社が違うと開発手法が異なりますし,ほかの会社の開発手法を参考にしたくても,それを見る機会はあまりないことでしょう。そこで,私たちがVisual Studioを開発しているときに実際に遭遇した問題についてどのように解決したのかを,マイクロソフトでVisual Studioを実際に開発している各担当者が10回の連載で紹介します。 第1回の今回は,私たちの組織の紹介も兼ねて組織作りを取り上げます。第2~4回では品質管理について,後で詳しく述べるQAチームが担当します。第5~7回では出荷に向けた開発手法についてPMチームが担当し,第8~10回は複数言語対応などに触れる予定です。 連載途中には,現在まさに開発に取り掛かっているVisual Studio 2005(開発コード名「Whidbey」)のベータ版の出荷という,私たちにとって大きなイベントがあります。それらの開発の裏話にも,折を見て触れようと思っています。
健全な組織作りの第1歩は柔軟な人事体制 なぜなら人事的な給与体系と大きな矛盾が発生するからです。最近は能力給という形で給与体系も少し柔軟になってきましたが,技術者にとっては完璧とは言えません。ここで言う「能力」には,一般に管理能力も要求されているからです。「課長に昇進するよりもプログラムを書いていたい」もしくは「アーキテクトになりたい」という技術者にも,選択肢を与えられる柔軟な人事体制があれば,理想的な組織を作れるようになります。
対等に意見を出し合えるフラットな組織作り 一番大きな理由は,スペック作業やプログラミングといった各職種が人事的に独立していないため,対立できないからです。別に抗争する必要はないのですが,例えばテストを担当する新人が,中堅の書いたプログラムに対して注文を出すことはなかなか難しいことでしょう。各職種がそれぞれの立場から対等に意見を出し合える環境がないといけません。例えばテストだけに大きな負担がかかると,開発作業のバランスが崩れ,結局開発コストが上がってしまいます。
理想的な開発組織に近づけるには,この場合1人の課長の下に3人の部下を同列に置いたフラットな組織にすべきです(図2)。仕事の分担も経験年数だけを基準にするのではなく,個人の得意分野や資質などを考慮して決めるべきです。 ただ,フラット化に伴う弊害もあります。それは管理です。組織をフラットにすると,1人の上司当たりの評価や管理の対象となる部下の数が,ねずみ算的に増えていきます。そこで必要になってくるのが自己管理と評価手段の確立です。これは何も難しいことではありません。本来普通にしなければいけないことをきちんとやるだけです。 自己管理に関しては,今まで上司に与えられていた仕事の内容やスケジュールを自分で決めて実行,管理,報告すればよいだけです。評価に関しては,部下が多いと通常の業務を通してだけではすべての部下の成果を把握しきれません。対話が必要です。少なくとも1カ月に1回,できれば2週間に1回は,1対1で話し合う機会を持つべきです。それでもやはり部下10人ぐらいが限界でしょうか。 マイクロソフトの開発部門の組織は,同じマイクロソフトの他部署と比べてもフラットになっていて,週1回もしくは2週に1回の割合で,上司と1対1の話し合いが行われています。ただし,1対1の話し合いは開発部署に限らず,すべての部署で実践されています。
職種ごとに部署を作ってもう1段大きい組織にする
そこで部署を職種ごとに再編成してみるのはどうでしょうか?スペック作りやプログラミング,テストなどの職種ごとに部署を作るのです(図4)。マイクロソフトでもVisual BasicやVisual C++がそれぞれ別々に出荷され,お互いに依存関係が無かったときは製品ごとに部署を作っていました。その後,各製品がVisual Studio .NETとして同じ開発環境を使用するようになってからは,職種ごとに部署を再編成しました。
それぞれの機能ごとに部署がある場合,横とのつながりが薄くなってしまいがちです。その点,部署を職種ごとに作ると,同一部署の人間が違う機能の作業をしていることになるため,開発対象システムの全体像が見えやすくなります。また,各個人は自分の作業のために,同じ機能を担当している他部署(つまりほかの職種)の担当者と密なコミュニケーションをとることになります。結果として全員から全体像が見えやすく,コミュニケーションも密な組織になります。 |
◆会社紹介◆
|
「マイクロソフト プロダクト ディベロップメント リミテッド」は,日本のマイクロソフトの中で研究開発を担当する会社。日本のマイクロソフトの組織は,2つの会社で成り立っており,ほかにマーケティング,製品の流通,サポート業務を担当している「マイクロソフト株式会社」がある。