Happy Hacking Your Team
はじめに
本連載では、ソフトウェア開発におけるチームをHappy Hacking をすすめていくか、という点について、筆者の実例と、そこから得た気づきをまとめた形で紹介していきます。 [1] Hacking(ハッキング)というと、近年流行りのワードである「Life Hack(ライフハック)」を思い出すかもしれません。筆者はHacking/Hackを「自分が使いやすいように工夫する」という意味で捉えています。つまり「Happy Hacking Team」は、「チーム」を「楽しく工夫」していこうという意味を込めています。
「工夫」を広辞苑で引くと「いろいろ考えて良い方法を得ようとすること。また、考えついた方法」とあります。まぁ当たり前ですね。では次にいったい「工夫」とはどんな時に行われるのでしょうか。日常生活をふりかえってみて考えてみてください。普段の生活で「ちょっと面倒だな」、「うまくいかないな」ということはありませんか?このような状態を「工夫の余地がある」状態と言います。こういった現状の不満に対して思慮を巡らせ、より良くすることが工夫するということです。
本連載で扱うのは、ソフトウェア開発におけるチーム内での工夫についてです。もしかしたら、ソフトウェア開発というドメイン以外にも適用できるかもしれません。しかし筆者はそこまで広範囲に適用したり、応用しようと考えているわけではないということを先に申し上げておきます。
では本連載で紹介していく内容についてお話しましょう。本連載では、もちろん工夫そのものの内容も紹介しますが、本当に伝えたいことは、工夫の背景にある「価値観」と、その時直面した「問題」に対してどのような工夫を考え、適用していったのかという「過程」なのです。そして、これらをまとめると「態度」という言葉に集約できます。そのため、実例を元にした「どのように実践するか」ではなく、読者の皆さんがそれぞれの現場で「Happy Hacking Team」を実践する際に、読者のコンテキストで様々な工夫をする際に、「どのように考えて実践につなげるか」という点に役立つ内容にすることを心掛けます。
背景の紹介
次に、今回の連載で紹介する実践を適用しているプロジェクトの紹介をします。筆者の所属する(株)チェンジビジョン [2] では、2つのソフトウェア製品を開発、販売しています。1つがUMLモデリングツール、システムデザインツールのJUDE [3] です。1つが、2006年から開発・公開し、2007年2月より販売開始している、見える化を基軸としたプロジェクトマネジメントツールのTRICHORD(トライコード) [4] です。筆者はこのTRICHORDの開発のリードをしています。
プロジェクトは2006年1月から本格的に開始され、当初は筆者を含めた5名で開発を始め、途中最小4名、最大6名を維持しながら今まで進んできています。プロジェクトは3~4ヶ月毎に人が入れ替わっており、開発当初からのメンバーは私を含めて2人のみです。筆者は当初から直接コードを書くことはせずに、コンセプト作成、製品仕様の決定、アーキテクチャおよび設計指針の決定、管理業務などを中心に行っています。とはいえ開発チームと同じ作業場所にいるため、開発中の細かな問題や、その対応の様子は把握しながら進めています。このプロジェクトの特徴としては、市場への頻繁なリリース(1~3ヶ月)、要求から開発、そしてメンテナンスまですべてのフェーズを1チームで行う、といったものがあります。
[図1 メンバーの入れ替わりの変遷]
筆者はこれまでに数回ほど、本プロジェクトにおける各実践(プラクティス)を記事にしたり [5] 、講演で紹介したり [6] してきました。本連載はこれらの延長線上にあります。もし、まだこれらの記事や資料をご覧になられていない方は、まずこちらをご覧になってください。これまで紹介していたものは、主に何を実践しているかという点に着目しているのが異なります。
また、ソフトウェア開発の業界の中で、「カイゼン」という言葉や「プロジェクトファシリテーション(以下PF)」 [7] という言葉を耳にする機会が増えています。まず「カイゼン」は主にトヨタ生産方式から伝わってきた言葉、考え方で、「ムダを排除し、継続的に改善していく」ことを意味します。PFは、プロジェクト活動、特にソフトウェア開発において、プロジェクトの成功に加えて、参加している人の成功という点に注目しています。よりよいチーム、よりよいコミュニケーション、そしてよりよいエンジニア人生を実現するために、価値、原則、実践という形で体系化しています。本連載は、カイゼンの思想、PFの思想に強い影響を受けており、オーバーラップする部分もあります。本連載で紹介する実例は、これらの実例であると言ってもよいかもしれません。
価値観
本連載では、「実践」以上に、その背景にある「価値(観)」を重視します。 とても当たり前な用語ですが、価値観をWikipedia [8] で紐解くと次にようになります。
価値観(かちかん)とは、何が大事で何が大事でないかという判断、 ものごとの優先順位づけ、ものごとの重み付けの体系のこと。
簡単に言うと、「大事にしていること」です。これが何を意味するかというと、ある行動の裏には、かならずその行動を選び、実施するための判断基準があり、その基準はある価値観の上に成り立っていると言えます。言いかえるならば、、ある行動判断には理由があり、その理由はある価値観に根ざしているのです。 なぜわざわざ価値観まで遡る必要があるのでしょうか。それは直接的な理由だけでは、人は互いの行動・主張を理解するのは難しく、価値観のレベルにまで遡らないと、互いの主張に隠れた本当に大事にしている領域が見えにくいからです。
ある家庭の日常の風景を例にしてみましょう。
ある家庭で食器をシンクに溜めておいてまとめて、一気に自動食器洗浄機(以下食洗機)に入れるというやり方をしている妻に夫が一言いったケースです。ちなみにこれは筆者の実体験ではありません。
- 夫:「なんでこんなに食器をシンクに溜めておくの?さっさと食洗機を回しておけばいいじゃないか」
- 妻:「まとめて食洗機で洗ったほうが経済的なのよ。お皿3枚で食洗機を回してもムダじゃない」
- 夫:「それはそうだけど、見た目も悪いし、そんなに溜めておくと衛生的にもよくないんじゃないか?」
- 妻:「そんなにカビが生えるほど置いておくわけでもないし、大丈夫よ」
- 夫:「そもそも皿数枚なら、食洗機じゃなくて手で洗えばいいじゃないか」
- 妻:「それはそうだけど、それを言い出すと毎回手で洗うことになって、食洗機の意味がないじゃない」
- 妻:「それに、私の手間もかかるのよ」
- 夫:「...」
この会話をご覧になって何に気づきましたか?互いの意見はどれももっともです。しかし御互いに主張している方向性が異なります。これは二人が食器洗いに際して大事にしている価値観が異なるからなのです。夫は1、3の発言を見ると「見た目」「衛生上」のクレームをつけています。これは夫の方が「綺麗で整頓されたキッチン」という価値観を持っているからです。他方、妻は2、4の発言を見ると「経済効果」について主張しています。これは「低コスト」という価値観を持っているように見えますが、6、7の発言からは「省力化」つまり「快適さ」という価値観をもっていることになります。
つまり夫の「清潔綺麗」という価値観と、妻の「低コスト」「快適」という価値観のぶつかり合いなのです。ここまで来れば、あとは互いの価値観を満たすような方法を検討して実施することで、二人の合意がとれた解になるでしょう。(実はそこが一番難しいのですが) この例では、互いの価値観を理解しないままに口論をはじめてしまいました。しかし最初からお互いの価値観を理解して尊重していたらどのようになるでしょうか。きっと違った内容になるはずです。
目的
価値観の違いを認識するのはとても重要ですが価値観は多様です。そして多様な価値観同士でコンテキストに応じて優劣をつけるのは、思った以上に難しいことです。この時に重要になるのが「目的」です。目的が明確であれば、その目的を達成するために必要な価値観はどれか?という基準で価値観を絞りこむことができます。
先程の皿洗いの例で言うと、「食洗機を購入した目的」を思い出してみることになるでしょう。大抵の家庭では食洗機を購入する第一の目的は「それまで食器を洗っていた人の食器洗いの負荷を軽減すること」になるでしょう。この目的の達成に必要な価値観は先の例でどれになるでしょうか。この例では「(妻の)快適さ」ということになるはずです。
では夫の「清潔綺麗」という価値観は無視されてしまうのでしょうか。この例の場合は、妻の「快適さ」を損なわない範囲内で夫の「清潔綺麗」という価値を実現することになります。例えば「皿が数枚の時は、夫が手で食器を洗っておく」などがその実践になるでしょう。
このように目的が明確な場合は、どの価値観に重きを置くかという点が合意しやすくなります。また目的だけではなく、対象を取り巻く環境によって、どの価値観を重視すべきかが変ってきます。常に「何が目的で、どんな価値に重きをおくべきか」という点を考えながら日々の実践に繋げてもらえればと考えています。
次回から、TRICHORDプロジェクトにおける実践を、目的、価値観、という点を踏まえながら紹介していきます。ご期待ください。
| [1] | : ちなみに「Happy Hacking」は、(株)PFUの名作キーボードシリーズ「Happy Hacking Keyboard」にヒントを得ています。 |
| [2] | : http://www.change-vision.com/ |
| [3] | : http://jude.change-vision.com/ |
| [4] | : http://trichord.change-vision.com/ |
| [5] | : http://itpro.nikkeibp.co.jp/article/COLUMN/20060402/234199/ |
| [6] | : http://www.objectclub.jp/download/files/event/2006Christmas/TRICHORD_practice_oblove_20061220.pdf |
| [7] | : http://www.objectclub.jp/community/pf/ |
| [8] | : http://ja.wikipedia.org/wiki/%E4%BE%A1%E5%80%A4%E8%A6%B3 |
![(please configure the [header_logo] section in trac.ini)](/trac/index.fcgi/chrome/site/your_project_logo.png)