Eliminating Duplication

Build an App, Episode 4

By Corey Haines

50 minAug 2013

"Duplication is the root of all evil!" is a phrase we certainly hear a lot in software development. This is a bit harsh and over-the-top, of course, but it definitely is something we want to keep watch on. Eliminating duplication when we find it, early on in our lifecycle, is a good technique to master. It makes our software more accepting to change in the future, especially change we aren't able to anticipate.

Through our previous episodes, we allowed a bit of duplication to spread regarding the states that a coderetreat can be in. If we let this go on for much longer, it will become much more difficult later to change them. It is time to put our foot down and remove this duplication. When working on a new system, timing is the key and we won't wait any long to address this cleanup task.

In this episode, we'll take a break from adding new features and focus our attention at the concept of duplication, specifically the duplication of knowledge around the statuses of the coderetreats. We'll discuss the different types, and then investigate two different methods for eliminating it by isolating the knowledge it represents: an outside-in, wishful-thinking approach; and, an inside-out, pull-down approach. By the end of the episode, we'll have a central location in our system that contains this information.

And, of course, there is a lot of coding. The results of this episode's coding is in the git repo up on github.

Once you purchase the episode, send an email to Corey and get an invite to the "Discuss BAWCH" mailing list.

If you've missed any of the first 3 episodes, check them out here: