Decomposing a system design into small classes with narrow responsibilities is essential for creating a maintainable software product. However, without guidance, it can often be difficult—especially for new software developers—to see how a large class might be broken down into smaller pieces. The problem usually isn’t knowing how to make a change, it’s knowing what change to make. Max Guernsey shares six techniques that can ease the burden of identifying smaller design elements. These include direct examination of code qualities, modeling real-world entities, responding to code smells,...
Max Guernsey
A senior consultant for Net Objectives, Inc., Max Guernsey, III, is regularly afforded the opportunity to help teams adopt modern technical practices ranging from test-driven development to modern software design techniques. Max is a veteran software developer with nearly twenty years of experience ranging from internal business applications to shrink-wrap scientific software. In his career, he has helped teams adopt sustainable technical practices and transition to agile processes. A second-generation programmer, educated on the mean streets of Beaverton, OR, Max authored Transition Testing: Cornerstone of Database Agility and Test-Driven Database Development: Unlocking Agility. He is an active indie game developer and a pretend music/lyrics composer.