I have been disappointed in tech industry for a while now. I have decent amount of experience by now, and I'm tired of people who don't care about their work.
There's a time and place for rest, less aggressiveness, less potent work if I can say so, as everything goes up and down.
Sometimes, admittedly best course of action is to do something none optimal.
But always that "sometimes" must be checked in, heavily documented (paper, or tribal knowledge). That "sometimes" becoming "often" is hurting us all. Especially employees.
We want companies to succeed. And duck typing your solution, low efforts to no efforts at all is proven to bring no results!
I'm all for being pragmatic when it comes to changing one perspective of way of working. However, there must be a line drawn which must not be crossed.
- Never compromised users safety
- Never compromised user security
- Never treat users as just a number
- Never harm your employees
- Always, absolutely always aim for value rather than some trivial measured outcome, which is there to aid you and should never be a goal on its own
Having those values in mind, how many duck typing you should really allow yourself?
Very little actually.
- Service is down, for whatever reason you can't rollback, but dirty fix is enough to bring the service up. Do it!
- You are building POC, Do it!
- You have bosses who are terrible at their job and demands results yesterday. Do it! (And leave the job first thing)
- You simply do not know of any other way, as system is build so badly that extending is hard without wracking the system. Do it! ( And identify this code as tech dept)
Now, I understand some companies are just pretending to be engineering based when in reality they use us as a signaling for investors.
However, even for such companies, time will come and they should realize sooner than later that engineering is about solving problems and companies are just about the same.