I hear the term “over engineering” a lot. For me saying over engineer a problem is like saying an F1 car is over speeding or a super model is over beautiful.
But it has the side effect of making people think that more time engineering is bad. Because for some reason, engineering just increases complexity.
Little known fact: Einstein kept working on the e = mc2 formula and he over engineer it. By the end it was y = mca3Michael Scott
I suggest the name “complicate”.
Moral of the story: engineering good, complicate bad
Technical debt is another term thrown around like crazy. I don’t like this term because when non-technical people hear about it, it’s like they got a get out of jail free card.
Why? Because you don’t need to pay back the technical debt if you don’t keep using that piece of software.
Imagine you want to open a restaurant, you ask for 100K to the bank and then the restaurant blows up and you say to the bank “oh well, it didn’t work out…”
I’d prefer some other term like “technical scaffolding”. Basically supporting stuff that holds your product while it’s being build up. But as soon as it starts to grow, you make sure the building is stable.
What happens in many software companies is that they are just a pit of technical debt, so when you go work there, you maintain a badly structured architecture. You maintain the scaffolding, and sometimes this gets so bad you don’t know if it’s scaffolding or rubble from a previous incident under all the scaffolding.
I’m not saying to not cut some corners when you are starting a project, but like cutting corners in a building, be sure you don’t build a tower of Pizza.
Lately I’ve been thinking a lot about intrinsic and extrinsic motivation.
Intrinsic is like natural motivation, extrinsic is basically the carrot in front of the donkey. Many people also call it manipulation.
That brings me to Overwatch. I’ve been playing the game on and off since 2016. Every time I reinstalled my wife says:
Oh no… Overwatch again?my wife
The thing is, I’m a sucker for ranks (extrinsic). So I played ranked a lot. The problem is, if you are not good, you go down the ranks and when you are at lower ranks, it’s like being poor, it’s tough to escape it!
Lately I started playing quick play (intrinsic) and I was never frustrated. The differences I noticed:
- People don’t get so angry because there’s no visible rank.
- If someone quits, someone comes to replace them. So, less likely to lose even with quitters.
- The games are shorter. In ranked it can take 45 minutes to tie and then lose in the next game that takes 5 minutes.
The extrinsic motivations in Overwatch are broken and that is why I think there is so much love/hate for the game.
Both Node and Deno originated from the same guy, Ryan Dahl.
Why all this “mess”?
And as a bonus, “deno” is “node” sorted alphabetically:
"node".split("").sort().join("") // deno
There’s a possibility of Deno not going very far because Node is good enough and widely used. Or because the node libraries become more performant and safe, so they convert to TypeScript and Rust and the need for improving the code base is reduced. IIRC, this happened a bit with Cython, the fast python.
For now I’m cautiously optimistic.