Thursday, August 21, 2014

Ideas from Devoxx UK 2014


Last month I had the chance to attend one of the best conferences, probably in the world, for developer from developers. This was my second year and I can confirm that the conference got much better this time with much richer content, more attendees and more sponsors.

I got a lot of notes during those two days, however I will just resume and expand on few ideas that impacted me and I think deserve deeper research.

From the good talk of Andrew Harmel-Law called ‘The 5 Whys: Counter-Intuitive Solution to (all too Common) Problems’ I will quickly refer to his point about chaotic solutions and the need to step back and think. Basically he talked about that as technology improves, so does the tool set that we have available. In the last 15 years there has been a boom of new languages and for example all the new hype of the cloud fashion leading a new world order for IT. By having these expansion in options and tools to solve problems we usually end up with more complex solutions.

While increasing complexity we usually do not move towards better and simpler solutions, but to more difficult and chaotic ones instead. What was easy yesterday its becoming more difficult and often more frustrating situations nowadays.

The usual problem solving path goes like this:
            
The problem emerges → See / Understand the problem→ Try to solve it → Get a solution that works for now Many more problems generated for the future.

The problem solving solution for the long term should be:

The problem emerges → Stop pause and step back → See / Understand the big picture → We apply simple and easy steps which will drive us to the final solution.


An inspirational video about simplifying and going back to the roots to understand the problem and get to better solutions is the story of One Straw Revolution.

So here the question is how do we apply this philosophy to IT? The simple question is by shifting to a developer oriented culture based on anti-fragility.

For example a good reference is the Netflix tech blog post about the the Simian Army project. The project consists on building small programs (monkeys)  which break things at random times. The idea is that whatever system its developed it should be able to survive to failures.

This is an example of building tools which helps the developers to test and implement solutions which are running like in real environment conditions and not under perfect conditions only.

The concept here is Anti-fragility, which means that failures are inevitable. Cope with failure in order to reduce uncertainty and stress when everything falls apart.  So normalise failure and make people to be used to deal with failure.

Moving on to the next main concept from the book “The mythical man month” by Freederick P. Brooks. Here the idea is to renew and do not hang on legacy. Being forced to renew or die is not very efficient and usually the times to upgrade are not the best ones. So instead we should plan to throw away small parts of our work. Forcing us to redo and rethink. We do not throw away knowledge or previous work but we build new and improved versions instead.

And finally but not least I will point out some good ideas to improve software craftsmanship:

  • Measure everything as much as possible in an easy way. Analyse data and take decisions based on facts not on estimates or assumptions.

  • Go open source culture. Open source almost everything you do. It brings force multiplier factors far beyond to closed solutions.

  • Build an internal open source environment in the company, it helps to develop team work, better collaboration which bring more certainty and less chaos.





And there, of course, where many more ideas and great content that I will need years to digest them all. However I will take my time to get proper sleep and good food now.

Thanks for reading and please leave any comment below if you like so.
Keep on learning!


Posted by Marc Andreu.

No comments: