テスト駆動開発を行なう上での課題と解決策に関するInfoQ記事について。記事の要約とコメントです。
記事について
テスト駆動開発を実行する上での課題とそれに対する解決案:
Making TDD Stick: Problems and Solutions for Adopters
まず、テスト駆動開発を実現する上での課題として、習得の困難さが挙げられます。
Test Driven Development can be very hard to learn. The learning phase (the time during which it becomes a deeply ingrained habit) typically lasts from two to four months, during which productivity is reduced. Eventually the benefits will be obvious and the technique is usually self-sustaining, but the question is: how to get there? Many developers give up after only a few days.
テスト駆動開発の習得は非常に難しいものです。学習期間は2ヶ月〜4ヶ月かかり、その間生産性は低下します。それであっても、結果として享受できるメリットは明らかであり、また、この技術には通常、一度習得すれば自然と続けられるという性質があります。しかし問題は「どうやってそこに至るのか?」多くの技術者は、たったの数日で諦めてしまうのです。
この解決策として従来考えられてきた、"Classroom training"や"Online Training"には「深み」や「共同作業」がないことを指摘した上で、「テスト駆動開発をとりまく会話を増やし、共同作業を増やすこと」を核とした解決策がいくつか提示されますが、その中で「コーディング道場」と「読書会」が具体的に紹介されています。
最終的にテスト駆動開発を有効にするための方策として、以下の4点が整理されます。
- Patience, Practice, Depth
- Management Support
- Multi-pronged approach
- Developers helping developers
- 忍耐、訓練、深さ
- 管理体制の支援
- 多方面からのアプローチ
- 開発者同士の助け合い