TDDを習慣にする:問題と実装

画像 翻訳者から。 Habréには、TDDに関する記事が数多くあります。 しかし残念ながら、彼らは企業レベルでTDDを包括的に実装する方法についての詳細な情報を持っていません。 この記事でこれに対する答えが得られるように思えました。このような目標を自分で設定すれば、この記事は役に立つかもしれません。



組織内でテスト駆動開発(TDD)を実装しようとするチームに出くわしました。 問題をよりよく理解するために、チームメンバー間で調査を実施しましたが、トレーニングを行った後でも、多くの作業が残っていることがわかりました。 この戦略は、だれでも組織にTDDを実装できるように設計されていますが、アイデアの中には中規模および大企業にのみ適用されるものもあります。



チームメンバー(全員がトレーニングを受けた)に関する私の調査により、次の問題が明らかになりました。





主な問題


これらの症状に基づいて、主な問題は何ですか?



テスト駆動開発は習得が困難です。 学習段階(根付いた習慣になる期間)は、通常2〜4か月続き、その間生産性が低下します。 最終的に、 利点は明白であり、TDDは単独で使用されますが、問題はこの時間を表示する方法です。 多くの開発者は数日でgiveめます。



私が見たほとんどの実装戦略は、教室での活動(またはeラーニング)と1対1のメンタリングに焦点を合わせています。 よくやった、彼らは確かに彼らの目標を達成しますが、私はもっと多くが必要だと思います。



教室での指導には2つの重要な問題があります。例は単純すぎて、実際の問題に関係していないため、実際にこれを試す機会はほとんどありません。



インタラクティブな学習が優先されるため、トピックを深く掘り下げることができますが、実際にすべてを試す機会はまだ十分ではありません。 さらに、これらのコースは通常、他の学生との交流なしで開催されます。 クラスメートや同僚から質問を聞いた後、自分で理解できるようになることがよくあります。



1対1のメンタリングは、同じチームの複数のメンバーと同時に作業することを除いて、スケールしません。 これは、少数の専門家と数百人または数千人の人しか助けを必要としない大企業の環境では特に困難です。



本は素晴らしい選択肢ですが、エンジニアリングの実践に関する本を読むことを好む開発者はほとんどいません。また、この方法でTDDを学ぶ人でさえ大きな問題を抱えています。 オンラインコースのように、学習の問題は自分の肩にかかっています。



そして最後に、レガシーコードはすでに困難なタスクを何百倍も難しくしています。 開発者は、「これらの密接に関連するオブジェクトをどのようにテストできますか? このコードは複雑ですが、このアルゴリズムを確認するにはどうすればよいですか? „



一つのアプローチ


何が機能しますか? これまでのアプローチには、深さの欠如とコミュニケーションという2つの重要な問題があります。 完全な戦略には、アプローチの組み合わせが含まれます。





この計画の中心となるのは、継続的なコミュニケーションを作成し、TDDを中心としたコラボレーションを拡大することです。 これらの戦略のうち、ペアプログラミング、 コーディング道場 、リーディングセミナーの3つがこの分野に集中しています。



コーディング道場


コーディングDojo(Randory形式を使用)は、小さなグループ(15人以下)がTDD( Danilo Satoから適応)を使用して問題を解決するイベントです。





経験から、最初は非常に小さなタスクを選択することをお勧めします。



読書セミナー


セミナーを読むために利用できる多くの本があります。





通常、チームはセッションごとに1〜2章を処理します。 ペースは、人々が仕事以外で読むのに十分遅い。 さらに、彼はこの章のいくつかのポイントの詳細な議論に十分な時間を提供します。



共同学習の利点


セミナーにはピザ(またはその他の食べ物)が必要です。仕事と似たようなことをするために個人的な時間を過ごすように人々に求めるため、インセンティブが必要です。 2つのワークショップは交互に行うことができるので、人々は1つのことにこだわっていると感じることはありません。 そして、グループが会議から会議まで一定であることを期待すべきではありません。



グループのメンバーはお互いにコミュニケーションを取り、利益を得るため、ワークショップとコミュニティは自習よりもはるかに役立ちます。 その結果、私たちは決して到達しなかったものについて学びます。



TDDを習慣にする


一般的に、これらはキーです。 それらは、成功する実装戦略の作成に役立つと思います。






All Articles