Dec
09

Waterfall and other straw men

Doing stupid things on purpose

Straw man looking for a brainGlen Alleman has read Dave Nicolette’s account of the ‘9 boxes’ session. Glen recognizes the structure of the typical ‘agilest’ argument:

  • Set up a straw man, where people do stupid things on purpose
  • Introduce an agile practice that solves the problem. Of course, the solution is nothing more than common sense dressed up in agile’s funky terminology. If those people weren’t doing these stupid things, we wouldn’t need agile.

As Glen says: “Some kind of inane software development process is applied to a problem. No in the loop customer, just big bang requirements developed by strangers, no feedback anywhere in sight, lots of linear testing at the end, and of course Dilbert management running the show.

Yeah, in those circumstances it’s really easy to improve the situation by implementing some agile techniques, like making customers and developers talk to each other.

Another reading of the same text

I read the structure of the blog post as follows:

  • Here’s a description of a situation that I experienced several times, where people were doing things that I considered stupid.
  • Here’s how we introduced some agile technique and got better results.

As Glen suspects: “Maybe I’ve been around good engineering practices – ones that also use agile – too long and have lost touch with those folks out there “‘doing stupid things on purpose.’

Are there companies out there who use the waterfall methodology? Yes, I’ve worked for some of those.

Are there companies out there who use the chaos methodology? Yes, I’ve worked for some of those.

“They” are wrong

The interesting question Glen asks is “Why?” Why would anyone do things we consider to be stupid, on purpose? Obviously, they don’t think it’s stupid. “This project would have succeeded if only they knew what they wanted and didn’t change the spec every five minutes!” If it doesn’t work, do more of it. Write even more detailed specs upfront. Keep the customers further away from the project, lest they change things.

What are the mental models in use by those people? Obviously, they are different from the mental models Glen and I use. How did these models get created? How can we change those models? How can we remedy the lack of leadership?

Have you noticed that in those cases it’s always “they are wrong”; never “us”. Who are those mysterious “they” who sabotage our projects? I suspect that is an important part of the model. Using a simple, but effective, interview technique where we co-create a shared vision of the future is a small step in the direction of “we” solving a problem.

p.s. I hate Dilbert. Not just the cartoon, the character. The next time you laugh at the inane antics of the pointy-haired boss, ask yourself how Dilbert’s actions (or inaction) reinforces that behaviour. Oy, Dilbert! Stop being a spineless idiot, wallowing in your role of victim! Demand better of yourself.

Thank you to Portia and Chris for the Scarecrow

Dec
06

David Anderson @ xp.be on December 10th

Agile ManagementDavid Anderson will talk about “Building a high trust culture in your software engineering organisation” on December 10th in Antwerpen, Belgium.

The Javapolis conference has provided the xp.be group with a BOF room.

Register to attend this presentation.

I’m looking forward to hear from and talk to David. I’m very interested in the application of the Theory of Constraints in agile software. Now, David is exploring a more Lean , Kanban based approach.

If you’re really ‘extreme’ you have to question everything, for example the value of a (large) backlog. According to lean principles, this is work in progress, inventory, waste. What David explains comes closer to a flow-based system. More about this at David’s Javapolis session.

But that’s NOT the topic of this talk. The topic is:

“If the essence of agile development is rooted in high levels of trust, how do you set about creating a high trust culture? When so much of what you and your team may have experienced in their career is based in an assumption of low levels of trust – contract negotiation, audit, finger pointing and blame, how do you set about reversing that and building a high trust culture?

What is trust? How do you build trust between individuals and is it possible to build trust between teams and across organizations? What are the benefits of high levels of trust? And why it is essential if your agile and Lean organization is to be “built to last”?”

Does your team or organisation have enough trust? If not, come to the session. I’ll post a summary after the session.

See you there.

Dec
02

Compromising agility

Angry old men

Clarke Ching is an angry old man. So am I.

We seem to have gotten exactly opposite messages from the same session. I can’t tell you what the intent of the session was. Gus, Simon, will you tell us more about the intent of the session?

I can only tell you what I got out of it. To be honest, I didn’t really listen to the introduction of the session, when Clarke snuck out. I was still too busy thinking about the previous session, about the concerns of business. But I got some stimulating discussions around the themes of the session.

Do I think there is a danger of compromising agility? You bet. I’ve seen several projects fail because of that. I was responsible for several of them.

