書籍『Agile Coaching』 [プログラマー現役続行]
通勤電車と通勤途中にマクドナルドで読んでいたのですが、先週の金曜日に読み終えました。
どのような本でも、それまでの経験や興味がどこにあるかによって、良く理解できたり、できなかったりします。本書は、まだ私が経験したことがないアジャイル開発の部分が多く、ピンとこない部分が多かったです。それでも、やはり、アジャイル開発を導入することは、開発組織によっては色々な障害があることは理解できました。
Chapter 10 「Driving Development with Tests」とChapter 11 「Clean Code」は、非常に良く理解できた章です。今まで私自身が行ってきたこと、あるいは、今行っていることに関連したことが書かれているので、理解が容易なのは当然かもしれません。
11.3節「Pair Programming」では、ペアープログラミングの利点として、次の項目が列挙されています。
私自身は、過去、ペアプログラミングをした経験は少ないです。しかし、先週はかなりの時間をペアプログラミングに費やしました。新規コード開発ではないのですが、既存コードの不具合を修正するための作業です。テストコードが存在しないため、すでにレガシーコード※1となっているコードでした。
- Code is higher to quality, because it is constantly being reviewed.
- Good practice is shared more widely amongs the team.
- Developers are interrupted less, because people tend not to interrupt people working together.
- More than one developer knows each part of the code.
- A uniform coding style is implemented, which makes it easy for everyone to work together.
- Team bonding improves, because the team learns from each other and enjoys working together.
- 常にレビューされているので、コードの品質が高い。
- チーム内でよいやり方が広く共有される。
- 一緒に仕事をしている人達は他の人から割り込まれないことが多いので、開発者が割り込まれることが少ない。
- 二人以上の開発者がコードの各部分を知っていることになる。
- 統一されたコーディングスタイルが実現され、誰もが一緒に仕事をするのが容易になる。
- チームはお互いから学び、一緒に働くことを楽しむので、チームの結びつきが強くなる。
自動実行するために依存クラスのモックを作成し、そして既存の機能を確認するテスト、および、今後実現する制約を確認するテストの作成を行いました。その後、テストを通すための実装をペアプログラミングで行っています。
先週は日によっては、ほぼ一日中行っていたのですが、振り返ってみると、上の3番目の項目にあるように、ほとんど割り込まれることがありませんでした。他の項目は、よく言われている利点です。日本のように個室ではない環境では、割り込まれないで集中して開発業務をするためにはペアプログラミングは、良い方法なのかもしれません。
※1 書籍『レガシーコード改善ガイド』 の定義によれば、自動実行可能なテストがないコードは「レガシーコード」です。
2009-10-18 07:29
nice!(0)
コメント(0)
トラックバック(0)
コメント 0