Architecture vs. Engineering

by John 7. October 2009 04:45

Architecture is the big buzz word in the developer community these days. Who doesn't aspire to be an architect. Unfortunately there is too much emphasis on being an architect than on engineering solutions that are efficient and effective. I have a friend that says every application has an architecture the question is did you design it or did it just happen. I tend to agree. These days I describe the development process as engineering a solution, I believe it more effectively describes the process, especially in this world where architecture is over used.

Why do I feel this way? Well as a teenager I was involved in construction, building homes and commercial projects. I was able to observe the people constructing the projects some architect designed. A lot of the time you would hear "that sorry architect didn't think about this or that" and so often the design was "modified" on site. Maybe it was a function of the design being off or too complex but regardless it was modified. I see it a lot in development too. Too much custom work going on in projects to tie everything together. Also it can make estimating projects real difficult. Yeah we have a nice UML model that says this object plugs into that object but when we get to the assembly line we are stuck with a square peg and a hole.

I believe in consistency and uniformity. Everything in the business layer should be designed to look the same, behave the same and expose very similar properties. This solves a lot of problems in the development phase as well in the maintenance phase. As my friend likes to say only about 25% of the cost of the product is in development, the rest is spent on maintenance. Recently I was involved in a large scale development effort and the business layer was really a beast. It seemed like everything was difficult to estimate, implement and maintain. Plus the inconsistencies really became a bottle neck and source of bugs. The next large development process I had control over the data and business layers. I was able to engineer the components to be flexible, generic but type safe and extensible to support all the business entities in the system. The result was a uniform, scalable business layer that is easy to learn yet powerful enough to solve the most complex problems, all with just a handful of core components and a class generator. Engineering was truly the answer.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Software Development

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading



About the authors

Jonathan Pototschnik and John Caldwell are co-founders of Service Autopilot and are currently in the process of growing and marketing their business.

Jonathan is a former developer who's turned his interests toward business and marketing over the last 8 years. He has successfully launched several service industry companies by applying industry recognized best practices.

John Caldwell has over 20 years experience developing leading edge solutions in the decision support, financial and business sectors.

Our product and company sites:
www.backtell.com
www.serviceautopilot.com
www.lawnservicesoftware.com
www.twitter.com/backtell
www.lawncaremillionaire.com

Tag cloud

    Page List

      Disclaimer
      The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

      © Copyright 2010 Beyond Concept