The thin line between science and opinion in software industry

Emad Elsaid
2 min readOct 25, 2016

--

It’s a major problem in our immature field that people get confused between science and opinions, between what’s objective and what’s subjective, so you wake up one day and you find someone saying

MVC design pattern is the best way to go for your application architecture for modern application

Give it a couple years and the whole industry is moving towards this “Opinion”, the more famous the speaker the faster the ripple effect spread among the industry practitioners.

Another example is service oriented architecture, start a debate about monolithic application versus services architecture and by time people get it as a trend and get hyped about it.

Lastly the debate about object oriented programming VS functional programming, is functional better? and don’t get me started with the war on the inheritance please which was renamed to “classical inheritance” for some reason.

The problem is that the industry it not making decisions by weighting advantages and disadvantages, it moves depending on the current hype and trend, just because it’s the new big thing, the modern technology, the thing you have to do to be relevant.

Another problem is shaming whoever doesn’t follow the trend or the new opinion and call them outdated, like moving with the hype is a must or else your application is going to suffer, which is basically wrong most of the time.

What we face here is a confusion between science as we know it and personal opinions and situational approaches, that confusion is what makes companies use latest technologies and fails afterwards, the misconception of assuming that the latest technology/methodology is the best scientifically.

That behaviour is a direct result of adopting technologies in production before it was fully tested, that doesn’t just lead to application rewrites but to developer fatigue, technical dept, and the misconception of a fresh start.

In my opinion what we need as a community is to remember from time to time that our work is a mixture of engineering and creativity, taking decision requires both skills to be present, separating scientific facts from marketing slogans, and most of all to remember that making a solid software is your goal, it’s not about how cool the technology is or how recent your stack is, it’s about simplicity, efficiency and maintainability.

--

--

Emad Elsaid

A ruby developer, Fantasy/Sci-fi addict, works for @twitter