DEV Community

Discussion on: Why our software is broken?

Collapse
 
joelbonetr profile image
JoelBonetR πŸ₯‡ • Edited

I want to focus on that because it's the root of the problem:

Computer science is confusing because it’s not a science and there are too many ideas floating around.

I can disagree with that adding some arguments.
Computer science is, as it's name says, a science. This can be easily proved by the fact that it can be peer reviewed and you can get exact results.

If I state that a given algorithm or function has a complexity of O(n^2) it will be the same on any try to reproduce this.

The ideas floating around can be studied using different approaches such i.e. logic or mathematics.

What is not a science is the application of the computer science.

If we have in mind software development, many roles intervene in that, such software engineers, technical engineers, technical devs or even self-taught individuals that probably never learned a good base (because when you learn something by your own you usually learn what you like most and ditch the rest) to understand what's going on when they state something inside a runtime environment.

with this team, you'll have to handle different ways to "think" (we'll come later on the reason for the quotation marks on think). Let's order the things from bottom to top:

  1. An average self-taught or a bad [insert one of the following here] would say they need to use what they already know how to use.
  2. A good software technician would say that they need to break down problems to find out the needs and thus the correct tech stack, architecture, design and so on.
  3. A good technical engineer would say that they need to analyse the overall and break down problems to find out the needs and thus the correct tech stack, architecture, design and so on.
  4. A good engineer would say that they need to break down problems into small pieces and analyse them to find out the needs and thus the correct tech stack, architecture, design and so on.

You can extend this using any role and what they are intended to solve inside the team. But due to this fragmentation opinions appear. On science there are not opinions, there are possible statements that can (or not, depending on the current situation of the tech evolution) be proven and evaluated as true or false, then be peer reviewed and get a strong closed statement (it is like that, it is not like that) or a question as answer (it's sometimes like that but we need to know the reason for "sometimes").

Then the quotes on "think". There's a difference between thinking something (having an opinion) and knowing something.
I know that 2+2 equals 4 and I think that the sky is blue. Maybe it's from another colour and it's the effect of the sunlight passing some molecules that makes me see that blue sky but in fact it's not, I don't know, so I just have an opinion, I "think".

We are currently living on an era that people opinions seem to matter. I mean that nobody currently cares about what you think like always has been but with social media... people join other individuals with similar ideas and they think they are a big group, superior to the rest of mortals that have some absolute truth.

This shitty behaviour is spread to any living human that is on the modern world like an hurricane. And we us, working on IT are not different or isolated from this phenomenon.

*** a new lib appears and if (and only if) it takes some prominence, automatically haters and prophets of this new tech appear.
None of them polarised set of people had it's time deep understanding this new tech or ensuring it really solve what it came to solve.

Of course human behaviour is a different science but it's just that even being a science, not all people involved are scientific so they don't assume and test statements, they fight to try to seem right at other's eyes and opinions instead being right or wrong by knowing.

Now imagine a doctor being self taught, without any college certificate that warranty that he/she had acquired a minimum knowledge. Or with an official non-university certificate that certificates a little scope of the entire medical science.
Which tasks do you let this doctor do? Surgery? I don't think so. Dermatology? hmm probably not.

Why do we listen to people who have not even made an effort to understand the things they think about?

Wee need a collegiate number to post things on a serious place and make an effort to explain on a more plain way those concepts into platforms like this. Because the people will not stop this behaviour but it does not mean that this behaviour must be spread and contaminate each IT forum or place where to get information.

StackOverflow tried this but as it's free for anyone your post can be down-voted for any reason or opinion even without requiring other users to read so... it was a bad idea that leads to a toxic behaviour.

*Sorry for the bible