The Purpose of Software Architecture

A recent task at work involved me reusing a technique that I had used approximately 10 years earlier (reuse of a form with a tightly coupled UI without displaying it).  This has got me thinking back about the various software projects that I have worked on over the years.

The first time I encountered an application with a strong architecture it was a bit of a shock to my system.  It slowed down my development since I had to solve the problem in the manner that would fit the architecture rather than however I felt like (which had been my previous experience).  Once I was familiar with the system my productivity was restored (other than the crazy manual version control process) and the fact that the system had three sub architectures depending upon the module that you were working in.

The purpose of software architecture is to make an application seem as if it has a single consistent author and design.  This speeds future development as a new developer (or user) only has to be shown one part of the system and the rest should behave (where possible) in the same manner. 

The opposite of this is where an application has no architecture and each screen could have been written by a different developer with no reference to their co-workers.  This makes enhancements more difficult as you need to work out the what and how of the screen/module.

Oh and by the way architectures are designed, not architected.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s