Thanks to John Donnelly for this post. John worked in the psychometrics, ERP, sports and consultancy fields with roles in systems management, software development, architecture and team leadership before finding a place here with us as an Architect Evangelist in the Microsoft Technology Centre. Follow John on Twitter and find him on LinkedIn.
Lazy comedians pick up New Year resolutions every year as something self-centered (I will …) and boring (… give up alcohol) with a life expectancy in days (off the wagon by the end of Jan). This year we should all do something that will benefit both ourselves and our co-workers, and that you can pick up again throughout the year.
In the last year I’ve seen a couple of organisations with the same ‘best practice’ based architecture. They had layered their application into storage system/data access layer/business model layer/presentation layer. They had also applied service oriented architecture, exposing the data access layer as a service with an http endpoint. Asked why, both eventually came down to ‘it is best practice’.
The net effect of these two architectures used together in this way was to reduce security (minimally secured http endpoint for the database), increase latency (additional http hop for the data access), increase infrastructure costs (more servers, each with their own headroom) and to increase management complexity (harder to tell which element of the system is overloading).
An involved development manager could have stopped this. An involved IT Pro could have stopped this.
This year we should start treating best practice as any other design pattern. Design patterns are typified by Intent, Motivation, Applicability and Consequences.
Next time you’re doing something because it is best practice, ask what is the intent of the practice, what motivated it, is it applicable here, and what are the consequences?
Wishing you a really inquisitive New Year.