Move like butterfly, sting like a bee in the world of IT

Francesco Barbera
Keep Calm and Code On
3 min readJan 8, 2018

Recently I had the opportunity of speaking with lots of students from the University of Computer Engineering. Some of them asked me about what technologies are being used outside the university. The first answer (and I think the most common) is that the library, the framework or the language is not essential. The most relevant things are the patterns (most of them invented in the 70’s) that are already in use and have a cyclic heap. Furthermore, I explained to the scared students that in the real world they will be able to apply all their knowledge to practical projects in a short time.

But is this true?

Is all the knowledge learned at university applicable in the real world? Or are there some concepts that were not invented in the 70’s and that have some relevance today? Let me start by saying that I agree with this last question!

During the past months I worked with a couple of teams who were used to applying a traditional waterfall approach to projects, and I helped them transition to an agile approach. Thanks to this work I was able to gain a deeper understanding of what agile really is. I could move some teams from waterfall approach to an agile one. I also realised that there is more out there than the patterns invented in the 70s, there is a transversal concept that fills all the layers of our workday.

Why?

Because some patterns are used more than others. Some languages take care of the majority of apps.

Starting from the bottom level of an application, Docker takes the primary role in DevOps practices. And one of the most appreciated characteristics of Docker is the possibility to restart a service in a very short amount of time.

Fail fast.

About the languages, JS takes the main role. JS is smart, functional and it requires a small amount of code to create all the common features that a general app needs. Object-oriented is over verbose, and it requires a lot of code to create small features. The code is overgeneralized with OO.

Make things fast, without early optimisation.

On a higher level, the organisation of the teams becomes less verbose. Autonomous structures arise. Teams become flat and without complex structures that slow communication. Agile approaches move from single groups to the whole organisation.

Small commandos create better work.

All three examples have a common point. And that is:

lightness.

I think that lightness is the approach that has emerged in the past few years.

Why?

Probably because the economic crisis has opened our eyes and Nicholas Taleb’s black swans has introduced the possibility of failure to us. So a philosophical concept takes the responsibility of ruling a lot of aspects of our thinking.

And so, through suffering the economic crisis and seeing black swans we had to evolve and act like boxers, who know they are strong and resistant, but also understand that a well-aimed blow can decree the end. And so we move towards the boxing glove, to avoid that it arrives with the maximum extension and maximum strength. In this way we are embracing danger and the concept of failure without trying to avoid it but with the profound belief of being able to mitigate it, preceding it.

In conclusion, if all these premises are correct, a rather new approach takes the lead role and many things that will come in the near future will follow the principle of lightness.

Enjoyed this post? Subscribe to our newsletter and get all updates delivered to your inbox in a handy once a month message!

--

--