Do you know which is the best way to start the day? It’s a fact: A good day starts with a good breakfast. Don’t you agree?
This is the reason why every Tuesday morning we, people from Devscola, buy a bunch of food full of sugar and saturated fats and eat it while making what we like most: Coding. And this nutritional heresy received the name of Katayuno.
Katayuno is a combination of the words ‘Code Kata’ and ‘Desayuno‘. It is an event during which we sharpen our programming skills using code katas and Agile and XP methodologies, like pairing, TDD and code reviews.
But, what does ‘Agile’ and ‘XP’ refer to?
If we look for Agile on the net, this will probably be the first result:
The Agile manifesto. This paper makes a lot of sense and is signed by a lot of important people, but it is just the thing that was written, as a summary of the ideas discussed during their retreat at The Lodge.
But Agile is not about following a list of rules. Agile is about changing our mind. It is a change towards a new productive model that is designed mainly for software development.
In this post I’ll try to explain how this model works and what techniques are used on it, including some extreme programming techniques (this is the most technical part of Agile). I will try to explain it for audiences, so everyone can understand this without needing a single technical skill.
So here are the techniques about which I wrote. Each one is explained in a separated post, to avoid this one becoming too large. Click on the ‘Read more’ link to read my post about each technique:
- Continuous Integration: The practice of merging the code generated by different teams very often in order to minimize the feedback loop. Read more…
- Test Driven Development: A very organic and iterative building technique by which we obtain safely modifiable quality code. Read more…
- Pair Programming: How two programmers working on the same computer deliver best code in less time. Read more…
- Code Review: Raising the bar on code quality through discussion and consensus. Read more…
- Retrospective: Getting honest feedback from honest conversations. Read more…
- Timebox: Claiming respect for our time. Read more…
The agile techniques encourage communication and team alignment. And they do work, not only for software development, but also for other professions and even for our personal and family environment. This happens because Agile consists in human techniques. It cares about people over economic benefit, and this paradoxically will increase such benefit.
In the past and nowadays, the industry has considered programmers as ‘coding monkeys’, like if developing software was a repetitive task, similar to assembly lines in factories. But the truth is that the work of a programmer does not consist in writing code, but in THINKING. Thinking solutions to resolve problems. It is a creative and adaptive job, therefore, the methodology used for assembly lines does not work for software development.
The productivity of a developer is not directly proportional to the number of hours that she is forced to stay in front of a computer. Actually, this may be harmful and frustrating, which leads to demotivated developers, and the reason why many of us got burned during our careers.
Many professionals have realized this evidence and are trying to communicate it through the flourishing movement of the Software Craftsmanship, about which I wrote before.
The idea resides in using our community to pressure the industry to start adopting methodologies more suitable for coding, not just Agile, but everything that may help us do our job better.
Being Agile may increase the productivity of us developers and bring a lot of benefits to our lives:
- Agile proposes a collaborative approach, where decisions are made by consensus after an exchange of ideas.
- This communication fluency produces a knowledge spread that brings down the ‘guru‘ concept.
- The demystification also generates natural hierarchies, instead of imposed ones. The new hierarchies will emerge naturally, for instance, when someone decides to lead an initiative.
- Agile also helps us focus on affordable tasks…
- And eases family conciliation, because it respects our time and our humanity.
- Agile makes developers be more productive, which increases the income for the business.
From Devscola we organize Katayunos because the Katayuno is the perfect playground where to learn Agile and XP. During this event we do pairing, practice TDD, make code reviews, help each other, learn the profession, meet new people. And every single day, after it, we leave with a smile in our faces.
Because the Katayuno, is the best way to start the day 🙂
Let us know your opinion in a comment below, also share this post on social media if you liked it: