Better Software West 2017 Concurrent Session - Six Ways to Improve Class Design for Better Software | TechWell

Conference archive


Thursday, June 8, 2017 - 11:30am to 12:30pm

Six Ways to Improve Class Design for Better Software

Add to calendar

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, commonality-variability analysis, examining name-ability, and listening to feedback from your tests. Max explains there are many ways to decompose classes—some effective, many not. Leave with a “toolbelt” and new tools for breaking big, intractable classes down into many small and implementable ones.

Max Guernsey
Net Objectives

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.