DEV Community

Cover image for My solution is the best!
John Hotterbeekx
John Hotterbeekx

Posted on

My solution is the best!

A few days ago I was watching a keynote speaker talk about architecture. It was an interesting talk, he had a good concept and the idea definitely made a lot of sense. I didn't really like the presenter, which can happen, but that usually doesn't remove any credit from the content. Only this time it did, at least for me.

What happened?

Most of the presentation was pretty good, there were great examples in there and he really knew his stuff. But where he went completely wrong for me is the way he talked about other solutions and techniques. Calling them crappy platforms, telling people they should probably quit if they still use this, calling certain ways of doing things for hipsters, calling methodologies that are being used for years 'big mistakes'. You probably catch my drift by now, there were quite a lot of examples of these things during the presentation. So while the content was good, the way he treated other techniques actually made me lose complete respect of it. While this example is a little extreme, it got me thinking, why makes a lot of us treat our solution as the best, while talking bad about other solutions?

Mine is better!

What causes this behavior?

We have a huge choice in techniques we can use for our work, and most of us will probably recognize the feeling of thinking the one we chose is the best. This feeling is completely natural, a part of human nature and it reflects the passion we have for the subject or the choice. While right after you chose a certain technique you might feel somewhat insecure about it, once you are familiar with it, this feeling usually gets replaced by the feeling of passion. If you talk with others and pay attention to yourself, you'll notice that you will be defending this choice quite passionately. So you go from having doubts to thinking it's the best you have ever seen, seems a little weird right? Don't worry, there is absolutely nothing wrong with you, you are just human.

Open yourself up

Who hasn't landed in a discussion about Windows being better than Linux, IOS being better than Android, React being better then Angular? We all did, we all still do and probably will do for a long time. While I'm not saying to just give up on these discussions, try and open yourself up a little. Try and place yourself in the shoes of other people, see how this might work for them and try and accept that we don't know everything and other solutions might work just as good and maybe even better. It seems very easy for us to judge something without actually having worked with it, and I think this all comes from that passionate human nature we have. But try and be aware of this nature and maybe next time try something or hear somebody out first before judging. The thought that I find very helpful for this is; "If a lot of people are using it, it has to be good in some way".

There is no best solution

When talking about this subject, one thing that tends to come up is that each language, framework or other technical solution has a purpose for a different situation. I don't think that is true. There is no "best" solution for a situation, at best there are some good solutions. Our possibilities in software engineering are just too big, solutions are too widely used, this makes the situations where there is one real best solution almost extinct. I even think that the more you learn about different technologies, the more you discover that they are a lot more similar at the core then you might think.

Different roads

What can we change?

Now looking back at the presentation, what could he have done differently? It's actually very simple, he could've just not said anything about these things. They added zero value to the presentation. And if his goal was making it funny, just try and add a joke, or at least say something that isn't at the expense of others. Imaging the presentation this way actually sparks a light of enthusiasm and inspiration about the actual subject he was presenting, which I think would be the goal he'd want to reach with it.

When looking at our day to day work,you could start by trying to be aware of this, since awareness is key to bettering yourself. Like I said before, don't be judgmental on techniques and solutions but try and look at it from a more logical or rational standpoint. You'll notice that if you are more accepting to the choices of others and are able to acknowledge your lack of knowledge about the subject, others will tend to open up as well and you'll actually learn a lot more from it.

I'd love to end this article on a positive note and with that I'd like to ask you to try and treat others with respect, you don't need to put others down to add value to your own idea. Your vision, your idea, your opinion is worth sharing and is strong enough to stand on it's own!

<br>
Share your ideas!

Latest comments (31)

Collapse
 
mark_nicol profile image
Mark Nicol

You capture very nicely the idea of both respect for other people and their choice and also the distinction between 'best' and a 'rightness of fit'. It was a lovely inspiring morning read.

It makes me want to learn more about the technologies that I don't understand the problems they solve and how that is similar or different to the ones I'm more familiar with.

Collapse
 
camto profile image
Benjamin Philippe Applegate
DEUS DEUS DEUS DEUS DEUS DEUS
VULT VULT VULT VULT VULT VULT
Collapse
 
dandevri profile image
Danny de Vries

I even think that the more you learn about different technologies, the more you discover that they are a lot more similar at the core then you might think.

This a 100x times!

Collapse
 
milkstarz profile image
malik • Edited

I totally agree on this!

Something that made me appreciate other people's decisions was pairing more with developers at work.

At first I would get slightly irked because it wasn't the exact solution I was thinking of - but after stepping back and understanding why they did it that way, it made more sense.

I definitely think that some people that are "thought leaders" in the community have times where they unintentionally do this.

Love the point you made about human nature - I 100% agree with you there. :)

Collapse
 
msbasssinger profile image
Jeff Jones

Actually, there is a "best" solution if there exists a solution to a given problem domain. While there is rarely, if ever, a universally best solution, "best" for a given project is knowable. That is why we have value engineering.

There are 1 to n acceptable solutions based on how much of the ideal value the customer wants. 1 to n solutions may deliver (just to pick some illustrative numbers) 85% to 90% of the ideal value, while the best solution may deliver 95% to 100% of the ideal value. Sometimes 85% is enough. Many times, especially where excellence is one of the goals, nothing short of 95% will be acceptable.

