Personal tools
You are here: Home Blog Topics Redesign Notes

Redesign Notes

Nov 20, 2007

Re-writing vs. Modifying Software

You may have noticed that the open source release we posted last month was a complete re-write of the code based we published last year.  Not a single line of code was unchanged.  This change wasn’t just due to the change from C++ to Java, but was a result of a decision to completely re-architect, re-design and re-write the Dispersed Storage software. 

 

I’ve spoken a few times with Joe Jablonski of Acumence and others about the merits of re-writing software vs. enhancing an existing code base and Joe and I agree that software development organizations too often make the mistake of continuing to enhance weakening code base vs. re-writing from scratch.

 

I think this misjudgment comes from a fundamental misunderstanding of the nature of modern software development.  Modern software development tools in the hands of capable developers can quickly produce complex software.  (We are using SCRUM as our development methodology, by the way, and have been quite pleased with the results.)  But software development does not just mean the act of writing software.  And the time required to write complex software is not just the time required to type the code.  Completing a complex software development project requires dynamic coordination of requirements definition, architecture, design, development, testing, validation, tuning, and enhancement.  If done correctly, the act of writing code is only a portion of the time and effort required for software development, especially for complex software and especially for a new type of complex software.

 

Our goal in the initial production release of Dispersed Storage software is to create an outstanding software foundation on which we and others can build Dispersed Storage solutions.  The work we did in 2005 and 2006 provided many insights in how to build a Dispersed Storage system and that know-how enabled us around the beginning of this year to know that we needed to re-write our software.  That know-how also included knowing how to proceed toward an outstanding initial production release.

 

Whether we realize that goal will ultimately be determined by market acceptance of our software and specifically whether it provides the reliability, security, performance, scalability, longevity and cost-effectiveness benefits we envision.  But the preliminary results we are seeing now from our re-write over the past year so far exceed last year’s results that we know that re-writing was a necessary step.

 

 

Chris

 

Weblog Authors

cgladwin

Location: Cleversafe Chicago
cgladwin
Chris Gladwin wrote the first Dispersed Storage prototype and is the Founder, President and CEO of Cleversafe, a company commercializing this technology.

jbellanca

Location: Chicago
jbellanca
Cleversafe founder. MIT Graduate, history of working for technology startups. Areas of expertise: product design, interaction design, requirements.

rkennedy

Location: Chicago
rkennedy
VP of Product Management and Strategic Alliances for Cleversafe. Responsible for product management and product marketing and ensuring product roadmap and features meet the demands of the marketplace