17 Mar 2017 by mallyanitin
It’s taught & preached. Make wise choices. Left-right look, Prediction, analytics, …
Architect’s have an interesting job of making choices. They could use intuitive thinking, logical thinking, critical thinking or design thinking.
While making choices, it’s common to choose a trending technology or a trending pattern. Developers want it, managers can hire people who want to build it, and you could become an expert at the use of this shiny new thing, and would be a good thing to put on your resume. Everyone wants new. Until the promise of value fails. It’s then a ‘Pivot’.
Pugh matrix’s can be gamed by changing the weights. There is influence of the environment, corporate, community & industry on the choices; and this process is influenced by feelings/sentiments and not only data. Like Wall street or Nifty! A successful architect is deemed to be credible, and the choices made by him/her, or a recommendation coming from him/her, could become significant. A successful business relationship between your company and a partner, could become significant. Biased by design.
Also, given the explosion of technology choices and patterns, its difficult to keep track of the changes, direction, and value proposition of all such stuff. This is just the side effect of innovation and industrialization. Multiple choices results in commoditization, and drives down the costs.
Example: Smalltalk vs. Java. You have to know both to compare, and as a result you could land up in the Smalltalk camp or Java. Smalltalk is very powerful, and early adopter of ideas, and adopted in the academic circles. However, Java has been more prominent in commercial circles. So, how do you make a choice?
One way is to ignore, and become lazy, and procrastinate. Since, anything in this world can be justified, you could say that this choice is not architecturally relevant, and adopt the polyglot trend. Alternatively, you can criticize (or critically appreciate) the adoption of polyglot, collect data to show the perils of doing so, and drive a corporate initiative to standardize (naming, blaming, shaming to drive compliance to standardization).
Sometimes, if your choice is not an industry consensus or trend, the environment (managers, consultants, developers) will be pushing back on you to adopt (Mr. Architect, you should take some risks! *)
*at your own risk
Since, architecture is about making choices and defining a structure, two architects could come up with two different (but similar) architectures. Each one can claim that their choices are data driven, time tested, and the best for the business.
So, how to make this work?
The only thing that I have seen “work” is to have “one” decision maker (not necessarily by hierarchy) for a choice. The decision maker is free to change decision downstream without being killed (named, shamed, ousted, …). The decision maker should not be continually influenced (or threatened), but informed. The decision maker could be the person doing the work to make a choice, or collecting inputs from various experts to make a choice. People who disagree with the decision, should have an open environment to disagree, provide inputs, challenge the status-quo. This holds true for those up in the hierarchy, or down in the hierarchy, or sideways in the hierarchy. In all cases, once a decision is made, the team/organization should support & pursue. This is culture.
In general, people are good. They like to make the business successful. Hence, they like to make decisions using intuitive, logical, analytical, or critical thinking. Culture, will get all the pieces to fit gradually.
Therefore, there should be only one architect for a choice. Make a decision, move on. If it’s wrong, talk about it and fix it. If it’s right, talk about it, adopt as best practice.