Wednesday, October 21, 2015

The Agile Master #5: Lessons on Agile Development from the Tao Te Ching

He who stands on tiptoe
doesn't stand firm.
He who rushes ahead
doesn't go far.
He who tries to shine
dims his own light.
He who defines himself
can't know who he really is.
He who has power over others
can't empower himself.
He who clings to his work
will create nothing that endures.

If you want to accord with the Tao,
just do your job, then let go.
- Tao Te Ching, Chapter 24

The Agile Master does not bring attention to herself and does not exalt herself. Don't rush towards a goal without bringing the team with you. You go together or not at all.

Code ownership will insure only that the code will be replaced as soon as someone else needs to maintain it. The more the team can share knowledge, the better the code will be and the easier it will be to maintain; the code will endure beyond the tenure of the individuals who created it.

The human body is recycled completely over the span of years and yet continues to be, fundamentally, the same person. So to the team. As members change nevertheless the team remains. The Agile Master encourages team knowledge above individual knowledge and encourages individuals to teach others on the team. In essence, the Agile Master strives for everyone on the team to become Agile Masters themselves.

You will fail. And in failing, succeed. You will learn and you will teach. This is the heart of the Agile Tao.

Tuesday, October 13, 2015

The Agile Master #4: Lessons on Agile Development from the Tao Te Ching

Throw away holiness and wisdom,
and people will be a hundred times happier.
Throw away morality and justice,
and people will do the right thing.
Throw away industry and profit,
and there won't be any thieves.

If these three aren't enough,
just stay at the center of the circle
and let all things take their course.
- Tao Te Ching, Chapter 19

In agile development, it is the team that is the center of everything, not individuals. Individuals trying to demonstrate that they are better or smarter will poison the team as a whole. Just as you should not blame one member of the team for an error, you should not praise one member. The team makes errors and the team succeeds.

Trust your team. Get rid of procedures designed to enforce expected behaviour. The team will do the right thing without it and they will do it for the right reasons - not out of fear. In the process, they will know true empowerment.

In the same manner, you should not institute individual rewards. The team should not be competing within itself for perks or benefits. This breeds envy and resentment.

The Agile Master should constantly evaluate what is superficial in order to get rid of it. Individual knowledge is superficial and dangerous; strive for team knowledge. Procedures are superficial and costly; get rid of those that do not benefit the team. Which ones are those? Ask them.

You will not be able to fix everything or everyone. Be calm. Be patient.