15.1. Introduction

EnvisionWare makes a print management system for libraries. The system enables patrons to pay to print documents in a variety of ways: prepaid, credit card, and so forth.

The current system is several years old and is being rewritten from scratch to allow for more flexibility and growth. I was called in as a consultant to help explore EnvisionWare's proposed object design, as a demonstrable system had to be created in less than 10 weeks for a trade show.

Rob Walsh, the cofounder of EnvisionWare, and I together examined the proposed design. We came up with a number of ways to increase the separation of concerns between portions of the system and to assign clear responsibility to each class involved. We did not incorporate every aspect of Extreme Abstraction and Extreme Separation to limit the number of changes that his programmers were experiencing at the time. Only the server side of the system was being recoded at that point. Re-creating the client side will occur down the road.

Get Prefactoring now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.