Wednesday, July 13, 2011

The Analogy Between Construction and IT Application Development Is Still Useful

There is a commonly used analogy in IT to help describe the details of application development where mechanical construction is compared to the construction of an application.  The analogy was more congruent with traditional application engineering, but newer development methods stray more from the analogy (see considerations for the mismatch between agile and waterfall as an example).  However, the analogy is still useful when used correctly.

The Analogy
When application development was heavily focused on big design up front (BDUF) or a large waterfall process, this analogy was a simple method to convey details to external stakeholders and those less involved with the process.  Architects would make statements that compared a building's foundation to constructing a foundation for an application.  Programmers would compare building framing to the application code.  User interface designers would compare paint on the walls to the look and feel of the application.

What is Right, What is Wrong
Taking the analogy literally is wrong.  The right way to use the analogy is to use it as a more familiar way to convey information.  Peers in the IT industry go back and forth on the usefulness of the analogy, but the truth is there is not much of a reason to do so.

An application architect or designer could mention a foundation is needed first in order for the rest of the application to function well.  This idea is true, but peers in IT should understand that the scale may have changed with time.  Perhaps under BDUF the entire foundation would have been created.  Under more iterative processes, a foundation is still created under whatever small functionality is being delivered.

Roles
The roles in both industries can be compared somewhat, but there are some roles that can't.  Architects and engineers can cross over and easily be understood.  Project managers can also compare easily.  Developers in IT mean something different in construction, but a developer in IT can be compared to finish or rough carpentry, or an electrician in construction.  Testers in IT can, perhaps, compare to an inspector in construction.

What roles do we have trouble comparing?  Configuration management doesn't have a direct comparison in construction.

Agile
The analogy is understandably not as easy to apply in all aspects under an agile process.  Building a little at a time, refactoring, and building more is not how you see a house go up.  However, what you didn't see before that house went up across the street were the many prototypes created in AutoCAD or scale models created out of Styrofoam board.  Therefore, the analogy still applies under agile.

No comments:

Post a Comment