Sunday, August 3, 2008

Harnessing the Power of Agile

I am not sure if we all have heard of a Tetrahedron. It is a solid object with four sides, each side is a triangle. Something like a Pyramid. Here is one I found on Wikipedia (click on the image to see it in a 3D motion on the original site)

I am using this object to illustrate how one can understand and harness the power of Agile in a Software Development Organization's context.

If we expect Agile to deliver Value both to our Customers and Ourselves, we need to understand the rationale behind "How Agile was Designed to Work". In the absence of this understanding, implementing it anyway convenient, may actually land you " from a frying pan to fire". This has been my experience so far in about a decade practicing, coaching, training and consulting with organization in the implementation of Agile.

Here is how I choose to represent the core architecture of "Agile " using the concept of the Tetrahedron.



Software Organizations, before jumping into the Agile Bandwagon, should understand its implications to enable harvest the full potential of Agile in their enterprises. Here are some tips to make this journey comfortable and fruitful. Profitability and Customer Delight are imperative outcome, if you undertake this journey in a well planned manner.

Agile is our destination (Our Goal, Aspiration or Ambition). To reach this destination, one has to choose the right vehicle to ride on, to enable us reach our destination, safely, comfortably and efficiently, while we may also wish to enjoy the journey enroute.

What I see in most cases where Organizations decide to embrace Agile, undertake to travel to Agile, on vehicles that have one, some or all of their tyres punctured. I am using this metaphor to illustrate a "Strategy for this Journey to Agile"

The vehicle you travel to reach Agile has four wheels. You have to ensure that all the four wheels of your vehicle is in good shape, for you enjoy the journey and move forward. Even if one wheel is deflated or is malfuctioning, your have a breakdown and you cannot move forward. This situation is far from reaching the destination or anywhere close to it, which usually will remain an unfulfilled aspiration.

In the Agile Pyramid illustrated above, there are four sides to this Tetrahedron. Each side is equivalent to one wheel on the car, that has four wheels. Your organization has to travel in this car to reach your destination, Agile.

Check your First Wheel : Software Engineering in IID

Your organization's competence in building software using the Incremental and Iterative Development Method (IID). This method was originally innovated by Tom Gilb (http://www.gilb.com/) and he called it the Evo Model (Evolutionary Model). This may also be the first station you have to reach on your journey to Agile.

This is pure Software Engineering Competence. Your ability to build software incrementally and iteratively. Four key software engineering skills that you may need competence in your team to do IID right are: (1) Incremental Architecture and Evolving Design (2) Refactoring (3) Continuous Integration (4) TDD : Test Driven Development.

Get this right first before you attempt to embark on your journey to the next station. With this wheel in place, and the tyre inflated, you can start your journey and at best you may be able to reach the first station en route.

Check your Second Wheel: Agile Leadership

The next leg of your journey could be very demanding. It involves a cultural change in the way you manage your business and your people. Find out if you are ready for it.

In this culture, you have to trust your customers and your customers have to trust you. You have to trust and empower your people and your people have to live up to this trust. Your people have to work in Teams and not as individuals. You have to learn to structure your organization to harness the power of Team Work. You may need to change your business policies, your management policies, your people policies in the way your recognize and reward teams and not individuals. You have to empower your teams, support them do their job and empower and guide (lead) them to directly deliver Value to Customers.

Your have to "invert" your pyramid structure. You have to understand "how to build and nurture high performance self organizing cross functional teams" in your company. You have to have the commitment, courage, tenacity and determination to undertake this cultural change in your enterprise. You have to learn to manage uncertainties through Adaptive Planning.

Only then can you reach your next station enroute your journey to Agile.

Check your Third Wheel: Self Organizing Teams

The third imperative in Agile are your Teams.

There are the guys who will ultimately help you conduct your business and its profitability. They have to be the right guys, working together as a team of commandos, delivering Value to Customers, incrementally and iteratively in the most volatile conditions full of uncertainties.

They have to plan to deliver value in short iterations, planning for it adaptively and iteratively. They have to be self-organizing to be able to know "how to do" the right things in building the software in a given context. They have to learn to empirically evolve the way they do what they do, and keep improving it on a continuous basis through structured retrospectives at the end of each iteration. They have to be self-motivated, Work as a Team, dissolve hierarchical egos and have the skills to manage themselves through collaborative Leadership. They learn and amplify learning in the team. They are proactive, they are committed, they enjoy working in the team, and they are competent as a Team.

They communicate, collaborate, create and innovate as a Team. They are your COMMANDOS on a mission to DO or DIE. (Their mission : Anticipate, Understand, Meet and Exceed Customer Expectations. To Deliver the right Value at the right Time to their Customers and help build a set of Delighted Customers for your Enterprise).

With such teams in place, you may aspire to reach the third station enroute your journey to Agile.

Check your Fourth Wheel: Customer Collaboration

Now you go find the right Customer to work for.

Someone who values money, who is interested in making money, some one who values ROI (return on investment) and who knows the Value he can get from Software. This person is sure to Collaborate, Communicate and Trust a good Vendor who can deliver Value for Money.

He should understand and know how you plan to deliver value to him through the Agile Strategy.

He should be ready to "contribute value" to enable you to "deliver value" to him. He understand that he can receive the highest Value for Money in a project, only by aggressive collaboration, cooperation, support and co-creation, treating the Vendor Organization as his partner in business. He is able to anticipate, understand, meet and exceed the legitimate expectations of his Vendors, and helps them serve him better.

Customers who are interested in spending their budget allocation and buy software development projects only to expend their budgets for the current year
ARE NOT SUITABLE TO BE AGILE CUSTOMERS. I learnt this the hard way, so you need not suffer reinventing the wheel. Get the right Agile Customer for an Agile Project. If not, you cannot reach your destination.

Having said all this, I would like to end by annotating the CLIMAX of your journey:

YOU JUST GOT THE RIGHT CAR, THE RIGHT CUSTOMER (A PASSENGER) FOR YOUR CAR, WHO IS WILLING TO PAY YOU TO FERRY HIM TO HIS DESTINATION.

Who drives the Car ? Your CEO !!!

He is the guy who has to make money for the enterprise and pay dividends to his shareholders.

The fare he collects from the customers to ferry them to their respective destinations is his sales revenue.

The money he saves after expenses he incurs to maintain his "Agile Car" and the fuel, is his profits.

If he is able to earn a good reputation of reliability and credibility in delivering good value to his customers, he may be able to build a good set of loyal and delighted Customers who help him continue running his business profitably, by regularly patronizing his "Agile Car"

I call this car, the "AGILE CAB"