Don't just do agile. Be agile.
AdrianCho 110000D4JA Visits (12893)
If you're thinking about embarking on the journey of agiletransformation you should be clear about why you want to become agile. The goalof being agile is to handle change. How would you handle change which, by theway, is often of the unexpected variety? At the very least you would not fallapart and stop operating. However it would be more desirable that youcapitalize on it. As jazz trumpeter, Miles Davis, said, "There are nomistakes in jazz--only opportunities."
If you're working in an environment in which everything isroutine, every project is like the last one, there are no surprises andeverything is predictable then you don't really need to be agile. As it turnsout that is not the reality for most businesses today. On a recent cover of themagazine, Fast Company, theyproclaimed “Modern Business is Pure Chaos.” If there is one constant in today’sworld, it is change. Military conflicts, the global financial crisis, andemerging economies are just some of the products of a volatile envi
With this realization, many people, teams and organizationsare on the path towards becoming agile. Yet many of them will go through themotions of changing without ever fully realizing the promised benefits ofagility. J.D. Hildebrand calls these people “agileslaves.” These are the people who have adopted all the trappings of theagile movement. They use agile tools, follow agile processes, study agileeducation and perhaps they even have agile certifications and titles. Yet theyare still not agile.
While agile tools and agile processes can make a bigdifference, they are completely useless without agile people. Agile peopleconstantly think about being agile. Their individual actions are performed withagility and they enable their team to act with agility. When everyone in anorganization can perform in this way you can have an agile organization.
Let me share two prerequisites to agile culture. Firstly youmust be highly aware. As an individual you are aware of your own actions. Ifyou write code then you constantly check your code to ensure it does everythingit should and doesn't do anything it shouldn't. Usually that means testing. Youdon't throw it over the wall to someone else to test. You test it yourself.Since you'll probably be testing that code a lot you'll want to write teststhat can be run repeatedly. The individual awareness required by a greatsoftware developer is not unlike the that possessed by a great musician. When atrumpeter produces a single a note she is constantly listening and makingminute corrections to ensure the note is in tune and sounding just like shewants it to. Individual awareness is required to attain virtuosity in any discipline.
However a group of virtuosi must work together to realizethe benefits of their collective talents. If you work in a team you mustpossess team awareness so that you are highly aware of what your team membersare doing. You must know what they are doing and what the team as a whole isdoing and you must understand how your contributions affect the team’s results.In music the combined result is the sound of the ensemble. As the great jazzpianist Oscar Peterson said, “It’s the group sound that’s important, even whenyou’re playing a solo.” In software the group sound is the build thatintegrates everyone’s contributions. Bad things happen when software developersdo their own thing without regard for others. There may be build-time errors,run-time errors, integration defects, poor performance, or a host of otherproblems that can result from a lack of team awareness. Remember that the goalof being agile is to react to change. Change can come from within a team. Ifsomeone changes an interface, removes an entire package or implements a complexfeature that will require guidance for users, others must react appropriately.
Of course awareness is only half of the equation. In a jazzband, one musician can listen intently but if his fellow musicians fail tocommunicate effectively, there may be problems or at the very least, missedopportunities to innovate. In a software development team people mustcommunicate effectively. They must act authentically, openly, clearly andcommunicate in a timely manner so that their colleagues can quickly and easilyreact to changes from within the team. On the projects I work on at jazz.net, we have worked toward this goal by doing all our software development work in the open. All our defects, enhancement requests, plans and builds are published on our site and anyone can provide feedback and interact directly with the development team.
Finally, there is the awareness of what happens outside ofthe team. Just like musicians who are constantly aware of their audience andhow they are reacting to the band’s performance, a software development teammust constantly solicit and react to feedback from stakeholders and customers.If there are competitors they must keep tabs on them. Teams must be aware ofwhat’s happening in their organization, in the market and must generally lookout for change that originates from outside the team.
This individual, team and situational awareness must be ever-present.People can’t just have heads down or buried in the sand. It’s not enough tojust “do work.” When change is constantly occurring within a team and around ateam everyone must be ready to react. Celebrated jazz pianist, composer and bandleader,Duke Ellington, said, “The most important thing I look for in a musician is whetherhe knows how to listen.” If one jazz musician remarks that another jazzmusician has “big ears,” it’s a compliment that means the person is constantlyaware and ready to respond to change. Those are the people you want in yourteam.
A second prerequisite to being agile is to be willing tochange. That’s right. In order to handle change you must be willing to change. Thismeans you must be continuously improving. That begins with the notion that whatyou’re doing now may not be the best method. Taiichi Ohno, originator of theToyota Production System, wrote: “There is something called standard work, butstandards should be changed constantly. Instead, if you think of the standardas the best you can do, it’s all over.” Many companies have a term for suchstandard work: “best practice.” Best practices are usually defined when theyare found to be effective in a particular circumstance. The danger is that somewill assume that these practices should be applied equally in allcircumstances. Yet if change is a constant every situation may be different.Most activities are sufficiently complex that there are many constantlychanging factors. Not only must any set of best practices be applied uniquelyto each activity but their effect must be monitored over time. To do otherwisemay lead to degrading performance as circumstances change and people fail torespond appropriately while taking false comfort in practices that might havebeen the best choice at one time but now require re-consideration.
To improve you must consider how are you doing. Thatawareness I mentioned before is the beginning of a cycle in which you capturedata. You then analyze it and produce useful information that is the basis formaking decisions and you then adjust accordingly before acting again. This isprecisely the continuous cycle of execution that would be employed by the trumpeterI mentioned previously. In a software team one of the most important ways inwhich improvement occurs is through team-wide retrospectives. Ideally thishappens at the conclusion of a sprint or iteration. At the very least ithappens at the end of a development cycle. Teams ask themselves three simplequestions: “what went well, what didn’t go well and what concrete actions canwe take to improve?” Open and frank discussions are paramount to realizing thebenefits of this process. If you never do this you’re basically saying you’reperfect. In that case I wish you good luck.
Becoming agile is hard. For many people, teams andorganizations it involves a major cultural change. Tools and processes and theother agile accoutrements can help you be more agile but first you must adopt aculture of agility throughout your team and ideally throughout your entireorganization.