If at first you fail, try again

For example, on one project I compromised on collaboration and feedback when my team was denied access to real users. We could talk to the process specialist whenever he was available, which wasn’t often. Our software just had to support the processes he had drawn up. No intermediate releases, no user testing; release everything at once at the end of the project. You can guess how this story ends: we delivered software that faithfully supported a process that was impossible to implement effectively. Looked good on paper; not so good on the work floor. The software was not put into production. What a waste of time and effort.

And this wasn’t the first time either: the previous attempt (before I arrived) was binned too. The salespeople had calculated how much time the workers could spend on each customer to make the service profitable. Just entering data about the work in that system, without doing any work for the customer, took longer than that. So, if they used this system they lost money on each customer, by definition. Major disaster. For the next attempt nothing was changed. Steady as she goes. So much for learning.

There is a better way

I was responsible for the failure. I was mad. I had nothing to lose, I was a dead man walking. Surprisingly, that customer didn’t throw me out after this disastrous project.

So, we made some changes. We no longer accepted compromises to our values. The team went to the workfloor (gemba) to see our users in action (Genchi Genbutsu) and to talk to them, to involve them in the project. We had to regain the trust we lost with all those failures. We set up shorter releases (every two months instead of every year) to get more feedback and to deliver value sooner. Three months later this application went into production. At first in a “pilot” for a limited number of products and customers. But, probably a first in this company, shortly afterwards managers and workers asked for the system to be put into full production use earlier than planned. The users gave us lots of useful feedback and each two months we delivered an improved system. Today, there is a real lean culture of continuous improvement and worker involvement on that work floor. Today, they are making money.

Compromising agile values

I’m not talking technical stuff here. Who cares if we did TDD or pair programming? I care about quality work, communication, collaboration, feedback, delivering value, steering… I care about agile values. I don’t want to compromise those, because every time I compromised them, the result was failure.

Why did I continue to work on that project, knowing full well that these compromises severely reduced the chances of this project delivering business value?

Should we go back to work and demand better? I demand better of myself.

Am I extreme? Sure. I want to do better each time, make things better than they were before. That’s why I’m in it.

I agree with what Clarke says. There’s a danger if there’s too much focus or dogmatism on the technical aspects or the practices. I know of one team who “went dark” because they had to “refactor for 6 months”, leaving their manager with absolutely no idea what they were up to. They were doing “Extreme Programming”, but not as we know it. I think we can “evaporate this cloud” by clarifying if this session was about agile practices or values.

I’m not willing to compromise my values. I demand better of myself. And, as Clarke predicted, as a result I’m out of a job 🙂

p.s. About Scum

A few weeks ago, I had to approve a training request to send people to “Certified SCUM [sic] Master” training. Nobody else of the many people involved in this process made any remark about the name of the course. Scrum is very new in this organisation, so “scrum master’ wouldn’t be familiar to most of the people involved. If I were a manager who had to approve a request for “scum” training for my team, I would ask some questions. Does this tell us something about the value this organisation places on training and quality? Maybe. Maybe it’s just a typo.

Respect for people, that’s another one of those values…

Dec
01

XP Days London 2007 – Day 2

Morning

Yvonne Rogers talked about technology to support (remote) collaboration in the second keynote. Most of the solutions looked quite technology-driven. I don’t have much experience with remote collaboration, but it is happening more and more. For example, the XP Days Benelux organizers do most of the work remotely, with a few face-to-face meetings and simple tools (Skype, wiki, mail). But then, we’ve known each other and have worked together for years.

Joseph Pelrine and Jiri Lundak looked into the reasons “Why Agile Projects Fail“. This session had a mix of talks by Joseph and Jiri with exercises for the participants. The failure modes I’ve experienced most often are

  • a lack (or lessening) of discipline, which leads to ever lower quality, which slows things down, which leads to corner-cutting and even less quality and so on… At first you don’t notice, so you don’t act. Imperceptibly the team goes from agile to hacking.
  • the development team is agile, but the rest of the organisation is not. For example, the team delivers regularly, but the software is not put into production or not used until very much later. Or the development team gets fed bogus features for non-existing customers, because there is no effective feedback loop for sales.

Read more on Simon Baker’s blog.

Afternoon

