セールスフォースの大規模アジャイル開発手法から学んだこと


本日、『Cloudforce2011』に参加してきました。セールスフォース・ドットコム会長兼CEOのマーク・ベニオフ氏による基調講演を始め、さまざまな方々の講演や、展示などが行われ、とても有意義な時間を過ごすことができました。
その中でも特に印象的だったのは、米国セールスフォース・ドットコム、クオリティエンジニアリングシニアマネージャーの大沢氏による、「セールスフォース・ドットコムの大規模アジャイル開発手法」についての講演でした。現在、自分自身がrailsとクラウドを使ったアジャイル開発を行なっているということもあり、今後アジャイル開発を行なっていく上で、参考になる点が多くありました。細かいことは挙げるときりがないのですが、概して感じたことは、
アジャイル開発を進めていく上で、高い品質を保つための時間コスト、あるいは金銭コストは進んでかけるべき
ということでした。具体的に、セールスフォースが品質を高く保つためにどういったことをしているのか、以下に一部をまとめておきたいと思います。
(※参考:セールスフォース・ドットコムの作り方

・クオリティエンジニア(QE)に、製品の品質全般の責任を持たせる
クオリティエンジニアはテストの作成や実行、また、チームに対してお客様の視点の提供なども行う。

テスト駆動開発、テスト自動化
エンジニアは、実際のコードを書く前に、テストコードを書く。そうすることで、最終成果物のイメージがはっきりし、さらに今後起こりうる問題点が明らかになる。
また、テストコードを書いておくことで、自分が何か他の機能を壊していないか確認しながらコーディングすることが可能になる。さらに、テストの実行を自動化しておくことで、作業時間を大幅に短縮できる。

・Lock the Lineポリシー(トヨタ方式)
テストの成功率が目標値を下回った場合、全てのコードラインをロックし、開発を止めてしまう。その該当チームは、目標値を超えるまで、問題の解決に取り組まなければならない。