What we do is not a routine, ever. We might have patterns, practices and problems that have already been solved. Yet still, every new decision that we make has a unique context. In fact the context changes everytime we learn and gain new experience. This is why we are engineers. This is why our work is very creative.
Sometimes we make good decisions, and sometimes we make bad ones. This is true for all types of coders from juniors to masters. Sometimes we make bad decisions because we just don't know any better, due to a lack of programming-, technology- or domainknowledge. And sometimes we make bad decisions because we are being put under pressure.
Bad decisions are expensive and dangerous. They produce technical debt, and it is not uncommon that they lead us to even more bad decisions. Slowly but surely this burden becomes heavier. It cost us time, energy and money. In extreme cases it gets so expensive that it would be favorable to completely start over.
Willingly or not, because of the decisions we make, we coders are in great power. We are leaders, and we can easily steer towards failure. We are not just the ones to write lines. We are not just code monkeys. We are the ones who design the heart of the Software and bear great responsibility.
When everyone gets mad because of a problem, maybe a date or even a deadline, we coders are the ones to stay strong. We are the ones to keep calm, and disillusion the others. We know the code, so we know the truth. If we don't stand up, whoelse should?
It is hard to act professionally and responsible at any time, but it's mostly a good choice. Thankfully, code is very forgivingly in its nature. Technology nowadays allows us to easily change it, thus allowing us to revert our decisions. We should value changeability in the code. We should even take action to improve changeability in the code. Maybe that'd be a good choice!?
I would like to end this post with a quote by @WoodyZuill:
„Be the programmer you want to see in the world.“