I tried to go to Duncan and Rachel’s “But that’s crazy! Cognitive bias in decision making“, but the room in Southwark Cathedral was packed full when I arrived. So I dashed back to the Glazier’s Hall to go to “Business is having to change faster to respond to its customers – how can the Agile community help?” by David Stoughton. I’m glad I returned, because this was the session of the conference.

The presentation was excellent in style (très Zen) and content. The session talked about marketing, virality, the quickening pace of business, the challenges of business today, the changing role of the customer. The presenters left plenty of room for discussion. One point was raised about ‘agile’ consultancies: if business has to react fast, why can’t we supply teams quickly to our customers? We talk a lot about agile, but are we agile ourselves? David, will you provide us with pointers to further information?

This was an excellent followup to George Ataya’s session at XP Days Benelux, but faster, more fun and with more discussion. I want to see more of these sessions. I have no problem convincing business people of the value of agile. On the contrary, this is what they’re asking for. The only problem is that many of them are resigned to the fact that this isn’t possible, lulled to sleep by incompetent IT departments, consultants and vendors.

Cut out those incompetent middlemen! Talk to business people directly. Give them back hope. Tell them they already have all the heart, brains and courage they need. Talk about risk, cash flow, visibility, return on investment, alignment, agility. As I said before, stop reading IT books, read some busines, marketing, sales, economy or accounting books. Or go to a keynote by David Stoughton. It will open your mind. XP Day London organizers, will you grant my wish?

Finding back our lost Mojo and Agility in the Conversation Cafe

ExcellenceSimon Baker and Gus Power hosted the a Conversation Cafe to discuss if we have “Compromised our agility“? The tables in the café had little candle-like lights, writing materials, an initial sketch of one of six reasons agility can be compromised and lollipops. The lollipops could be given to people who talked too much 🙂

Each group wrote down their thoughts about the subject at their table. Then, all but one person moved onto another table to work on another subject. This simple exercise generated a lot of discussion with a lot of different people, so you got a lot of ideas in a very short time. The image on the left shows the thoughts generated about ‘Excellence’.

You can see Simon and Gus’ writeup and the results on their blog.

The discussion continued into the panel discussion on ‘Have we lost our mojo?‘ Has agile crossed the chasm, become mainstream, become boring, become one of the bullet points of major consultancies? Are we no longer the young, plucky rebels taking on the evil empires?

Well, maybe not. Maybe, as Emmanuel Gaillot said, we have outgrown our rebel leather jackets. Maybe we’ve grown up a bit. But that doesn’t mean we have to compromise our agility.

I remember when Vera and I did our first talks about extreme programming. There was one evening seminar for an audience of testers, where the discussion was so animated that the closing drink was skipped. Late at night we were thrown out of the building by the night guard and the discussion continued in the parking lot. They had never heard such ridiculous ideas. People still talk about the seminar today.

Within two years our most vocal opponents of that night had done talks about agile testing, exploratory testing, the role of testers in agile teams on that same stage. Our presentations were greeted with “oh, but that’s just common sense!” shrugs. We had become mainstream, boring…

Really? Well, lots of people claimed to be agile, but didn’t pass muster when you looked, not at what they said, but what they did. That’s why I like extreme programming and Lean. You’re always striving to go further, always looking for impediments to remove. Whenever someone says “You can’t do that here!”, the only sensible reaction is to ask “Why not?”.

I’m glad that people still regularly think I’m crazy. “You want us to decide on requirements later rather than sooner? You want us to release more often to decrease release cost? You want us to go faster to improve quality? You want us to deliver each month, from the first month on? That won’t give us enough time to design our architecture and implement all the infrastructure we will need! What? Release every week? Are you crazy? Next thing, you’re going to tell us you want to release every day, haha! Oh, you are? This goes against everything that we were taught!“. Yeah well, how’s all that learning working out for you?

Question common practice, Jeff Paton said. For example: why do we need backlogs, that essential element from SCRUM? Why can’t we do away with them? I think we can and Dave seems to think so too. Let’s keep questioning everything we do. And let’s keep up the energy and the fun.

Closing

There is no closing at XP Days London, we just go to the pub. Rob, Gino and I had just enough time for one pint. With all that energy from these great sessions, Portia and I continued our brainstorming for session ideas for Agile 2008 and other conferences. We have lots of ideas for several fun sessions. On the train back to Brussels, Gino and I developed another session proposal.

Having attended Bootcamp, XP Days Benelux and XP Days London in a row, I went back to work, energized to do some more crazy stuff.