When to Rebuild a Software from Scratch?

4 min read

Software development influencer Joel Spolsky specifically forbade rebuilding software from scratch. He called doing so, “the single worst strategic mistake that any software company can make.” That blunder’s disastrousness is evidenced by several historical examples. Those cases are reinforced by an assortment of impressions. These perceptions lead a developer to conclude that he must reconstruct a program from scratch. Yet, an engineer should rarely bulldoze an application and replace it with newly forged software. A programmer should only consider rebuilding a product entirely if he is able to check off the boxes described below. A requirement for recreating an application…...

This article is free to read

Login to read the full article


OR

By subscribing to our main site, you will also be subscribed to DDIntel - our regular letter showcasing our featured articles and applications.

Collin Rusk Since the mid-2000’s, Collin Rusk has worked on a variety of projects, using his interest and expertise in software engineering to develop and/or architect enterprise systems. Business products have unique challenges. Enterprise systems are often complex, and they typically have to be supported for a period of at least a decade. Long support-durations and complexity make shortfalls in software engineering particularly harmful. Those deficiencies can cost an organization hundreds of truckloads of cash. Inadequacies on multiple products allow those amounts to accumulate to destructive levels, an event that Collin has witnessed multiple times. Those events, and his own mistakes, have spurred his interest in software engineering (a distinct concept from programming). Collin has used that interest, and the knowledge gained from it, to move the enterprise systems that he builds in a less destructive direction. Collin has been architecting enterprise software since 2010. He has a B.S. in Management Information Systems from Le Moyne College and an M.S. in Computer Science from Lawrence Technological University. Collin is interested in a variety of subjects. Using those areas, he attempts to augment his software engineering knowledge.