当社は
、アジャイルプロジェクト管理システムTargetProcessを開発し
ています。 数年間の開発の間に、私たちは多くの異なる慣行を試し、独自のプロセスに到達しました。これは順調に進んでおり、現在6か月間特に変更されていません。
すべてのプロセスにはアプリケーションの境界があるので、コンテキストから始めましょう。
コンテキスト
- 10〜20人による1つの大きなWebアプリケーションの開発。
- 製品はすでに6年です。
- 使用されているテクノロジー:C#、ASP.NET、NHibernate、ExtJS。
プロセス全体を記述するのは長くて退屈なので、ここに最も重要なプラクティスがあります。
あまり技術的な慣行ではない
サイクル最初は反復を使用しましたが、1年半前にそれらを放棄しました。 製品が一定の重量を獲得している場合、少なくとも1つの新しい機能の準備ができたときにいつでもリリースできることがはるかに優れています。 だからみんな一緒に
かんばんに引っ越しました。 これで、日中にバックフィックスをリリースできます。 新しいパブリックビルドは、約1週間に1回リリースされます。
見積もり 。
機能やユーザーストーリーは重要ではありません。 かつては
ポーカーのプランニングを行い、ストーリーを抽象的な点で評価していましたが、今では最も重要なことに集中しようとしています。 物事が最も重要な場合、評価はそれほど基本的ではありませんが、製品の所有者は、この新しい重要な機能がいつリリースされるのかを本当に知りたい場合があります。
ラリー 。
かつて多くの集会がありました:回顧、リリース計画、イテレーション計画、毎日のスタンドアップ。 現在、定期的な会議からは毎日の会議のみが残されており、他のすべての会議は、特定の問題を解決するために必要に応じて排他的に開催されています。 たとえば、機能の作業の開始時に、開発者、テスター、製品所有者が集まり、この機能のすべての詳細について話し合います。 つまり、誰もが彼女に対処するつもりです。
勤務時間 。
以前は、費やした時間をすべて追跡していましたが、現在は追跡を停止しています。 人々は好きなだけ働きます。 残っているルールは1つだけです。11時までに仕事をしている必要があり、その日には毎日の集会が開催されます。
ミニチーム 。
各問題を解決するために、個別のミニチームが形成されます。 通常、3〜4人で構成され、1〜6か月一緒に作業します(タスクの複雑さによって異なります)。 ミニチームの人々が一緒に座ります(ある部屋から別の部屋への移動があります)。 これにより、ユーザーを1つのタスクに集中させ、マルチタスクをほぼ完全に削除できます。
技術的慣行
ペアプログラミング 。
誰もが一人でプログラミングをしていた時代がありました。 全員が厳密にペアでプログラミングを行っていた時代がありました。 これらの極端なアプローチはどれも根付いていません。 ペアプログラミングは、複雑な問題を自由に解決するために使用されます。 すべての職場には、2台のモニターと広いテーブルがあり、一緒に座るのに便利です。
バージョン管理 。
各機能を開発し、各バグを個別のブランチで修正します。 バージョン管理は
Gitを使用し
ます 。 ウィザードは常にリリースの準備ができています。
自動テスト 。
TDD、最近では
BDDを激しく使用しています。 回帰/機能テストはあまり熱心に自動化されていません。 このために、Seleniumと独自の.NETフレームワークの活発な混合が使用されます。 テストカバレッジは悪くありません。作業を高速化するために、テストを並行して実行する12の仮想サーバーが使用されます。 そして、はい、開発者はすべてのテストを自分で書きます。
プロセスの他の機能を共有できることを嬉しく思います。 ただ聞いてください。
ところで、ミンスクでは、
2人の.NET開発者 、
2人のjavascript開発者 、そしてクールなテスターが
本当に必要です。