Pardon the pun, but never underestimate the value of value engineering.

Collapse
 
imben1109 profile image
Ben

No best solution, but most suitable solution.

My question is how can we select a suitable solution?

Collapse
 
phlash profile image
Phil Ashby • Edited

If possible my team like to 'suck it and see', that is, try a few solutions on the problem for real, especially the difficult bits (eg: hard performance boundaries, working integrations, better UX - measurable things) to the point where the team can identify the crappy bits and how to live with them, the possible gains in our productivity or customer experience, the possible costs and the shape of the learning curve.

Often we end up choosing something less obvious than our original suggestions (pop quiz: choose a static source analysis tool!), as we discover more about our own use case too. A great example of this can be found in the rendering algorithms in Quake - skip down to the end of this chapter and find "an idea that did work" :) bluesnews.com/abrash/chap69.shtml

Collapse
 
jhotterbeekx profile image
John Hotterbeekx

I think there are many ways to a suitable, and even great solution. Although the greatest ones might experience, this can be the experience you gather during a career, but also trying things out when you are not sure. All in all I think being able to find a suitable solution is one of the most important aspects of being a professional software developer.

Collapse
 
entrptaher profile image
Md Abu Taher

There is a saying in our country.

(In Bengali: ) বিচার মানি তালগাছ আমার
(Literal English: ) I accept the judgement but own the Palmtree.

... which basically says that he actually doesn't care what the other person is saying and he is right after all no matter what.

That is what is going on with the society right now.

Collapse
 
sudiukil profile image
Quentin Sonrel

Yeah but Vim is still the best editor.

(sorry, I had to 😉)

Collapse
 
spreech profile image
Sam Foot • Edited

This post really resonates with me what I see day to day. The constant attacks from 'pros' trying to tell people what languages and frameworks to use because they have chosen that specific stack.

My opinion: Pick the framework/language you'd prefer that meets the needs of the client and is well supported and you will have made the best decision for everyone.

Collapse
 
vijaykhatri96 profile image
Vijay Singh Khatri

As per my point, A person who faces the challenges and struggles in those situations have the best solution. Every person have their own perception and own thinking level so we cannot predict that is this the right option or not?

Yes, @John I agree with your point if one who can not get the solution by their own way then he/she can look for other way and what they can, They can change their plan and execution by another way which they think he can get the result.

Collapse
 
bennypowers profile image
Benny Powers 🇮🇱🇨🇦

I agree 100%, all solutions should be considered, especially the ones that I'm recommending :D

But seriously, A little light-hearted shop-talk can be nice between friends or friendly coworkers, and when used right can improve the mood at work. When the foreman shows up to the constuction site in the morning and the crew are all joking around, joining in on the fun brings the team together. The wise foreman knows how to bring them back around to serious business though before starting the days work.

It's critical to know when to knock it off. If it's crunch time in the engineering department, or a deadline was passed without shipping, or a bad mystery bug showed up in production, that is NOT the time to start bashing your coworker's favourite language/tool/platform/houseplant. Certainly not on the conference stage.

Thanks for writing about this topic!

Collapse
 
jhotterbeekx profile image
John Hotterbeekx • Edited

Absolutely, I'm not talking about having fun with friends or coworkers. The situations that I'm trying to make people aware of is when they are having a technical discussion, and even more when teaching other people. And even then, you shouldn't try and change yourself completely, that passion is a crucial part of liking your work. The one thing I hope to get from this is that you'll be a little more aware of it and find a balance that matches who you want to be as a professional and a person.

Collapse
 
thomasjunkos profile image
Thomas Junkツ

I would like to disagree. Not on the whole, because your point is about respect and not choice of solutions. In that respect I fully agree.

But you subtly mixed two points:
From a global point of view there might be no uber-solution which is best in all respects, but given a concrete situation and a fixed set of criteria, there might be a best in that respect, that one solution fits best into your requirements.

Why am I pointing that out? Because one could get the impression that when there is no best solution choice doesn't matter. Not that you are implying this, but you do not exclude this way of reading.

Being long enough in the industry, people realize not only that there is no best, but that there are a lot of crappy solutions mostly differing in the way they are broken. But that doesn't mean that there is never a best fit for your requirements.

Collapse
 
jhotterbeekx profile image
John Hotterbeekx

I like the way you look at this and the idea that choice doesn't matter is a different extreme that may even be a lot more dangerous. As with everything the key for these things is balance. I love your additional insight, thanks!

Collapse
 
computersmiths profile image
ComputerSmiths

While some tools are better than others for some tasks (I had a roommate who was trying to build a text editor in Basic) there are a number of ways of performing any task, and most of the time “ the tool I know” is better than “the most optimal solution” because the learning curve is an investment I’ve already made.

Collapse
 
mtallerico1 profile image
Mike Tallerico

Agreed! For someone new to this industry I appreciate your view point. Everyone has an opinion and a preference. Thanks!

Collapse
 
dbelyaeff profile image
Dmitriy Belyaev

Totally agree with post author.

There is no «best» tool, language or OS. All of them are different, each has it pros and cons.

It's not tolerant to prove everyone that technology that smbdy use is better than others.