At Infi we’re trying to create an environment of continuous learning. One of the things we do is do a period of studying with your co-workers once every year. The subject can be anything related to software development, and this year we chose to study Uncle Bob Martin’s excellent book Agile Software Development, Principles, Patterns, and Practices.
One of the sections in the book is The Payroll Case Study, which details the development of a fictional payroll application. During the case study we learn how to apply the principles and patterns in practice, and we learn about the various trade-offs that need to be made. Since this specific domain is closest to the ones we usually deal with (business oriented domains), it’s actually quite a good example to explain some of the things we run in to on a day-to-day basis. Therefore, I decided to implement this study as a baseline example for future blogs. I also implemented the various packaging schemes and used NDepend to create abstractness vs instability diagram, which are pretty cool 🙂
I put the code on github, so check it out! I also welcome you to create pull requests 🙂