TechDays Day I – Architecture: The good, the bad and the ugly
Posted by admin on March 10th, 2009I was a little bit too late for this session, but I did manage to grab the most important things. The presentation began with a lot of antipatterns and then followed with good patterns. Most of the things were rather obvious. A really funny thing was an example of the MSSQL database behind one of the first versions of SharePoint. There were like hundreds of tables with absolutely no relationships between them. Instead they created some 500 stored procedures that needed to take care of the integrity of the database… Guess there are also ‘disaster developers’ working for Microsoft.
Anti patterns
McKinsey Syndrome
- We know it all, we don’t nee to listen…
- They don’t know what they really want…
- Just a cookie-cutting re-delivery…
Opposite Anti-pattern: Obedient Butler
Napkin Doodle
- It was so straight-forward requirement…
- We agreed on all req’s during lunch…
- Light projects don’t need heavy process…
Opposite Anti-pattern: Documentation Overkill
Measure abuse
- Each req must have success metrics…
- If you can’t measure it, it is not there…
- We need binary criteria of achievement…
Opposite Anti-pattern: Softie-softie
Start small, grow fast
- Just for couple of users first…
- Prototype, patch-up, deploy…
- We’ll add scalability later…
Opposite Anti-pattern: Let’s Go Global NOW!
Best-of-breed
- All the best tools (best database, best webserver, …) but no communications beween them…
Opposite Anti-pattern: Vendor Lock-in
YAGNI (You Ain’t Gonna Need It)
- I’m sure nobody needs this requirement…
- I bet this one is totally irelevant…
- Too low on priority list…
Opposite Anti-pattern: Analysis Paralysis
Reinventing the wheel
- We can do it better. Much better…
- It would be boring to re-use the old stuff!
- I trust my code and my code only.
Opposite Anti-pattern: Golden Hammer (One thing that solves everything… everything must be a nail…)
Sales-driven Design
- We sold it, you just implement it…
- Trust me, I’m technical too…
- Does it work? Shut-up then…
Opposite Anti-pattern: Technological Purity
YAFL (Yet Another Fine Layer)
- Architecture is simplicity, not intellectual violence
Good patterns
- Modularity (degrees of freedom)
- Open-ended systems (specific vs generic). Move from Application-Specific (solution) to General-Purpose (Infrastructure)
- Build to grow (Wu Wei)
- Identifier, Format and Protocol (back to the roots)
- Middle-out Architecture (Wide range of implementations, Minimal Spec and Wide range of uses)
- Poor-man Application Model
- Web-Oriented Architecture
- Lines matter more than boxes (Protocals are inherently stable, applications are not)
- Dependency Inversion (Fold knowledge into data so program logic can be stupid and robust, What needs to be easy to understand and change goes into data, What will be stable goes into code). Data should depend on code, Code should not depend on data.
- New-age development with MetaData and Model-Driven Design
- Virtual worlds, virtual rules
Recent Comments