Spoiled but enlightened

#craftsmanship Dec 7, 2023 2 min Mike Kowalski

Everybody knows that programmers are spoiled. When not enjoying free fruits in their fancy offices, they probably work from the end of the world that looks like a paradise. Even during challenging economic conditions, the market still tries to exceed their expectations… A comfortable life and great earnings - who wouldn’t want that?

In fact, there’s much more to appreciate. Most developers experience levels of organizational maturity that other industries have never dreamed of. The work culture that has developed over the years really stands out. Yet, we programmers rarely notice that.

We accept that humans make mistakes. That’s one of the reasons why we practice code reviews and pair programming. We write automated test cases to catch our faults early. We experiment, observe, and roll back if needed. We analyze past incidents openly, looking for ways to avoid them in the future. We look at the processes around us and think about what could be improved. Finally, we try to face our mistakes as a team.

We know how dangerous the complexity can be, so we chop pieces of work into smaller, manageable chunks. Most of us have already accepted, that the “Big Bang” approach doesn’t work. We chase simplicity wherever we can. We understand that a single person can’t know everything, so we are building teams instead.

Feedback is our bread and butter. We give feedback to others every day while reviewing their code or discussing ideas. We ask our colleagues for help. We expect feedback for every single commit from our CI/CD pipelines. We analyze how our customers use our products and why. Also, we want to know how we’re performing, so we can grow.

We learned some of these things on our own, and some we borrowed from others. What matters is that they really got adopted. And we are still trying to improve.

In the meantime, some industries enjoy their blaming culture. Making mistakes becomes a sign of being an overpaid moron. There is no “four eyes” verification or testing in general because it’s “too expensive”. There’s no time for doing things better, cause fixing previous mistakes takes so much effort!

Some truly believe, that even the most complex project should be managed easily by a single person. They follow the good-old waterfall approach, without ever realizing it has such a name. Reducing complexity doesn’t seem to be a priority.

There are organizations associating feedback with salary negotiations or a reprimand. Since “diamonds are created under pressure”, it’s OK to be offensive. I pay, I demand at its finest. Finally, some don’t care what their customers think. It’s the customer’s issue anyway…

Of course, bad apples happen everywhere - including IT. Unrealistic deadlines are a thing. Not every company values craftsmanship. There are “non-practicing believers” too. Not every person is a team player. Not every organization has a healthy culture… Yet, collectively, we create a pretty mature society. Knowing what our industry has already learned, makes the outside world look even more depressing.

We are spoiled but also enlightened.

Mike Kowalski

Software engineer believing in craftsmanship and the power of fresh espresso. Writing in & about Java, distributed systems, and beyond. Mikes his own opinions and bytes.