[MS Techday 2009] Summary “Architectures: The Good, the bad and the ugly” Miha Kralj
What is architecture?
Architecture is about models and all models are flawed but some are useful i.e. patterns & anti-patterns.
What about architects?
The arrogant Architects suffer from the McKinsey Syndrome:
- We know it all, we don’t need to listen.
- They don’t know what they really want.
- Just a cookie-cutting redelivery.
How much architecture?
A rule of thumb says 1 page of functional requirements results in 4 pages of technical requirements.
Measuring results!
Measure results to avoid a softie-softie approach i.e. the project is finished when the customer is happy.
What about home-grown application?
Avoid them! The bosses?nephew has built something your boss likes so it must be installed as enterprise product.
What about scalability, security … ? If you don’t think about these things upfront they are a nightmare to add lather on.
Only the best is good enough!
The best-of-breed:
- The best DB is from Oracle
- The best directory is from Novel
- The best distributed transaction manager is from IBM
The problem is how to get all those best-of-breeds to integrate?
The anti-pattern is vendor lock-in: buying everything from the same supplier.
Not invented here!
We can do it better syndrome. Maybe an out-of-the-box product is just good enough!
The anti-pattern is called the Golden Hammer. Use the same product in every occasion were it remotely seams applicable: just whack it with the same architecture. We have created this nice enterprise library and now we going to use it everywhere.
Skills of an Architect
Skilled Architects are capable of dealing with ambiguity and uncertainty. They also require a good set of communication skills: listen & talk to peers, to engineers ?IT pro? ?Developers and to the higher hierarchy in an organization.
The Best Architecture versus The Right Architecture
The best architecture is a dream. It is better to be approximately right then working on the ultimate system that never gets delivered. The focus must be on implementable architecture and not a theoretic pleasing architecture. Focus on pragmatism. Architecture is simplicity not intellectual violence.
Wei & Wu Wei!
Uh, what ?!? Make and Not Make. Build something to specifications, nothing more nothing less. But also build something that can grow.
Middle-Out Architecture
This means a layered architecture following the hour-glass representation: a lot of possible uses on the top and a wide range of implementations at the bottom going through a minimalistic interface in the middle results in a timeless architecture.
If you look at some of the thriving business models of the last decennia, they all follow the middle-out architecture model. For example Amazon.Com: in the middle you have AWS or Amazon Web Services opening up access to everyone that wants to integrate with Amazon. Same for live.com with the live api sitting in the middle.
Strategic Thinking Think about why something is done and not only about how it can be done! Be architects and not only engineers! In the future architects can play 3 roles:
- You can change the world!
- You can watch the world changing!
- You can wake up surprised that the world changed overnight!
Another summary you’ll find at https://community.dynamics.com/blogs/navigateintosuccess/comments/10162.aspx