Posts by Luismi Cavallé:

Shu Ha Ri

Today we start a new series of posts in which the Negonation developers will talk of their experiences with Tractis. Their mailing list has been converted into a hive of activity with links, methodologies, focused discussions – valuable ideas that are worth sharing.

The focus of the posts is practical but the intention is not to comment on lines of code, but reflections on our constant search for efficiency in a decentralised and delocalised environment. We want to talk about what we truly believe will make a software development project succeed or fail and about what the majority of companies don’t focus their attention: agility, motivation, self-improving, barriers to communication, clarity in the objectives, application of generic methodologies to teams of unique individuals, programming decisions that impact on the strategy and the business.

And with the difficult task of starting off, we have Luismi Cavallé, one of the latest and keenest Negonators to sign up. Proof of this is the special mention that he received in the latest Glider prizes, despite being on the team a short time. We’ll leave you with him. If you like what you see, take a look at his blog “Putting it together” (RSS), full of “delicious” posts about the art of programming.

Shu Ha Ri is a Japanese term that describes the three stages of apprenticeship of a martial art.Shu means to maintain, protect, obey. In this first stage, the student rigidly follows the teachings of the master. The aim is to reproduce precisely the technique without worrying about the underlying theory. It is important not to mix styles or variants of the art at this point. This is the stage in which you establish the foundations for the rest of the apprenticeship.

Those of us who have practised a martial art will remember this first phase where the objective is, on the basis of repetition, correction and perseverance, to be able to perform the movements and techniques correctly.

Ha means separate, liberate, break. Once the technique has been memorized, the student may begin to question “why?”. In this phase, the student begins to understand the theoretical principles of the technique and starts to learn variants of the art from other masters. All this is integrated into the student’s knowledge and practice of the martial art.

Ri means to go further on, to transcend. In this stage, the student no longer is one since he doesn’t learn except for his own technique. The art becomes personal and he explores new focuses and variations on the techniques adapted to the circumstances.

Alistair Cockburn (signatory of the Agile Manifesto and creator of the Crystal Clear methodology), in his book Agile Software Development, introduces the concept of Shu Ha Ri to explain the learning of software development techniques and methodologies. For Cockburn, the agile methodologies with a name (Extreme Programming, Scrum, Crystal Clear) give a starting point, at level Shu as well as level Ha, so that each development team can reach their own Ri. Understanding that the best methodology is not to follow a methodology and that a successful development process is one that is not established.

At Tractis we understand this well. This is why we refactor continually – not just the code but also the methodology, the process, the manner in which we organise ourselves.

In many aspects, we’re probably at level Shu. We’ve chosen to be agile and chosen Rails as means of reaching our ambitious objectives. Therefore we are trying to learn, apply and memorize the agile techniques (TDD, Refactoring, Continuous Integration etc.) and the “Rails way”, following our ‘masters’.

This is going to require dedication and sweat, without doubt, but we need to do things very well at this stage because the challenges that confront us are going to take us in new directions. We’re constructing software in the post-agile, post-web2.0 era and we’ll only succeed if we have solid foundations.

And this is what we’re trying to do.

By Luismi Cavallé
Saved in: Programming, Tractis | 1 comment » | 17 January 2007