From Quality To Safety

Quality is such an overrated word. Itś so 80s to say that you are doing something for quality sake. Today quality can appear with a different meaning -which often means specific things which people care about let's say Green or Organic or Oil-free.

When we are are talking about software development it's the same thing. Quality is a 2k thing and nobody uses in this way anymore however when you think more most of the times we are talking how we do things like automation or microservices or Chaos Engineering this is what we do and how we do it. It's quality but with a different and specialized focus.

Cultural glasses 

Engineering Software is something fragile so it requires special attention. As much as you pile out your Tech Debts you could be harassing your availability. If you are in a tech company which an online business this is an easy sell, however, depending on your industry or if your software is in a back office space this could get hard as sell ice to Eskimo's. In the end of the day this it's all about your industry and how much people see and understand things. So it becomes cultural. People who do not understand engineering might just care about COST.

Every company needs developers which it's good for us however not every industry and company are equals in mindsets and culture which can make your life easier or harder. Most of the managers know about Tech Debts even the ones who never paid. I was thinking more about the subject and I think it's not a good metaphor for your modern times and often it's very overrated and people just don't care anymore.

Piling up 

It's easy to find projects where teams are piling up tech debts. Itś a likely that the software is not critical to company survival or the company really does not care about availability which means downtimes are fine or delays are fine. Most of the companies what to have benefits of engineering culture but not every company wants to do the investment and has resistance to endure and stick to the disciplines to archive good things.

Several times software just keep working so it's very hard to argue with management when everything is just working and you are saying you don't like your code base or you don't have enough coverage or that the architecture is not good. Well it's very simple SCALE changes everything when you do have SCALE and need to have AVAILABILITY there is no space for tech debts and bad architecture, however, that's not the reality of most of the companies. That's why things kind of keep working even when everything looks and sounds very bad.

Safety Movement

There is an interesting re-framing movement which calls safety as the new quality. This movement is led by Modern Agile folks. Safety it's related to have all things needed to not create accidents which will create harm for you or out environment. Let's think about tests, for instance, see tests as quality is one thing so you can argue you don't need that much. However when we talk about safety that's something by default is not negotiable. You can not skip safety. It's a rebranding but I have to say it's very much applying metaphor for me.

I was reading a very interesting book around Shareholder Value myth which pretty much say that maximizing wealth and reducing COST could be a bad thing for the world and for people who work in a company or are in the environment the lie. The book has several cases where safety was put behind and create several huge incidents which not only destroy companies and create huge problems to the world like the deepwater horizon case.

IMHO the metaphor is very nice however IF nothing explode or people don't die which is likely that not happen I don't think this will stick. The reality is IF you need to SCALE you can only get it right or as some wise said once "Survival it's optional" you can always fail and die :-) The industry always shape companies so it is what it is.

Cheers,
Diego Pacheco




Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java