私のチームは現在、いくつかのリリースで「アジャイル」になろうとしていますが、大企業の一員であることは簡単ではありませんでした。私は答えを持っているふりはしませんが、観察結果の一部を共有できます。
モジュールごとの開発者の分割:
- 人々が孤立して働きすぎると、チームはスキルと知識の相互共有の恩恵を受けないため、注意する必要があります
- 人々が自分のモジュールに集中しすぎて、全体像が見えないと、計画会議や毎日の立ち上げは、誰にとっても信じられないほど退屈になります。人々が退屈したら、彼らはチェックアウトを開始し、アジャイルがテーブルにもたらす利益の多くを失います
- 本当によく書かれたコンポーネントもあれば、そうでないコンポーネントもあります。人々が孤立して働く場合、あなたの年長者は後輩を訓練することができません。
全員が同じモジュールで同時に作業する
- あるリリースで、経営陣がチーム全体にアジャイルを課すことを決定し、それが完全に彼らの方法になると判断したときに、それを試しました。絶対的な列車の大破として。通常、1人の開発者が行っていたはずの作業を、1年で9人の開発者から成るチームが行いました。(ここでは大げさかもしれませんが、大したことではありません)。
- 誰も呼吸室がないように感じた。ソフトウェアを気にしない人は、より大きなパックの一部であるため、グループで希釈されているため、自宅にいるように感じました。ソフトウェアに情熱を持っていた私たちは、9人が同意した範囲を超えて移動したり、外に出たりする自由がなかったため、絶対に息苦しく感じました。
- すべての会議は永遠に自分自身を撃ちたいと思うようになりました。同じ部屋で意見を持っている人が多すぎて、同じ奇妙なDLLで作業することを余儀なくされました。ホラー。
- 前回のリリースでは、別のものを試すことにしました
- 何よりもまず、開発グループを3〜4人の開発者からなる小さなチームに分割します。各チームは互いに比較的孤立して作業していましたが、チーム内では人々はより密接に作業していました
- このアプローチでは、立ち上げが迅速であり、計画会議は4時間に比べて1〜2時間かかります。
- 各チームは、そのチームの開発者が何に関心を持っているかを議論するだけなので、誰もが参加していると感じます。
- 各チームの技術リーダーは他の技術リーダーと定期的に話し合い、プロジェクト全体が順調であることを確認します。
- 特定のモジュールの人々を「所有者」にする代わりに、専門分野を人々に割り当てたため、プロジェクトを最初に開始したとき、人々は独自のモジュールを持っているように感じましたが、数ヶ月後、開発者はお互いのコードを次のように見始めましたエリアが重複し始めました。
- コードレビューは不可欠です。これは2番目のリリースであり、厳密なコードレビューポリシーがあり、チームの全員がそれを気に入っています。特定の領域の専門家は、他の誰かがそのコードを変更するとき、常にコードレビューを行っています。
- コードレビューでは、多くの知識を共有しており、チームのコード品質の全体的な改善を見ることができます。また、コードは頻繁にレビューされるため、人々が他の誰かの専門分野に入ると、少なくとも数回はすでにコードを見ている可能性があります。
- 各チームの大部分は設計レビュー会議に吸い込まれているため、たとえコードを見たことがないとしても、チームが担当するすべてのモジュールの一般的な流れに誰もが精通しています。
- 私たちはこれを約10か月間行ってきましたが、孤立したモジュールアプローチから始めて、すべての人があらゆることに取り組むようになったように感じます。しかし、同時に、彼らがcr屈であるか、または制限されていると感じる人はいません。そして、彼らがまだある程度の権威を持っていることを確認するために、私たちは彼らを地域の専門家として残しました。
私たちはその最後のことをしてきましたが、改善の余地はたくさんありますが、チーム全体としては非常に満足しており、それは私たちが巨大企業の一員であるときにたくさん言います。
「アジャイルに行った」最初の3回で間違いを犯した重要なことの1つは、人々が仕事をする方法を教えられ、何をすべきかを言われたときのことです。それはあなたのチームがプロジェクトに完全に興味を失い、それからあなたが本当のトラブルに陥る一番の方法です。
代わりに、反対を試してください。チームに、彼らがやりたいことは何でもできると伝え、マネージャー/リーダーとして(あなたがマネージャーであれば、マネージャーにこれらの言葉を繰り返さないようにしてください)、あなたの仕事は彼らが可能な限り生産的で幸せであることを確認することです。プロセスは悪いことではありませんが、プロセスが必要なことに気付いたときにチームを支援するためにそこにあるべきです。
チームメンバーの一部が単独で作業することを希望する場合は、それらを(ある程度まで)許可します。彼らがペアで働くことを好むなら、彼らにそれをさせてください。できる限りあなたの人々が自分の仕事を選べるようにしてください。
最後に、これは非常に重要であり、常に見過ごされています。あなたはこの権利を得ることはありません(あなたがスーパーマン、または少なくともバットマンでない限り)。定期的な回顧会議を開催することは非常に重要です。レトロスペクティブを展開したとき、それらは本によって行われ、それはあなたが座らなければならないさらに別のプロセスのように感じました。それは回顧展の目的ではありません。これは、チームの声に耳を傾け、最も痛みを引き起こす領域を特定し、誰もが仕事に取り組めるように修正するためのものです。どうやらソフトウェアエンジニアは一般に、製品や機能を提供したり、最も重要なメッセージの回顧会議でコミュニケーションをとることを好みますが、それは彼らの利益のためだけにあるということです。最も大きな障害物(または最も簡単な障害物)から始めて、障害物を特定して対処したい