Why is it important to have a useful Software Architecture?

February 9, 2011 | By More

All buildings have blueprints before work starts

The problem with software is that it is invisible – virtual and intangible.

How do you know when it is complete?   How do you know there are problems not being addressed until the whole system is put together – when a small issue can become the cause of a big delay in the whole business plan?  Even worse – how do you know if one that works is badly designed?

Software design is unlike designing and constructing a building where there are architectural drawings and mock-ups even before a single brick is laid. During construction, one can see the framework being put together starting with the foundations, columns, walls, roof, plumbing, wiring and so on. Glass windows and ceiling tiles are put in before the lights. All plugs and switches will need to be in place before the wall is plastered and painted.

Every contractor clearly has a role and a job and knows when their part needs to start and be completed. It is always fascinating to watch a construction site because it is a hive of activity – looks random but gradually the building takes shape. The project manager (PM), a key person in the construction, coordinates everyone and every activity.

The project manager ensures the building is constructed according to the blueprint

So, can software be managed more effectively? — Yes.

Practically all software engineers know about SDLC, the Software (or Systems) Development Life Cycle – the methodologies for planning and managing the software design process. This is not unlike the Project Management practices for the project manager (PM) at a construction site. Both methodologies describe how to manage the project, but does not describe what is being built. The construction PM has an Architectural Blueprint of the building while the software PM will be lucky if he has a napkin with some drawings of boxes!

What the software PM needs is a Software Architecture of the system being designed – not unlike a building architectural blueprint.

Like a building Architectural Blueprint, the software Architectural Diagram provides a bird’s eye view of the key functional components of the software system. With sufficient level of detail on the Software Architecture, the PM will be able to:

  1. Describe what the overall system consists of and how the components need to be put together;
  2. Communicate to all engineers what needs to be done and what each of them is responsible for and what are the interdependencies;
  3. Explain to the business and marketing teams what functions will be available and when.

Software architecture for a traffic controlling system

With the Architectural Blueprint, the software PM should then be able to more clearly identify what software components are needed and how to assign engineering resources just like the construction PM did.

Related Posts Plugin for WordPress, Blogger...

Tags: ,

Category: Developing your product, What's Next?

Error: Unable to create directory uploads/2017/10. Is its parent directory writable by the server?

About the Author ()

EngTong, pioneer and innovator. Graduated from Imperial College London with an MBA from Cranfield School of Management. Lived in Scotland, England, California, Beijing and led teams in Italy, France, Japan, Taiwan and Malaysia to do the impossible. Now based in Singapore and believes the future is to blend the sophistication of western management practices with the strength of Asian Values. Trained as a Chartered Engineer. Member of IET, Associate of City and Guilds and a certified SixSigma Champion.

Comments (2)

Trackback URL | Comments RSS Feed

  1. A Arthur Lau says:

    I would think that when a PM is under pressure he would cut corners to ensure timely deliverables without going through the important part of meticulous documentation for the software that they are building. This is especially critical when a program bug occurs and a quick and dirty approach is to take steps to circumvent it rather than find the root cause. On a practical aspect my laptop is so over-loaded with files which I should have deleted it long time but nevertheless did not find the time to do it, until its performance has deteriorated to such an extent that I need to take it to a computer shop to have it ‘re-booted’.

    • Error: Unable to create directory uploads/2017/10. Is its parent directory writable by the server? ET says:

      Absolutely right – so it is imperative to have a kind of ‘map’ (i.e. architectural diagram) before the pressure starts. Too often the inexperienced project engineer or manager rush in to code when it is better to sit back and plan first. They think they do not have time to do it right at the beginning but little do they realise they most probably have to make time later to do it again! That principle, unfortunately cannot help you with housecleaning your laptop 🙂