Wednesday, May 27, 2009

Agile Safari


A giraffe, which I hold dear, once told me that agile application development is all about pace, straight forward thinking and relevance. I can’t help thinking that us humans, like to make things all so complicated, even when we intend them to be ‘agile’.

We adore rules and regulations, and a static algorithm is fantastic when your target is motionless. The nature of things is not as static and rigid and not having a timely response might lose us the patch. “Follow your own heart”, the giraffe would tell me, “it should be as good as anything else you might find, and you can always change the rules and adapt to the new situations as they present themselves”.

I couldn’t help noticing that there was a wide nose rhino, staring at us from the other side of a patch of coffee.

Grasslands and software projects usually exist within a particular window of opportunity. The grazing has to be finished before the grass disappears: the problem has to be identified, addressed and delivered before it becomes irrelevant. “It has to be done and over with before the dry season” the giraffe would say. Managing software projects with agility is all about keeping up with the changing seasons, and the other moving animals.

The rhino was eyeing us ferociously. He wasn’t going anywhere.

Sitting there, leaned against a baobab tree, I heard the ‘agile of three points’ coming from above, straight from the giraffe’s mouth.

  • Always deliver functionality
  • Develop in short manageable cycles
  • Make use of the customer

These three principles form the conduct and rhythm of agile development: Combined together, they insure the growth of the product in relevance, while maintaining a steady flow of fresh capabilities under close supervision and immediate acknowledgment of the customer for every step.

“Is it clear yet?” asked the giraffe. Here is some more:

Delivering functionality

Delivering functionality has to do with the continuous effort of implanting new business ideas and capabilities into the product by way of every software drop. Functionality delivered alongside other non functional changes.

The principal has two immediate benefits.

From the customer’s point of view, each code drop brings some fresh and new solutions he needs for his business. After all, new functionality is exactly what he paid for.

From the development standpoint, the proper prioritization for new functionality prevents the product from freezing while the development team works in full capacity in revising and rewriting already working code.

I’m not saying that code maintenance is irrelevant. Software releases should be a balanced concoction of improvements both in business relevance and in code quality.

Short development cycles

Development in ‘short bursts’ is an all too familiar concept to the Agile advocates. This is a principal that has to do with the pace of the development and of the software delivery.

Having short and manageable development cycles insures close proximity for each issue between the time it is developed and the time it is tested. Nothing is lost by time or forgetfulness.

Another byproduct is by having pending and immediate deadlines; it is easier to keep the developers in check and optimal production.

Of course I’m letting go of many other aspects, but I think this captures the essence.

Customer involvement

This principal has to do with relevance. Nobody knows the business better then the customer. Hence, customer’s involvement in the application development is an asset.

Sounds so simple, but it’s probably the most difficult to practice. To make this happen, the customer needs to have focal points for every issue that might rise in development, and define direct access to these key professionals.

Having customer representatives on board during progress and status meetings might sound to some as walking naked in Times Square, but the other side for this exhibitionism is the total involvement of the customer in progress and prioritization.

And while involvement means cooperation and clarity means trust, the chances of the project to eventually ‘go live’ is as high as is can get.


Maybe next time I’ll have a short chat with the rhino.

Monday, May 11, 2009

Homecoming



I have just got back from a month long vacation to Australia. No words can do justice with the magnificence of that continent at the other side of the globe. When I grow up, I would like to be an Australian.


During my too short a visit, I had the pleasure of engaging with some very interesting people in the Sydney Open coffee meet up.

Harsh times have come to the hundred-acre-wood of the IT industries, and the Australian IT was not spared. Yet, it was apparent that the world wide gloom was not in residence. The messages I’ve heard were about times of change, opportunity and of new beginnings.

It had occurred to me that in deed times have changed. The rules of engagement are being rewritten. Opportunities lay in initiative and added value, rather than in the sole code-literacy capabilities that are the tools of my trade.

I was discussing exactly this with a good friend and experienced Sydney IT Recruiter Darren Saul at one of the Sydney meet-ups. Darren mentioned that he has seen a definite shift in the way employers qualify potential employees – “after all”, said Darren, “a great organization is only as great as its people”.

The way Darren put it, is that employers need as much added value as possible and it’s no longer enough to “just” be proficient technically, it is as important to really understand your industry sector as a “Domain Expert”. Employers recruiting in the financial sector, for example, will be looking for technical support specialists or developers with a very strong understanding of the financial industry, a strong knowledge of the industry specific applications and will be looking for individuals that are generally “Business Savvy”. Thus continuous learning and broad thinking are of the utmost importance to stay ahead of the rest and ensure your place as an integral, valued and respected member of your team.

As I see it, Darren’s definition of Business savvy hits the spot in what concerns the attitude for the IT people and industry. It’s like the difference between being a co founder in a startup opposed to the first employee being hired.

When I was fresh in the army, we used to practice night time maneuvering. They would team us in pairs, and we were given two legs to cover, one for each in the pair.

While one was doing the navigation, the other would follow until it was his turn to lead. The partner that was not navigating was called the dummy. He would carry everything and concentrate on following.

We quickly came to the understanding that the more involved your dummy was, in the actual navigation, the better your own results would be. Even if it’s your turn to follow, do your best to help lead.

For more of Darren check out his blog at: www.carnegiehillblogging.blogspot.com

Step up, lead the field.