開発をチームに分割した方法(そして無限のスプリントと役に立たないスタンドアップを忘れた)





私はUniSenderメールサービスの PMです。 6年前、私はプログラマーとして来ましたが、現在は製品チーム間のやり取りを担当しています。 以前は、開発は1つの分散チームで構成され、2つのトラブルがありました。 しかし、愚か者や道路ではなく、スプリントと退屈なスタンドアップの遅れは30分です。



どのように解決したかを説明します。



私が言ったように、2つのトラブルがありました。



  1. スプリントは1つのタスクの誤りのために残るかもしれません 。 QAとDevは同じスプリントに取り組み、作業範囲は作業の最初に修正され、チーム全体がそれを実装するために勇敢に駆けつけました。 「マスター」ホットフィックスに向かう緊急のバグが時々到着しました。 スプリントタスクは非常に膨大になる可能性があります。 一部のタスクのリリース準備が整ったとき、他のタスクはまだ開発中でした。 その結果、チームは1つのタスクのためにスプリントを遅らせる可能性があります。
  2. スタンドアップは時間がかかり、疑わしい実用性がありました 。 チームは成長し、スタンドアップはスカイプで行われ、最初は何もトラブルを引き起こしませんでした。 スタンドアップが20〜30分間伸び始めたときに、何かがおかしいと疑い始めました。 出席者は、他のチームメンバーが何をしていたかを必ずしも理解していませんでした。


しばらくの間、私たちはこれらの問題を抱えて生き、戦いを試みました。





これらの試みは期待した結果を与えませんでした。 根本的な変化をなくすことはできないという理解が生まれました。



ここで、製品についていくつかの言葉を言う必要があります。



私たちは24時間365日利用可能なSaaSソリューションです。 ユーザーに表示される部分-GUI-に加えて、時刻や国の政治状況に関係なく機能するシステムロジックの大きなレイヤーもあります。 つまり、サービスの開発と更新は、停止することなく継続的に行われます。



かんばんに行く



最初の大規模な革命は、「スクラムは私たちにふさわしくない」と気付いたときに起こりました。

かんばんに切り替えることにしました。 もちろん、私たちはトヨタではなく、完全な実装を開始しませんでした。 したがって、「私たちのかんばん」は「あなたのかんばん」とは異なります。







スプリントとチームワーク



バージョンの概要:





この場合、チームは最初から最後までスプリントをしなければなりませんでした。 これはテスト段階にも当てはまりました。スプリントに取り組んだ同じ人がエラーを修正しました。



結果。





スタンドアップ



スタンドアップは変容しました-彼らは別々のスプリントで働いていた各チームから1人の代表者によって訪問されました。



結果。





したがって、重大な問題を解決することができました。



しかし...氷山全体が島から浮かび始めました!



かんばんに切り替えた後、専用のフロントエンドチームを獲得し、バックエンドおよび製品チームの従業員が増えました。 部門間の相互作用はより複雑になりました-複数のチームが1つのプロジェクトに取り組むことができました。



いくつかの問題を解決しましたが、新しい問題が前面に出ました。





しばらくの間、私たちは新しいルールに従って生き、新しい挑戦に苦しみました。 さまざまなアプローチを試して、多くのコーンを埋めました。



その結果、何かがおかしくなっているのではないかと再び疑い始めました。 あるべき新しい革命。



チームへの分割、新しいスタンドアップ、Fireteamの導入



私たちは、アイデアの開始から完成した実装のprodへの展開までのプロセスを分析しました。 他社でアジャイル手法がどのように機能するかを見ました。 開発プロセスへのアプローチはそれほど悪くないことがわかりました。

稼働中のシステムを壊す必要はありません。痛みを引き起こす瞬間を修正する必要があります。
これは、開発プロセス中に変更したものです。



スプリント



私たちはまだ「スプリント」のコンセプトで運営していました。 スプリントは、チームの「ほぼ2週間」の作業範囲です。



プラスとは何ですか。 コードは「悪化」せず、大幅な遅延なしに製品に到達します。 チームが2週間でスプリントを行う場合は、1か月に引き締める必要があります。



改善できるもの。 多くの場合、マークを逃し、スプリントは少し遅れます。 一部のスプリントで作業する時間は、最初は評価が困難です(たとえば、多くのリファクタリング)。 この問題を解決する必要があります。



チームへの分割



1つの大きなチームをいくつかの小さなチームに分割しました。 それぞれに2〜3人の開発者と1つの専用QAが含まれています。 現在、チームは安定しており、プロジェクトごとに変更されません。 名簿を最適化したり、必要な専門知識をチームに追加したりするために、チームを切り替えることがあります。 BAはチームに参加しますが、同時に2〜3つのプロジェクトをリードできます。





残りはまだ1つのチームですが)



同時に、チーム全体が最初から完了まで1つのプロジェクトに取り組みます。 1つのプロジェクトは複数のスプリントで構成できます。



プラスとは何ですか。





改善できるもの。 チームでBAを完全に紹介したいと思います。 通常、VAはチームの他の部分よりも早く作業を開始するため、これは問題です。



チームワーク



作業中のチームは、「まだテスト中のスプリント」と「これから見る新しいスプリント」の2つしかスプリントを使用できません。 原則として、開発の終了後、全員がリリースされると、新しいスプリントの作業を開始します。



プラスとは何ですか。 チーム作業がより予測可能になり、誰もがコードに精通しており、テスト中にスプリントをサポートできます。 参加者はタスクを切り替える可能性が低くなり、切り替えのプロセスが高速になりました。



改善できるもの。 理想的には、チームの作業中のスプリントは1つだけにする必要があります。 しかし今のところ、理想的な世界は私たちの世界ではありません。



消防隊



各チームは1週間選出されます。 このコマンドは、他の部門からの呼び出し、サービスの異常な動作、ホットフィックスなど、すべての外部刺激物に応答します。 このチームを「Fireteam」と呼びます。



プラスとは何ですか。 Fireteamウィークは、スプリントタイムのチームにカウントされません。 消防活動の合間に、従業員はタスクに集中できます。





欠点。 ファイアチームの1週間で、チームの人生は非常に波乱に富んでいます。 すべての部門は、これらの人々、特に技術サポートを直接愛し、知っています。 借方記入、ログの読み取り、緊急タスクのソーイング、すべての火災の消火など、さまざまなタスクを常に切り替える必要があります。 これらはすべて同時に行う必要があります。



スタンドアップ



2種類のスタンドアップを導入しました:



  1. チーム 彼らはプロジェクトに取り組むチームを巻き込みました。
  2. 全般 週に1回合格し、各チームのリードが参加します。


プラスとは何ですか。





欠点。 チームはまだ情報をチームに伝えています。



まとめ



したがって、プロセスを徐々に変更して、差し迫った問題のほとんどを解決しました。





まあ、私たちは取り組んでいます。










All Articles