Architecture definition: building design, building style and structuring a computer system.

First, we have to recognize the differences between a simple and a complex design. What to expect in a good architecture: the “ities” (Reliability, Maintainability, Scalability, etc.). Make it easy for developers to make the right decisions by default…build an architecture that makes it easy for a developer to fall into the pit of success.

Good architects understand, reassess and explore. They understand goals that back up the “ities” and they understand the constraints (money, time, resources, domain, ability of the team) that can work against those goals.

Goals – changing business climate changes goals; same with constraints. You constantly have to reassess and adapt to these changes. An architect needs to explore…understand the viability of new technologies to fit the needs of current systems at least to a 2-sentence story. If you can’t explain that to your boss, he may consider talking the IBM Rep. (Websphere wise-crack…LOL).

In summary, architecture is an explicit action, if you don’t do it, it will be defined implicitly for you! It represents a higher perspective and defines a style for the system, and lastly defer decisions to the last reasonable minute, but not forever!

Very good talk and recommend taking a look at the slides for more details. As a solution architect, I think I do some of these things but I certainly will fine-tune my own approach based on what I learned here…Bravo!

Post navigation

Hi, I'm a Solutions Architect for a major Telecom company. I design and develop software solutions leveraging several Java and JavaScript based platforms including ExtJS, Node.js, Spring, etc. I am also experienced using relational and NoSQL database solutions like MongoDB. I help evangelize Rich Internet Applications and open source technologies in Web application development, Web services, search, and developer collaboration. I graduated from the University of Michigan with a M.S. in Computer Science.
Note these views are my personal views and do not necessarily reflect the views of my employer. All code on this site is licensed under BSD.