Why do developers hate everyone else's work?
Oliver Sarfas • December 31, 2019programming rant
"I would have done it differently", "This is crap", "It's hard to do because of them"
We've all heard these before. Most of us have said it, the rest have too - they're just too proud to admit it.
But why do these phrases get thrown around so much in the Development industry? Are we all egoistical and think we're the best? Are there just bad devs out there giving us all bad rep?
Honestly, a bit of both are true. Like handwriting code has it's own style when written by each individual. We like our own, or sometimes we don't. But we'll always critique someone else's.
Personally, I take a few things into account before "rating" a code base, or solution. Here's that list of things, and how they impact my review of the site / service.
It's using old software
This week, I ran into (was given) an old client's code base to "clean and make faster".
Upon looking at their setup and code, it came to my realisation that they were running PHP 5.4. Now, as of the time of writing, PHP 5.4 has been out of support for a rather long ass time - over 4 years.
Immediately I ran the code on a VM running PHP7.3, and it was over 60% faster. This is not an exaggeration.
I ran a basic IDE plugin that would update their code standards to PSR-2, and scan for any deprecated methods. Within half a day, they were compatible with PHP7.3, and ready to go.
Problem? Well yeah. Their servers were "unable to update to PHP7.3" and they were unwilling to migrate to AWS, Digital Ocean, or another reputable hosting provider.
Having done this work, I've done nothing to better myself or my career. Nobody is going to look for a developer with PHP5.4 experience. The same way that nobody wants a C# developer with .NET Framework 2.0 experience. It's useless nowadays and makes everyone's job harder.
Use modern languages, that are up to date. Make sure you support them. Using old solutions will leave you open to attack and devalue your developers
Missing basic best practices
Go to any site, I can guarantee the first things that you do as a dev are as follows;
- Run tools such as Wappalyzer on it. What's under the hood? Are they leaking unnecessary information such as server configurations, software versions, etc.?
- Check the SSL. Do they have it? Is it paid service or are they using CloudFlare, Lets Encrypt, AWS, etc.
- Using paid SSL usually implies that the team in control of the code base / solution are either unaware of the free tools nowadays, or choose not to use them 🤔
- Is the site truly responsive? If I mess with my window size, can your front end scale and adapt to my needs
- Having a site serve different pages based on User-Agent is NOT RESPONSIVE. Stop doing it.
- Can I break it immediately? I'll check the JS console for errors, Network tab in my developer tools for tracking / API integrations. And tinker away!
- You'd be surprised the amount of "gey_key" calls I've seen in that tab, just for the result(s) to expose sensitive API Key data
Not having an API / Integration possibilities
One thing that is worse than working with a solution that has a poor integration services, and that's finding out that they don't have one at all.
Now you're the guinea pig for their new build, and you know fully well that things aren't static and set in place. The goal posts are always moving and you've got to adapt your integration to support the uncertainty.
If there's any way of building your service(s) "API first" - do it. Please.
- Build API / Integration first, then use yourselves as the first "client" who integrates with the solution. You'll be amazed how much your future clients appreciate it as you've already been through the initial hurdles and headaches on their behalf.
- Use modern tech. Always. There is literally no excuse for it in today's industry.
- Use code reviews / processes to ensure that good systems and application are written. There's very little good about having one developer do all the work.
😪 They burn out
📜 They have their own agenda on how to do things
👃 They have their own code smell.
🕵️♀️ Having a code review process will aid in reducing this and make your solution more malleable for other devs