« May 2008 »
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


Friday, 16 May 2008
"The Agile Edge" event, May 22
Topic: Shameless commercial plug

Valtech and VersionOne are hosting a one-day event called The Agile Edge at the Hilton McLean hotel in Tyson's Corner, Virginia, on Thursday, 22 May 2008. There will be three tracks: Agile Organization, Agile Engineering, and Agile Management.

Valtech's new Chief Process Scientist, David Anderson, will give the keynote. As we all know, any agile consultancy worth its salt must have a Scottish chief scientist. Valtech has now achieved that crucial milestone.

The estimable Mike Cottmeyer of VersionOne will handle the Agile Management track single-handedly, while Valtech's Mike Abney, Al Goerner, Nathan Slippen, Tim Walker, and your humble narrator will facilitate the sessions on the other tracks. This is mostly hands-on stuff, and not just talking heads and slide shows. It should be both fun and informative. Come and join us!


Posted by Dave Nicolette at 3:33 PM EDT
Post Comment | Permalink
Thursday, 15 May 2008
Point and counterpoint on TDD
Topic: Agile learning

An earlier post garnered some thoughtful responses from readers, mostly on the topic of TDD. Since these posts tend to scroll away fairly quickly, I wanted to point out that there are a few comments on that one that might be of interest.

If you're interested in the subject of TDD generally, you might find the following discussion lists valuable:

You might also find the following books useful:

 

There are several other books available on the subject of TDD, but they have very mixed reviews. If you're unfamiliar with TDD, you might find most of the other books a bit confusing.

There's also a sort of aggregator or focal point for TDD at testdriven.com where you can find references to articles and links to additional online resources.


Posted by Dave Nicolette at 9:18 AM EDT
Post Comment | Permalink
Wednesday, 14 May 2008
Chicken silencer
Topic: Agile management

A few months ago, we started a discussion group based on the book, The Art of Agile Development by James Shore and Shane Warden. Almost from the first meeting, the topic of discussion broadened into agile practices in general and how some of our own projects were doing. It has been a very interesting and constructive experience, and probably will continue indefinitely, book or no book. The discussion group is a great way for ScrumMasters and other practitioners to share ideas, experiences, issues, and suggested solutions. Recently we tried a somewhat radical idea and had ScrumMasters facilitate the retrospectives of teams other than their own, without having much knowledge of what the other teams were doing or what their issues were. Now we're considering having team members cross-pollinate other teams by sitting in and pairing with them for a day or so at a time.

One participant told a story this week about his team's retrospective that I found noteworthy. It seems one of our managers attended the retrospective as a chicken. At one point, a team member said something that piqued the manager's interest, and he engaged in a lengthy discussion with that team member, right in the middle of the retrospective (which was timeboxed). He was allowed to go on with this without interruption. I asked the discussion group what they thought the ScrumMaster should have done in that situation. Bear in mind that this particular chicken is the direct manager of this particular ScrumMaster.

A participant suggested that the ScrumMaster might carefully, delicately take the manager aside after the retrospective and gently, diplomatically suggest that perhaps he might, just maybe, let the team get on with its business and to try and remember that usually, sometimes, you know, if it's all right with you, "chickens" maybe ought not to speak too much during the retrospective, since according to theory, only the "pigs" are allowed to speak. Several heads nodded in agreement.

I nodded, as well, and then asked the group if anyone had another suggestion, since some of the participants have been through a CSM course and they might have received some slightly different advice about this sort of situation. No one offered an alternative.

So I did.


"Chickens don't talk!"

If the ScrumMaster was afraid to say this to his own manager, it raises a question about whether we have a culture of trust in our organization, doesn't it? The Right Thing is always the Right Thing. It doesn't change based on who is or is not in the room at the moment.


Posted by Dave Nicolette at 10:40 AM EDT
Post Comment | View Comments (2) | Permalink
Tuesday, 13 May 2008
Why do teams plateau?
Topic: Mindset and culture

It seems to be a common pattern that a team will adopt more-effective development practices and achieve a certain level of improvement and then settle back into old habits, or at least stop moving forward. Ron Jeffries recently commented on the phenomenon on the Extreme Programming list, following up on an editorial by Steve McConnell on "Cargo Cult Software Engineering." Others have added good insights as comments to Ron's message.

