Design Twice, Code Once

If you have ever had the pleasure, or displeasure, of cutting crown molding for a room ceiling, you completely understand the meaning behind the old carpentry saying, of “measure twice, cut once”.  The origins of the saying supposedly come from an English proverb while the Russians had a similar proverb stating to measure seven times and then cut.

Regardless of the origin, the intent is clear; make a plan and verify that plan, before you execute on the plan.  In other words–you’d better be well prepared before venturing into the action.  Poor planning or skipping the planning phase all together will result in loss of time and materials and cause a job to take much longer than expected and with higher costs than anticipated. 

Although software development is new compared to the origins of the saying, the concept applies even more than you might expect.  Practical and purposeful software is developed by looking through different lenses, if you will, to make sure the product accomplishes the goal.  Planning the system on a large scale and understanding how it will integrate with other systems is just as important as how a specific button on a specific screen will look and execute.  The planning process needs to be reviewed both at a macro and micro level, as well as thinking about the technical setup, graphics, simple user interface, and mission accomplishment.

Software code is easy to “throw away” because it can’t be physically held and appreciated in the same way other tangible materials can be.  A pile of miscut boards is easy to identify as spoilage and money wasted.  Discarded code isn’t really seen.  However, the real waste comes with the amount of time it took for a developer to identify the framework, layout the structure, and the time needed to simply write the code needed.  It is this “invisible time” that gets wasted on a software project if things are not properly designed from the outset. As you well know, time equates to money. Has your company lost time and money on an ineffective planning process to update your software solution or are you struggling with a third party vendor that isn’t measuring up?

Capsher’s methodology for software development follows what is typically known as the Agile Approach–with a slight twist. We call the approach we use “Agile with a Purpose”. We take the best practices of sprint planning and combine them with a strategic product roadmap that is continually being developed and broken down into bite-sized levels of success that our implementation team can consume and deliver. We begin with the “end in mind”, make sure we have a healthy design front for our team, and create a product roadmap that breaks down the work into smaller pieces. We avoid “big splash” releases in order to create momentum with smaller, early releases that enable feedback, show progress, and allow for iteration.

Writing code is actually the simplest part of the endeavor. It is the preparation that will provide the results you are looking for. Capsher’s approach to the planning process allows us to “design twice” so we only have to “code once”, saving your company time and money.