" /> Shu Ha Ri — An Agile warrior's journey on The Way

Welcome

Shu Ha Ri is the principle by which Japanese martial arts are taught. The principle can be applied to learning other arts as well, like Agile project management and software development. It's application in this context is explanied really well in the Agile In a Flash cards.

I study both Japanese martial arts and Agile. Expect posts on both from time to time.

Know the difference between loss and gain

September 25, 2011 · By James Holmes

Musashi's rule number 5 for learning the art:

"Know the difference between loss and gain in worldly matters."

Things change. People often focus on what we miss when something changes, the effort required when we let go of something or the negative repercussions of a failed project. These things are usully seen as a loss. They are not.

Change is inevitable and every change is an opportunity. If a tool isn't working for you, drop it; use what you've learned to make the next one better. If a team member leaves, you'll quickly learn what knowlege was in their head instead of written down; capture the info and reap the gain in improved knowlege transfer in the future. Even a failed project isn't truly a loss unless you don't know why it failed and you didn't know about the failure as soon as possible. Learn to see the signs and take the lessons into the next project.

Be knowledgeable in a variety of occupations

September 11, 2011 · By James Holmes

Number 4 in Musashi's rules for learning the art:

"Be knowledgeable in a variety of occupations, and learn the thinking of people who work in them."

The client is seldom another developer and their software is something they need to use, not you. Becoming familiar with how they do their work is essential to establishing how to deliver value during development. Being familiar with how people who aren't the client do their work might even open up possibilities for doing things a new way, delivering even more value. Just as the thinking of traditional engineering led to the awful mess that is waterfall software development, the thinking of a computer savvy coder by itself may not lead to the best solution to a problem.

Cultivate a wide range of interests

September 06, 2011 · By James Holmes

Musashi's third rule for learning the art:

"Cultivate a wide range of interests in the ten skills and ten arts. Then one can definitely find the benefits of hyoho and develop oneself."

Agile practitioners need to be able to wear many hats. This isn't just true for programming languages, frameworks and tools; it's also true of all the other roles within the Agile team. One day you may need to run a retospective; another you might need to be a BA or a tester. Each of these roles requires a different mindset and proficiency in all of them makes you a better designer when it comes to cutting code.

Remeber, all the patters, algorithms and other stuff you did in your degree is science. The Agile part is an art.

The Way is in training

September 06, 2011 · By James Holmes

The second of Mushashi's rules for learning the art:

"The Way is in training. One must continue to train."

It's important to continually learn new things, practice the skills we don't use as often and approach every development task as an opportunity to improve. If you get to the point where you think you know everything and you stop learning, you've stopped being Agile.

 

Do not harbor sinister designs

September 05, 2011 · By James Holmes

Number one of Musashi's rules for learning the art:

"Do not harbor sinister designs. Think honestly and truthfully."

This is the key to Agile development. Agile is an honest process that faces up to reality. Time, money and resources are limited and Agile demonstrates this by showing the client what can't be done in the chosen timeframe or alternatively how long it will take to deliver a chosen set of functionality. The release wall shows the real state of the project; the burn up chart shows the real rate of progress. Problems are discovered early and change is accepted as a fact of life.

Honesty is, after all, the best policy.

How to set yourself up to win

September 05, 2011 · By James Holmes

In the Earth Book, Musashi describes rules for learning the art of strategy. They apply equally to the art of software development:

  1. Do not harbor sinister designs. Think honestly and truthfully. 
  2. The Way is in training. One must continue to train. 
  3. Cultivate a wide range of interests in the ten skills and ten arts. Then one can definitely find the benefits of hyoho and develop oneself. 
  4. Be knowledgeable in a variety of occupations, and learn the thinking of people who work in them. 
  5. Know the difference between loss and gain in worldly matters. 
  6. Nurture the ability to perceive the truth in all matters. It is important to build up an intuitive judgment and understand true values. 
  7. Be aware of those things which cannot be easily seen with the eye. Develop intuitive judgment and a mind that freely controls one's body. 
  8. Do not be negligent, but pay attention even to the smallest details. Keep them in mind all the time, so as to avoid unexpected failure. 
  9. Do not engage in useless activity. Do not argue about useless things. Concentrate on your duties.

I'll discuss each of these in separate posts.

Are you too familiar with your frameworks?

September 05, 2011 · By James Holmes

Teams will often select frameworks, patterns and tools and stick to them. A great deal of time will be invested in building up a high level of skill in those particular things. Sounds great? Consider Musashi's Earth Book:

"You should not have a favorite weapon, or any other exaggerated preference for that matter. To become overly attached to one weapon is as bad as not knowing it sufficiently well. You should not imitate others, but use those weapons which suit you, and which you can handle properly. It is bad for both commanders and troopers to entertain likes and dislikes. Pragmatic thinking is essential. These are things you must learn thoroughly."

Of course, skill is necessary to do the job efficiently. However, there will come a time when trying to make NHibernate work with the bizarre SQL DB you've been given is going to be more pain than just writing TSQL stored procedures, or when you have to make a few changes to an app that didn't use MVC and there's no Razor, no automagic routes and no hope of that changing without completely rewriting the app.

The tools you've chosen will not always be the best choice for every situation. Regardless, even better tools will eventually come along. Don't get too attached.

Another book to consider

September 02, 2011 · By James Holmes

I'm going to recommend a second book for anyone using Agile techniques, espeically if you've been reading the Agile Samurai; it's "The Book of Five Rings" by Miyamoto Musashi. 

OK, so now you're wondering what a book about winning sword fights has to do with Agile. In fact, the book concerns strategy in general and is more relevant to software development than any Prince2 book. I'll take as an example the "ground book," in which Musashi compares a master carpenter to a military commander:

"The master carpenter distributes the work among his men according to their levels of skill. Some are floor layers, others makers of sliding doors, thresholds and lintels, ceilings and so on. Those of poor ability lay the floor joists, and those of even lesser ability can carve wedges and do such miscellaneous work. If the master knows and deploys his men well the work will progress smoothly and the result will be good.

The master carpenter should take into account the abilities and limitations of his men. Circulating among them, he can know their spirit and different levels of morale, encourage them when necessary, understand what can and cannot be realized, and thus ask nothing unreasonable. The principle of strategy is like this."

This relates directly to the way a SCRUM Master needs to help organise the Agile Team. Team members contribute according to their ability and nothing unreasonable is asked of them. Over time, through team work, cross skilling can occur and everyone can acheive better general skills, but if you have someone who is naturally good at thinking like a client, they need to be wearing the business analyst hat for a lot of the time.

Anyway, for a book written a good few hundred years ago it's remarkably relevant.

Welcome to the new blog

August 30, 2011 · By James Holmes

I'll begin the blog with a book recommendation. The Agile Samurai isn't about Japanese warrior who can do flips; it's a really good source of real world advice on Agile software development. It's a great way to get started and it's an entertaining read.

About

James Holmes is a developer in an Agile team using Microsoft technologies for web apps. Expect posts on Agile, .NET, C# and MVC.

Recent Entries

Categories

Monthly Archives

ColdFusion Links

Agile Links

Other Blogs