I've observed the same pattern, as well. In an earlier post here, I wondered why people are satisfied with just a small portion of the improvement they could achieve, if only they tried. I thought it might have something to do with maintaining focus on continuous improvement. Maybe there is something to that. At XP Day London 2006, Joseph Pelrine and Ben Fuchs gave a very interesting presentation entitled "Turning up the Heat (Without Getting Burnt)" in which they suggested shaking things up a bit when a team was slipping into a rut, to make them take a fresh look at themselves and how they're working.

I think it's a compelling idea. We tend to think of the process facilitator / team coach / ScrumMaster role as a protector whose task is to keep problems away from the team so they can work unimpeded. I wonder if the role is more properly a sort of "team sifu" whose task is to help the team realize its full potential. If your stance is off, your sifu may well kick your feet out from under you. It's for your own good, you know.

I'm not suggesting you allow a team to crash and burn. There's no useful lesson in that. On the other hand, if a team is in a rut you can kick their feet out from under them. The difference is that the team has to agree to it. If you feel they're in a rut, bring it up in a retrospective. Get a consensus from the team that things aren't going as well as they might, and that it's time to change something. It could be something really simple, like rearranging the layout of the team room, or changing the time of day of the daily stand-up. Sometimes that's all it takes to refresh the mind.

When a team reaches a plateau of performance, it may not be solely because of their focus on continuous improvement. There may also be a management problem. Consider the reasons why companies try alternative software development methods in the first place, and how management responds to the results of the initial projects. I like to ask managers why their organizations decided to give agile development a try. The only answer I have ever gotten is that the company's IT department had been delivering nothing at all for years on end. Of course, those IT departments were delivering software. Why did management think they had been delivering nothing at all? Because they delivered the wrong solutions too late and at too high a cost to do the company any good. Management was willing to try something different because it "couldn't be any worse" than the status quo.

The point here is that companies don't decide to try agile methods because they think they are already really, really good at what they do and they'd like to see some incremental improvement. They decide to try agile methods out of sheer desperation. When the new approach yields value, they are thrilled. Management wants to institutionalize the process their prototype agile teams used and replicate it across the organization. In these cases, management "locks" the agile process at an early stage of its evolution. From that point forward, continuous improvement is all but impossible. Ron suggests a team vary its practices so they can discover changes that might improve their effectiveness. How can a team do that when management dictates a fixed process? In effect, management has built a hard ceiling over their development teams.

Many agilists claim that their approach can deliver as much as 10x the business value of traditional processes. I've seen that level of improvement on occasion, myself. More typically, I've seen improvement in the range of 2x to 3x. The problem is that most people stop there. They are so excited about a 3x improvement that they want to celebrate and lock it in. Who can blame them? They don't really believe they can take improvement farther than that, because in their careers they've seen many "magic bullet" processes come and go, and none has ever delivered anything like 10x improvement.

It's hard to keep the process flexible enough to enable continuous improvement over the long term while simultaneously institutionalizing it throughout a large organization. I think this will be one of our main challenges in the next few years. Introducing agile at the level of individual teams has been quite successful since the manifesto was published. We won't get much farther until we address the problem of large-scale organizational change, so that agile teams can stop working around their own organizational cultures and start working with a supportive culture.


Posted by Dave Nicolette at 8:50 AM EDT
Post Comment | Permalink
Probing the unknown
Topic: Mindset and culture

...as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns — the ones we don't know we don't know.
Donald Rumsfeld, US Defense Department Briefing, February 12, 2002

When I was involved in a bottom-up agile initiative at a previous employer, I was surprised when we were able to get every individual we asked for from the IT department. Since these were the best of the best, I didn't expect their managers to let them get away. They were the heroes who prevented projects from failing in spite of a broken process. It turned out that these individuals were the ones who constantly asked questions about value and waste, and who circumvented the formal process to get things done. Their managers were happy to let them go because they were irritants. The managers didn't understand the contribution these heroes actually made to the enterprise.

On my current assignment, some of the client personnel lament the inefficiencies in their company's formal software development process. As we ramp up agile teams in this environment, we've found that project managers know very well who their heroes are, and they won't release them to join the new agile teams.

In both cases, the company had a broken process. They didn't know how to deliver valuable software effectively. The difference is in what the managers knew they didn't know. At the first company, project managers were happy to release their heroes because they didn't know they didn't know how to deliver. At the second company, project managers jealously guard their heroes because they know they don't know how to deliver. The second company may seem dysfunctional, but in reality they are miles ahead of the first company.


Posted by Dave Nicolette at 12:01 AM EDT
Post Comment | Permalink

Newer | Latest | Older