Personal reflections: the world of software development

10 years ago I’ve entered the IT world with the exciting expectations to create truly amazing software. Nowadays, the possibilities are endless, the technology advances fast, there are plenty of opportunities for innovation. It’ an exciting world!

Unfortunately, from time to time, the process to create software (for internal or external use), is clogged down by overly-prescriptive processes, coordination chaos, organizational barriers, technical mediocrity or simply the unwillingness (failure) to understand that software development is a complex adaptive system. In summary, an approach of an old industrial paradigm applied to software creation.

Humans are complex creatures, and as humans we want to create complex products. Unless you’re a solitary developer working end to end alone to create a piece of software – for your own use; you will need to talk (at some point in time) with a colleague developer and / or the user of that software.

Humans like to create complicated things to manage complicated things to end up in a lot of complications. Anyway, the world always will be divided by different streams of thinking; including the software world, moreover as it offers countless possibilities to create solutions.

In today’s fast paced world, software needs to be spot-on, well-engineered, valuable and simply said: great!

A piece of software has its use: it solves a problem, it answers to a need, it offers some entertainment, or it was a learning journey. In the real word (business or non-profit), we need to seize opportunities, respond to challenges, and control risk – and all this in a timely manner. The software developed needs to support this, it offers a solution, and it gives us a competitive advantage. Needless to say, in today’s fast paced world, software needs to be spot-on, well-engineered, valuable and simply said: great!

In the software industry (and nowadays also outside it), there exists a way of thinking and acting that embraces the above; it grass rooted long time ago and has gained adoption as time passes.

To me it makes no sense to act otherwise, to create complex (software) products in different way. One need to realize this way of working is more than a process; it’s more than yet another development framework. It addresses basic principles of values, it embraces humans for their nature; it embraces creativity. I am in no way brain-washed or sponsored (I hope); I do know that other ways of creating complex (software) products has failed too often. I like simplicity, I like productivity. I think there’s a way to have it in the world of software.

Source featured image: