I really liked this comment from a hacker news thread1 on a post around how Microservices architecture failed a product’s dev team.
Everytime (sic) you touch something under a repo, it affects everyone. You are forced to use existing code or improve it, or you risk breaking code for everyone else. What does this solve? This solves the fundamental problem a lot of leetcode/hackerrank monkeys miss, programming is a Social activity it is not a go into a cave and come out with a perfect solution in a month activity. More interaction among developers means Engineers are forced to account for trade offs. Software Engineering in its entirety is all about trade offs, unlike theoretical Comp Science. Anyway, this helps because as Engineers we must respect and account for other Engineers decisions.
Working on a shared code is indeed a social activity. And this principle is something I just can’t stress enough when amongst my team. There is a misguided view of coders as lone warriors, sitting in the dark corner somewhere, beating at their keyboards and delivering working software day and night.
Reality can’t be farther in most work environments, especially enterprises. Every coder needs to be accountable, extra cautious with each line of code he or she commits to the repository. If not, it might lead to a sleepless night of debugging for the whole team.
- I do not endorse the tone, of course. It’s from hacker news forum after all. May be people get trained to shout once you are in forum. ↩