About Markus Sprunck

Markus Sprunck works as senior software engineer and technical lead. In his free time he maintains the site Software Engineering Candies and experiments with different technologies and development paradigms.

Stupid Design Decisions (Part I)

Maybe you know the joke where a young software engineer goes into a bar, puts a green frog on top of the bar counter and the frog says: “Kiss me, I’m an enchanted princess.” The bar keeper is fascinated and recommends the software engineer to kiss the frog. But he just replies “I have no time for a girlfriend and a talking frog is cool!”.

We love cool things, difficult technical puzzles and sometimes challenging bugs. But we should be careful with our motivation if we do technical decisions. I have seen and will see a lot of stupid decisions form engineers and/or managers.

The following list of tree decision anti-pattern is neither complete nor scientifically verifiable, but I think you may recognize some of them in your organization.

1) The Swarm-Foolishness-Design-Decision

Often, a group of humans is not more intelligent than each single team member. I know that this is a provocative statement, but it’s a matter of fact that team dynamic can be a killer of intelligent decisions.

If a group of people discuss a problem and every body’s input is told, it is very likely that the person will get acceptance of the team which is most sure that he/she knows the right solution. People which are convinced that their opinion is the correct solution are so dominant to others, that even people which know it better getting uncertain and just recede from their opinion.

The only way to avoid this pitfall is to believe nothing. Try to find a prove, a sample, some measurement, program spike solutions and/or find reliable case studies. Software Engineering is a discipline that should be founded on knowledge and not on believe.

2) The Manager-Design-Decision

Unfortunately relatively often these people which are perfectly sure that they have the right solution are managers.

A lot of organizations promote people which are self confident and good in solving problems. Over the time these managers lose their technical competence, they just stop to be up-to-date. Some are still convinced that they know everything better than their team members. This can be a great problem, in cases where the manager is fooled into bel

ieving that a manager is automatically a good designer. In the case that your manager permanently over rules the team and makes stupid design decisions, maybe it’s a good idea to find a better manager. Or you could print this article, use a yellow text marker to highlight right paragraph and drop it at the desk of your boss. At least you will have some fun and there is a little chance that he/she will improve.

3) The Big-Mac-Menu-Design-Decision

A Big-Mac is a product with consistent standard of quality in space and time over the past 40 years. Just small variations in nutritional values between countries [1] and almost no variation within a country. But this doesn’t says anything about taste and/or healthiness.

Large organizations tend to have a (big) enterprise architecture department which produces a kind of (big) standard architecture. Independent of the selected technology a standard architecture has usually a lot of overhead (because it should fit for every project in the company) and/or it is outdated before published for the first time.

It can be dangerous to use a standard architecture in inappropriate circumstances and it is difficult to do decide for alternative solutions.

Please, try to courageously raise your voice if the standard architecture doesn’t fit for your task. The enterprise architecture department should work for us and not vice versa.

Reference: Stupid Design Decisions – ‘I have no time for a girlfriend and a talking frog is cool!’ from our JCG partner Markus Sprunck at the Software Engineering Candies blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

Leave a Reply


− 5 = two



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close