• Shaun Anderson

The Anti-Architect. Common behaviors in the software industry and why they are bad.

Updated: Apr 3, 2019

The following behaviors are common among in the software industry and are especially common among people with the title: System Architect II


Premature Optimization

This behavior manifests in people who insist on solving performance “problems” that may not exist yet. The combination of Agile methodology, microservices and cloud deployment often minimizes the need to plan for optimizations up front. Caching, scaling, etc can be added as needed later. Premature Optimization is curable with a hefty dose of trust, patience and by thinking about baseball.


Premature Solutioning

Similar to PO, PS often is displayed by people who like to follow RDD (Resume Driven Development) A good architecture should fall out of context organically -- forcing a solution will often lead to overly complex solutions that stray from the true business value of the system. It also forces constraints and can lead to Televangelizing.


Silver Bulleting

This is the idea that one technology or pattern will solve world hunger. “Microservices will fix all yer problems!” or “Dude, we need to use CQRS! That will make it all better!” Silver Bulleting is often the fallacy that leads to Premature Solutioning.


Televangelizing

Ivory Tower architects love to televangelize their often unsubstantiated, theoretical solutions. Architecture Televangelists often swoop in, thump their Kent Beck, Martin Fowler and Vernon Vaughn books, then fly off into the sunset on their G4s. Since no practical examples, reasons or discussions are given, the development team is left to question their own observations. Televangelizing also frequently leads to Smugging and tribal formation. Sometimes this takes the form of “She must be right because she is so passionate about it!”


Barrel Riding

Barrel Riders cling to the notion that everything must involve a waterfall process. Although Barrel Riders are shown repeatedly how the the wood and metal their barrel is composed of can be simply, quickly and effectively rearranged into a productive agile framework, they revert back to what is comfortable. Being in a safe barrel heading toward the abyss.


Smugging

Smuggers are a pharisaical, self righteous group of resources. Smugging often involves Televangelizing. Smuggers stifle innovation, create division among the team and lead to confusion and resentment. They are typically closed to new ideas.


False Dilemaizing

If we don’t move to microservices by next week, we’ll all die! False Dilemaizing is often used as a justification for Silver Bulleting and Premature Solutioning


Slippery Sloping

Either using a theoretical slippery slope assumption to justify a (usually premature) solution or optimization or the result of a premature optimization or solution.

Example for the former: “We need to utilize Eureka service registration for each and every service and Ribbon for any service consumers or your system will never be reachable by any other service and you will never be able to reach any other service and this whole thing will fail....”

Result showing the latter: This excuse for premature solutioning eliminates other possible solutions such as load balancing by the container control plane, implies a reference solution that will be mimicked by other teams (for no good reason) and over complexifies the system (introduces unnecessary complexity).


Bandwagoning

All on board a particular idea without a good reason. No real firm opinion other than “it sounds good to me because everyone else on on the interwebs thinks it’s wonderful.” This tactic is common among advertisers and software sales people. “If you want to be like Mike (Jordan), you’d better eat your Wheaties.” “Drink Gatorade because that’s what all the professional athletes do to stay hydrated.” “McDonald’s has served over 99 billion, so you should let them serve you too.” The form of this argument often looks like this: “Many people do or think X, so you ought to do or think X too.”

One problem with this kind of reasoning is that the broad acceptance of some claim or action is not always a good indication that the acceptance is justified. People can be mistaken, confused, deceived, or even willfully irrational. And when people act together, sometimes they become even more foolish — i.e., “mob mentality.” People can be quite gullible, and this fact doesn’t suddenly change when applied to large groups.


White Rabbiting

Details. Oh look, more details. Cool, some more details down this hole. Oooh that leads to more holes.

I don’t have ADD I… oh look! A squirrel!

Some of the bandwagoning text taken from 15 Logical Fallacies You Should Know Before Getting Into a Debate

#softwarearchitecture #distributedsystems #anti-patterns



996 views
 

©2019 - 2020 by Shaun Anderson