Continuing on my building construction and software series…

Today, I took the following picture.

20052008025

Looks like this is a car parking area. As you notice some amount of work is done including the plastering and now, they can start construction on top of this.

For me, this is more like providing a library so that, my consumer can start using the interfaces from my library. But, there are differences.  Look at this picture…

  1. Only what is required for the next phase is completed.
  2. Finishing will be done once the basic structure is completed.

Can we do this when I deliver a library or module?  How much of the work should be done before some one just start using the library and build his/her component?  When do we do the finishing?

Re-usability

That’s when I started thinking about re-usability.  People always compare about building construction and software development.  The comparison is always about predictability of the schedule and design in a building construction.   But, do we ever think of re-using anything from a building when you move on to construct another one?  I think this is true for civil engineering and manufacturing.   All that we use are resources such as men(workers) and machineries.  But, in a software development, the emphasis is on integrating a bunch of components or modules and then spending 80% of the time on fixing integration issues.

More on this later….