Chapter 91. Software Doesn't Really Exist

Chad LaVigne is a solutions architect and technical hired gun for Baltimore-based TEKSystems, Inc. He works primarily in the Minneapolis area designing and implementing solutions utilizing Enterprise Java technologies.

Chad LaVigne
image with no caption

SOFTWARE ENGINEERING IS OFTEN COMPARED to well-established disciplines such as civil engineering. There's a problem with these analogies; unlike the very tangible products created by these traditional practices, software doesn't really exist. Not in the traditional sense anyway. Those of us in the world of ones and zeros aren't constrained by the same physical rules that bind classic engineering paradigms. While applying engineering principles to the software design phase works well, assuming you can implement the design in the same manner used by more traditional engineering approaches is unrealistic.

Both business and software are living, moving entities. Business requirements change rapidly due to things like newly acquired business partners and marketing strategies. This makes it very difficult to approach a software project in the same manner as a traditional engineering pursuit such as bridge construction. It is highly unlikely that you'll be asked to move the location of a bridge halfway through a construction project. However, it is very likely that the acquisition of a business partner will require you to ...

Get 97 Things Every Software Architect Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.