
Overthinking it and the value of simple solutions (2019) - UkiahSmith
https://korecki.me/blog/2019/10/8/overthinking-it-and-the-value-of-simple-solutions
======
uk_programmer
I shudder to think about the amount of man hours wasted on a relatively simple
website that has been completely over-engineered with the likes of React
and/or Angular JS when a simple server side MVC framework and a bit of jQuery
could have sufficed.

The industry is rife with people that instead of looking at a problem and
choosing the appropriate tech to solve the problem. They choose the technology
and then try to solve a problem with it.

~~~
arethuza
While not disagreeing with your point, it is also worth noting that in some
contexts developers are regarded as unemployable if they don't have experience
with whatever the latest technology is so it is hardly surprising that people
use every opportunity they can to get exposure to the latest tools.

'Modern' hiring practises cause a _lot_ of problems.

~~~
Ididntdothis
That’s a real problem. I feel that me and my team have done serious damage to
our resumes by solving the last few projects in a simple and straightforward
way. Instead we should have done cloud, containers, React and whatever even if
it made the solution very complex. This became really clear a few months ago
when management two layers up gave one of our projects to another company who
will move it to AWS. There were already plans for the transition and we said
we could do it easily but the director decided that we have no experience and
can’t do it.

My advice now is to always jump on the latest trend. It may make no sense for
the business but it makes total sense for the devs. In many companies doing
what’s right for the business will impede your career.

~~~
collyw
Do you think this is the reason for some of the supposed ageism in the
industry?

I have been doing this for 17 years and I prefer server side rendering and
jQuery to React / Angular plus some REST API I know it will take around half
the code, and will be easier to debug and maintain. It doesn't make my CV look
good though.

------
cryptica
Sometimes it requires a lot of thinking to come up with simple solutions.

Usually you need to consider a lot of alternative solutions in order to come
up with the simplest solution and that takes time and a lot of thinking and a
deep understanding of the requirements.

When I start a new complex project, in the early stages, there are entire days
where I'm just thinking about stuff without writing any code. Then as the
project moves forward, I spend less and less time thinking about things until
I get to a point where it feels like the code pretty much writes itself
because the design is aligned with my original goals.

You just have to be very clear about what your big goals are and where you're
going to need flexibility from the beginning.

~~~
jariel
Came here to validate that.

"Overthink it' first, and then smooth it down to its essential simplicity" is
usually the process.

FYI the reason I don't like the musical analogy is because in that scenario,
the tooling can easily overwhelm the creative process. You get caught up in
the tools and literally never think about the problem.

I suppose a software analogy be might be using 1000x various frameworks to try
to do something: you'd never get past the frameworks.

------
rainforest
I think it's too easy to be sucked in by the promise of distributed X or
eventually consistent Y.

In the past I managed migration of a few services away from Hazelcast as the
team started peeling away the nice abstractions they'd become used to so they
could handle things they hoped it would protect them from. All of a sudden a
distributed lock isn't a lock if your cluster splits.

In the end almost everything ended up back in Postgres. Resistance was
surprising - there was a lot of opposition to simple things due to a fear that
the database would be harmed by being used to hold a few row locks, for
example.

I can see why people overlook the obvious when the complicated solutions seem
more sophisticated, which is easy to mistake for "better".

~~~
pjc50
> I can see why people overlook the obvious when the complicated solutions
> seem more sophisticated, which is easy to mistake for "better".

Replacing a known solution with known limitations with a new, unknown solution
which has no known limitations!

(... which means that there are limitations, you just don't know where they
are.)

------
happywolf
A lot of technologies are getting way more complex and confusing than
necessary. Just look at the market of time management. Tonnes of tools,
software, coaches, websites, books, etc. You name it.

I recently found out that a simple .txt file serves me exceptionally well (a
good IDE plugin definitely helps, too!). No more messy software, apps,
journals, etc. which I feel are making my time management tasks even more
challenging.

~~~
jsilence
But org-mode!

Sorry, someone had to do it!

------
oftenwrong
[https://boringtechnology.club/](https://boringtechnology.club/)

~~~
c-cube
I guess valid TLS is not boring enough for this website?

~~~
thrower123
I don't really understand why we have decided that static html pages need to
have a TLS certificate

~~~
joekrill
Well for one thing it prevents ISPs from injecting ads (or worse) into sites.

~~~
anderspitman
But then how is Comcast supposed to tell me I'm about to go over my monthly
data cap?

------
jwblackwell
This entire product should just be a rails/laravel/django app with a mysql db
hosted on a single server

~~~
collyw
My estimate is that > 90% of apps would be better written like that.

------
antfarm
_“Perfection is achieved, not when there is nothing more to add, but when
there is nothing left to take away.”_ ― Antoine de Saint-Exupéry, Airman's
Odyssey

