If you want to sound really cool in a technology meeting just use the phrase, “anti-pattern” in a sentence. Any modern agile wielding developer will instantly give you attention. There I am revealing a secret to you, like a hypnotic device you can use when working with really smart people. Just say something like, you thing there are any identifiable anti-patterns in our customers process that we can identify? Yup, instant credibility. They will be putty in your hands. So what is an anti-pattern anyway, and why do I bring it up? An anti-pattern is a common thing that people will do to fix an issue, but then actually make everything worse. It is intended to resolve a current problem, but instead, introduces a larger scale issue which slows down your project as a whole. This phrase is commonly used in the software industry, as taking short cuts is a vice that propeller heads seem to be born with, myself included.

A technical wiz would rather spend 8 hours working on how to automate a 5 minute work effort. What they could just get up and do, they will think of how they can automate the process, make it simpler and create intelligence behind it so that they never have to do the 5 minute work effort again. That is what make it fun, and in theory this is a good idea. However, and this is a big issue, when the technical wiz takes 8 hours and builds a process to solve that 5 minute task that actually complicates matters and create more work in the long term than the 5 minute time savings. Gravitation toward complexity is the nature of things it seems, especially when smart people are involved.

However, if you really dive in and start to learn about the type of anti-patterns that exist in the software development life cycle you will discover that many of the big ones apply to our own chaotic and hectic lives! Here are some samples to consider:

Miscommunication – Lack of clear communication between two parties is the chief reason that software projects fail. The anti-pattern is verbal or implied communication that does not make it into the requirements. The solution? Document your communication with others clearly.

Missing Requirements – Another problem that creeps up is that people tend to bypass or be very vague about their requirements, because they do not take the time to identify them clearly. This is a step to conveniently bypass, but always causes problems. The solution? Spend time on clearly identifying requirements, and do not skip that part of your process.

Focusing on the Wrong Thing – When people start working on a lot of things, the get busy and as a consequence start prioritizing the less important tasks. This happens when people get stressed. Happens to programmer’s and any one else. The solution is to establish and set priorities, so that when things inevitably get stressful you can remove the guess work and just focus on the highest priority first. In software circles, classifying backlog is critical, in regular life targeting what is really important to you is just as important.

Premature Optimization – When a programmer first engages in a project there is a tendancy to get real excited about optimizing things. However if done prematurely you can waste a lot of time optimizing things that will produce little efficiency and just waste time. This occurs in everyday life as well. We get excited, spend a ton of time planning the perfect system and then do nothing. The solution is to recognize when you are doing this and stop yourself from investing too much time until after you have engaged with something for more than 100 days. Go buy the new tennis racket after you actually have played tennis for awhile!

Bikeshredding – Getting into fights or making a fuss about inconsequential or trivial things is something every nerd is prone to. However, they do not have a monopoly on this practice, we all do it. So next time you pick a fight, ask yourself if is it worth it.

I could probably think many more, perhaps you can as well. What are the anti patterns that we allow ourselves to fall into?

Guy Reams

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Share the Post:

Recent Blogs

Day 309 – The Price Tag of Automation

The author recounts his frustrating experience with home automation after Google abandoned its Nest architecture, leading him to build his own system. He highlights the significant time and effort required for maintenance and the eventual abandonment of his automation efforts due to the high ‘economic life’ cost. However, with the advent of AI, the cost and effort of automation have decreased, making it more feasible and renewing his interest in deploying future automations.

Read More

Day 308 – Speed is The Champion

This article explores the concept that speed often leads to success in various fields, from business to technology and sports. It argues that systems capable of rapid action, feedback, and adjustment tend to outperform those focused on avoiding errors. The author highlights the importance of fast feedback loops, citing John Boyd’s OODA loop and its application in AI systems. The piece also discusses the speed-accuracy tradeoff, noting that while speed can lead to more mistakes, these are often recoverable, and the compounding effect of rapid learning ultimately drives better results.

Read More

Day 307 – Iterative Could be Insufficient

This article explores the contrast between iterative and linear thinking, highlighting their respective strengths and weaknesses. It argues that while iterative thinking is beneficial in many fields, it can sometimes be an excuse for insufficient upfront planning, and proposes a hybrid approach for more robust decision-making.

Read More

Day 306 – The Zeigarnik Effect

The article explores the psychological relief gained from writing down unfinished tasks and concerns, linking it to the Zeigarnik Effect. It explains how externalizing thoughts through writing can free the mind from constantly remembering and worrying about unresolved issues, allowing for greater mental peace and the ability to conclude the day effectively.

Read More
0
Would love your thoughts, please comment.x
()
x