Software architecture is not a three-layer diagram -- UI/Business logic/Data. As an architect, you need to consider the project/solution at hand from a lot of different angles and take care for all sorts of concerns from the technical, team, managerial, and event esoteric ones.

InformationWeek Staff, Contributor

August 31, 2008

2 Min Read

Software architecture is not a three-layer diagram -- UI/Business logic/Data. As an architect, you need to consider the project/solution at hand from a lot of different angles and take care for all sorts of concerns from the technical, team, managerial, and event esoteric ones.

  • Technical- you need to consider things like threading models, data flow data structure, testability, security , user interface. A solution is only as strong as its weakest link. If the UI is great but the system is not stable, you will fail. If the system scales well but the security is flawed,  you will fail.

  • Team - You have to understand the limitations and capabilities of your teams and thier structure. If everybody knows Cobol, maybe Rails is not a good option. if the teams are spread out geographically, you need to make sure you partition the system into chunks that will allow them to progress independently as possible.

  • Managerial - brings to the forefront things like "What's the budget for the project?", "How much time do we have?" so can you really plan on using a rule engine if it eats 80% of your budget (maybe ?). Can you plan a cool piece of infrastructure if it will take four months to build?

  • Esoteric - Sometimes you even need to consider the less than common stuff. There aren't general examples here since its, well, esoteric. A couple of examples I've seen include a project where we had to see how much power the hardware we use needs (since it was to be deployed on a truck) or on another project where we designed a multi-monitor UI we had to figure out if it is better to design the UI for side-by-side or one atop the other

You should note that most probably you will not be able to be master of all the needed domains. you do need to be aware that they exist and work with other experts to cover the other bases of the solution.

Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.

You May Also Like


More Insights