Agile infiltrates an increasing amount of organizations. Changes in the jargon detect its influence. Phrases and words like “inspect and adapt”, “vertical slice”, “velocity”, and “collaborate” start getting batted around like volleyballs at a beach party. People ask questions in the serious tone of a late-night host discovering what is interesting about the guest: “What is the highest ranked item?”, “What are the acceptance criteria?”, “What does the team think?”. Zealots mutter incomprehensible phrases like “maximize the work not done” and “tracking actual hours worked is unnecessary”. People insist it takes a shift in mindset to understand, and yet we don’t sign up for loosing ours in the bargain. How should this be dealt with? Where to start?

Some current activities must be worthwhile. Utilizing these new Agile tools for working, the team can gain consensus on what those things are. It’s not that what we’re doing is under investigation like a new federal appointee. How can the team carry on the best of the organization while remaining willing to change that which does not work and moving on?

With the basics understood, one way may be through reflecting on what works right now. Retrospect and close out the old while opening up to the new. This may be intensive, as the scope of the session could be broad and wide.

What works well for the team? These are the team’s working agreements. What works in the process? Map out how ideas turn in to revenue with a value stream.

The best way to capture the information is with high visibility. Hung on the wall and written to be read across a room. While analyzing the information the team also looks for immediate improvements and prepares the way to embrace the new Agile culture.

Using a retrospective approach in this way helps the team build consensus through collaboration. Keep an active meeting objective visible, as well as an area to park off-topic suggestions and ideas. With the iterative approach of Agile the team can also safely begin transitioning away from traditional behaviors and courageously embracing this modern approach to software development.

Lately I’ve been reading about people lamenting unsuccessful adoptions of Scrum within organizations. Somehow, these entities survived before Scrum was introduced. They are not just going to fold because they have not done it right. They may choose to ignore some of the principles of Agile and continue to bring in revenue without coming all the way around.

So the Agile community has some advice. Make sure good technical practices are in place. Have motivated and skilled people in the trenches with the will to change. Make sure there is executive support. Use some assessment tool. There are other suggestions, these just come to mind immediately.

If the right ingredients are not present, people are encouraged to leave the organization, or the organization to get rid of the misfits. Coaches are encouraged not to engage with dysfunctional organizations, or to fire the client when they discover that the resistance is too great.

This leaves me feeling uncomfortable. What about those left behind in the wreckage of an implementation gone awry? Fear, stress and lies are still the modes of operation. There is no hiding from the authorities. The overhead of the process is overwhelming. People are worse off, thanks to the mangled introduction of Scrum. For many reasons including personal and macro-economical, people cannot just leave the situation.

What should be done to help them?

Aaron: How did winning the award help your efforts with Agile?

Kenji: Being honest, actually nobody in Japan knows that award. Some Japanese colleagues really congratulated me about winning and that made me cry. But, no other business effect.

Aaron: Why was it emotional for you?

Kenji: I have been long trying to introduce Agile to Japan, to change engineers’ lives for the better. That effort was acknowledged outside Japan. My colleagues and friends also helped me with the effort together.

Aaron: So winning the award was a collaborative effort?

Kenji: Yes. Along the way of introducing Agile to Japan, they came and formed a good community. Do you know that my speech of Gordon Pask Award is on YouTube? The last part I spoke in Japanese was acknowledgment to the community.

Aaron: Excellent! What would you say is the best way the lives of engineers changed with Agile? Is it the community? Something else?

Kenji: To me engineers themselves changed after Agile. They now know they can change, in other words. They know now that they no longer have to be just sheep. Agile is an anti-bureaucrat, anti-formalism, anti-establishment… I don’t know the right word. Something that says “no!” to the old way of thinking, and that often makes conflicts in organizations the engineer belongs to. I was lucky to have had a good boss.

Aaron: That always helps, to have the support. In your speech, you say it almost got you fired. Why was that?

Kenji: Many of us (Japanese engineers in the community) experienced conflict. So what I wanted to say was in the speech, as to “get fired”, was that we have experienced a long and unhappy, not-well-treated era up to that day.

Aaron: Different direction. How have you been applying mind mapping lately?

Kenji: 1) When I explore new features in the product. I do this a lot before writing user stories. 2) When we have a meeting to get a whole picture of the agenda together via projector, and 3) when I organize an article what to say in it.

Aaron: What else are you working on these days?

Kenji: Giving talks on how to make a good “informative workspace”, how to be a good facilitator. I have been giving that talk (“Project Facilitation: tools that improve productivity and motivation of collaborative work at Gemba” is the title) for 5 years, over 100 times!

Aaron: I bet you hardly need notes!

Kenji: I can automatically talk. I’ve been invited to give that talk to PM, QA, management, leadership and other communities, too.

Aaron: What do you like best about that talk?

Kenji: It includes a lot of pictures and it says “you can change” and you can help others. I think it has been invited to a lot of conferences because I hid Agile behind the talk.

Aaron: How do you mean that? I would guess that it means you introduce ideas about Agile in the talk? But don’t mention it ‘out loud’ or advertise it before the talk?

Kenji: The ideas are from Agile, TPS, and Facilitation. Mostly Agile. I don’t say Agile out loud on purpose.

Aaron: What kind of ideas come from Agile that help facilitation? Is it about letting people know they have the power to change their own situation?

Kenji: Agile is anti-establishment, so not many managers like it at the first look.

Aaron: So you cannot say the word or they will not let you talk (or not listen), right?

Kenji: Yes. Visualization using the wall, including Kanban, task board, burndown-charts with synchronization technique (stand-up) and self-process improvement (retrospectives) and a lot more.

Aaron: Since we all have to work with our managers, how do you include them in feeling comfortable with these ideas?

Kenji: I show them an example of a team in two separate places communicating with Kanban (or task board), but not much. Japanese managers, actually like Deming, PDCA, and Quality things a lot. So, when I say “Agile is PDCA”, they suddenly understand and start to like it. There still is a culture of QC circle.

Aaron: PDCA seems a lot like inspect and adapt, doesn’t it? Perhaps more formal?

Kenji: Yes that’s it.

Aaron: Does the QC circle help with continuous improvement and change for good?

Kenji: Yes, but old QC circles are getting “just-do-it”. or what to say, formal non practical and younger engineers don’t like them.

Aaron: Too rigid?

Kenji: No, ineffective. Empty. They do it because they are told to do so. No soul or motivation in them. A “let’s get this over with” kind of event. So QC circles remains its “shape” but not working effectively these days. And managers who saw my slides (not knowing it is about Agile) recognize it as a new articulation of self-improving process. And managers and engineers start to talk. They haven’t talked with each other… talk about not Agile, but improving Gemba. And that is fine for me. It doesn’t matter how it is called… Agile, TPS, or QC. What matters is the fact that they started talking to one another and changing their way to improve their engineering life.

Aaron: Why do you think that is? I mean, that something as simple as the “information workspace” helps this?

Kenji: Not only that, I should add retro, standup meeting. I talk about how you can do the job together and how you can improve the job at the same time.

Aaron: I see… Are you still using niko-niko? I find the concept fascinating and wonder how the information may be used.

Kenji: Yes. It is used to exchange conversation. I’m not sure you can understand. Japanese engineers don’t talk so much. I mean, culturally, they don’t talk about themselves a lot.

Aaron: So it is like indirect conversation about how they feel?

Kenji: Yes, indirect conversation, AND it is a good trigger to start talking. Culture of shame. As Ruth Benedict called it in “The Chrysanthemum and the Sword”.

Aaron: So they are embarrassed, or find it … rude?

Kenji: Yes, embarrassed. Or uncomfortable to start talking loudly about themselves.

Aaron: So it is a nice tool to help them overcome that shyness…

Kenji: Yes that is one and the other is, for the manager to notice like “everyone seems like they’re happy but there is one who is unhappy for the whole week. I should talk with him in person”.

Aaron: An invitation to a conversation, almost like a story card!

Kenji: Yes. you can say that.

Aaron: We’re about out of time, is there anything else you would like to mention?

Kenji: I’d like to say that the Gordon Pask Award helped us (Japanese community) start a phase II Agile movement in Japan. As a concrete result, we successfully held “Agile Japan, 2009”, the first Agile Alliance sponsored conference in Tokyo, on April 22nd, 2009 with over 200 attendees.

In that conference, we prepared “Pair discount” pricing and strongly recommended the attendees to come with their boss or clients. The result was 75% of them came in pairs! I believe it is a sign that engineers, managers, and clients have started talking to one another to make this software development world better with Agile (or whatever they call it.) I think this is the greatest effect of my winning the Gordon Pask Award.

Thank you very much.

Aaron: Thank you so much, Kenji.

fail sign from failblog.orgLast night at the BayAPLN, Jean Tabaka from Rally Software gave a presentation about the typical failure modes of Agile. This is distilled from her observations and being asked from people who have heard the hype, what are the real problems with adopting an Agile approach?

Which is your current favorite?

  1. Checkbook commitment doesn’t support organizational change management. CEOs create within the company their own personal family dysfunction.
  2. Culture doesn’t support change. Reward plan, and a static and prescriptive standard of work. Try to keep cross-organizational uniformity and use PMO as enforcers.
  3. Do not have retrospectives, or they are bad. Actions which come out get ignored or written off.
  4. In a race to finish features, the infrastructure gets worse and architecture becomes unstable. Distributed teams make this worse.
  5. Lack of collaboration in planning. Like having the whole team for release planning.
  6. None or too many Product Owners. Both cases look the same. Agile is yet another hat to wear and the person is already too busy. They check out and ask the team to just do Agile. Can’t get past the ‘this sucks’ phase of adoption if the business is not bought in.
  7. Bad Scrum Master which uses a command and control style with the team to look faster, yet in reality slows things down. Low morale lowers IQ. Take decisions away and it actually makes people stupider!
  8. No on-site evangelist. If the teams are distributed, need one at every site. Can’t reap the benefits of Agile or offshore without an on-site coach at each location.
  9. No solid team. Actually missed this one, inferred. Empowered teams amplify learning.
  10. Tsunami of technical debt if don’t pull tests forward.
  11. Traditional performance appraisals. Individual heroics rewarded, glad you’re not a team player!
  12. Revert to traditional. Change is hard. Hit the threshold where this sucks. Revert back to old ways of doing business.

Jean then challenged the group to choose the one issue they would like to see changed at their work and come up with an action plan right now to change it. In a month, retrospect on how well it went. Perhaps that would be an interesting open space subject in a couple of meetings for the BayAPLN?

It isn’t all bad. In writing this blog, I found that Rally has also started posting the top 10 characteristics of an Agile organization.

Update: Adding the video from Agile Australia mentioned by Mike Alber.

Day 1 – 9.45am – Jean Tabaka from Zoltan Deak on Vimeo.

What is all this stuff?
Can we take a look at the Product Backlog? Does this backlog contain a long list of prioritized “stuff to do”? Does this list include defects, functional tasks and/or feature requests? What else? Does this list include everything? Are there more items in the backlog than we can see in one glance? Have we determined the business value in this “stuff” as a basis for stack-ranking these Product Backlog items? Can we estimate this “stuff” in terms of relative complexity and help with prioritization? In reality do we have multiple lists for the product being worked on simultaneously? I would guess if the Backlog exhibits any of these qualities the product suffers accordingly. Does it suffer? Don’t worry, we can sort this out.

Coherence
For some, transforming lists in to a Product Backlog of this stature appears daunting. Enthusiasm to just get it done may ignite a desire to take it on all-at-once. Through the application of some workshops to shape and strengthen the backlog followed with check ups at regular intervals, the highest priority needs of the product should be well understood by all while team members remain friendly with each other.

Step-wise refinement
AKA Inspect and adapt. AKA kaizen. AKA iterate and increment. We can apply it as well to the effort of keeping the backlog in shape. Starting with what we have let’s sharpen it up a little, evaluate it against the running and tested features, step back and take a look at what we need and tune the backlog a little more. Take breaks to help keep the energy up, and the perspective fresh.

Who should we involve in this?
If possible, the whole team and the customer who will use the product and led by a single Product Owner. The team may be large, customers busy and the users many. Representatives from every role involved in definition, analysis and design come together to shape the backlog in these instances. Led by Product Management, common roles for the Product Ownership Team include Business Analysis, User Experience, Technical Publications, Software Engineering, Quality Assurance and Customer Support. The people involved should include those who can represent Product Ownership for the Scrum teams involved. The team should be broad enough to ensure a shared understanding by everyone of why we make what for whom. This team should be small enough to maintain consensus and get things done in a collaborative manner.

How important is it?
Everything captured in these lists are important, or should be removed. What critical needs should the system provide to the market, customers and users? Leaving some in vague terms is all right. What objectives do we satisfy and what outcomes are we looking for in a release? Write these up in a largely visible way for everyone to see.

How many items do we have?
If there are more than 3 or 4 Sprint’s worth of items on the backlog, we can walk through the backlog and prioritize based on the visible goals. Anything that can be easily agreed to as necessary calls attention to why they are valuable. It may necessitate adding to, or modifying the goals as well. Along with breaks keep sorting and look to see if about twenty percent, and/or enough for about three Sprints, of the items have bubbled to the top. Along with the visible objectives and outcomes, this will help ensure we concentrate the rest of our efforts on the things we need to work on now.

sifting the rice.jpg by Lauras51What do we have?
Let’s determine what types of “stuff” dwell in these lists of requirements. Could there be features, system specifications, use cases, tasks, defects, change requests and other errata? Does anything answer to the format of a User Story? Could it be considered a good one? Does the story have any acceptance criteria attached to it? At the end of these exercises, the backlog items should be identified by type. Characteristics of good User Stories have been discussed and examples are now identified. The teams start to have a better understanding of what is being created to fit the domain.

What’s it worth?
Starting with the first item, the team should discuss how this may fit in to a User Story. If there are items identified as User Stories, check for clarity what makes that the case and refine as necessary. The story may need some rephrasing, split if complex, or combined with others if not really valuable. Capture as acceptance tests the confirmation agreed upon as the scope and value of this user story.

Features and change requests are close to user stories. Once a couple of user stories have been discussed these are easy to reformat to fit the template. If it is not a user story, it could be part of acceptance criteria of one. Use cases and tasks are likely candidates. Otherwise, it may be a non-functional requirement or a constraint of the system. These are likely found within the tasks listed. Defects encountered should have the actual and expected outcomes recorded. This helps make sure they are not really change requests. If they are enhancement or change requests, it is easy to rewrite as User Stories.

What else needs to happen?
Now that the backlog format contains User Stories we can estimate relative complexity with Planning Poker. Look for the themes that the User Stories belong to, and identify Epics and Spikes. Keep the non-functional system constraints visible. We can turn it in to a Backlog Map, AKA Story Wall, to help prioritize and discern viable releases. Mid-Sprint pre-planning meetings will keep the backlog in shape, ensuring there remains 3-4 Sprints’ worth of Stories and well-understood acceptance criteria.

Is that all?
Keeping the backlog in shape with well-sized User Stories and acceptance criteria is an ongoing process continuing for the life of the Product using routine collaboration sessions, design workshops and Planning Poker. This is the input in to the system and Sprints will only go as well as the shape of the Product Backlog.

Gordon Pask Award Logo Mockup This is the submission I had accepted for Agile 2009. Since the link to the submission may still be password protected, I’ll include the session here.

Stage: Leadership & Teams — Type: Panel
room: Toronto — time: Monday 11:00-11:45, Monday 11:45-12:30

Level: Practicing

The Agile Alliance states that “The Gordon Pask Award recognizes two people whose recent contributions to Agile Practice make them, in the opinion of the Award Committee, people others in the field should emulate.” This panel brings together some of the previous winners so that they may share their contributions and help encourage others to participate in building the body of Agile knowledge. For the intermediate practitioner, it should reinforce the notion that as we practice Agile and learn how to adapt for the best outcome, sharing what we learn helps the whole community.

Process/Mechanics

The target audience is David, Agile Developer, who is a practicing Agilist. David may not be aware of the award, nor the Panel of who David is. David is out there doing incredibly good work and too humble/busy/whatever to say much about it. Past winners may be looked up to by David, and he might like to share his ideas if he felt camaraderie with the group. Let’s find out what he’d like to know from the previous winners, and what he would like to contribute about what he has been up to.

The audience will come up with questions to ask and ideas to present. We will end up with a prioritized list for the session. For those who wish to continue the discussion, we will have a final iteration of the session in the Open Space area.

Each question will be given one minute to ask, 2-3 minutes per person to answer, for a total of 10 minutes per question.
Each idea will have 3-5 minutes to present, and 2-3 minutes to answer questions, one-at-a-time, for a total of 15 minutes per idea.
Time limits will strictly be adhered to with a signal.

3 iterations of 30 minutes each, with 20-25 minutes in each iteration dedicated to the discussion.

Iteration 1

  1. Introduce audience to writing questions and ideas (2 minutes)
  2. Very brief intro of the session and explanation of the award. (3 minutes)
  3. Prioritize questions and ideas (2 minutes)
  4. Facilitate question answering and idea presentation from backlog. (15-20 minutes for questions)
  5. Quick reflection on iteration (3 minutes)

Iteration 2

  1. Facilitate question answering and idea presentation from backlog (25 minutes)
  2. Quick reflection on iteration, and possible addition of ideas and questions, with reprioritization (5 minutes)

Iteration 3

  1. Facilitate question answering and idea presentation from backlog (20 minutes)
  2. Retrospective on session (10 minutes)

Take it to Open Space for one more Iteration

Learning outcomes
  • Understand what the Pask award is and why it is given
  • Gain insight in to how the Pask award members enable Agile in new areas
  • Learn how the Pask award functions as encouragement
  • Share innovative practices currently implemented in our community (by you!)
  • Strengthen the network of emergent Agile leaders

Aaron: What one thing was most important for you to mention in your acceptance speech?

Jim: When Brian told me the main thought that came to my mind was, “Oh, boy… what am I going to do with this?” It is the only award that the Agile community gives. I had this overwhelming sense of responsibility, “How can I live up to this?” For the acceptance speech itself, I felt it important to mention the other people out there who are also contributing.

Aaron: How did you get involved in Agile and why is it important to you?

Jim: In 1999 I was asked to lead a team and in looking at options for methods to use on this team I decided on Feature Driven Development. Software process is something I had been interested in for a while. One of the people on the team said to me, “Let’s use XP.’ and I said, “What? What is this?” and he said, “Well you can read about it on Ward Cunningham’s Wiki” and I said, “The what??? Well, you know we’ve already got this established so I’d like to keep on going in the direction we’re going if that’s all right.”

We delivered that project. It actually got canceled part way through. Someone wasn’t paying attention to the budget. Which was one of the learning experiences for me about how much is involved in just getting a software project out the door. It was canceled but since we were doing iterative development we delivered the software anyway.

I started looking in to Extreme Programming and reading the stuff on the Wiki and it looked really interesting. Some of it looked absolutely ridiculous like pair programming was obviously stupid and incremental design, another idea that could not possibly work. It was proposed by people who I had a lot of respect for; whose language and thoughts resonated with me and what I know about software development. So I had to try it. Even though it was obviously dumb and couldn’t possibly work.

Aaron: How do you learn most effectively?

Jim: By trying things and seeing if they work. The next project I was on I tried a few things, like test-driven development. They worked really well. That company called me back and said, “We figured out what happened to the budget, come back.” They had misplaced their budget. I said, “I’d like to finish this up using Extreme Programming.” We did all of XP by the book as close as we knew how. I wrote about it on Ward’s Wiki. At that time it was fairly rare. There were a lot of people interested in Extreme Programming, but not a lot of people actually doing it.

I tend to write about my experiences. Shared experiences are the best way to learn. You know, direct experiences are the best way to learn and then the second-best way is to learn through other people’s experiences. Simply declaring an opinion doesn’t do much for me.

Aaron: Who are some of the funnest people that you’ve collaborated with?

Jim: I have enormous respect for a lot of people in the Agile space. Alistair Cockburn saw some of the things I was writing. He saw that I was located in Salt Lake City so he invited me to join his Round Table. I’d bring in my problems and we’d talk about them and I’d say, “That can’t possibly work” and I would go away and try it and come back and say, “Well, you know… that worked. Here’s what I did and now here’s the problem I’m having.” Which I wish more people would do. I wish people would say, “That can’t possibly work” and try it and find out. It seems like the mode is, that can’t possibly work and turn off brain.

That project gave me the opportunity to see how Extreme Programming works over the long term with a fairly large team. It was 8 programmers on this team, on average. We had a substantial code base by the time I was done with it. We delivered every three weeks from the beginning. Never missed a commitment.

Part way through this project I was hired to create a new team here in Portland. I hired Rob Myers to work with me who has been an XP coach for years. I really enjoy working with Rob. Diana Larsen and I do a lot of collaboration and she’s just fantastic.

I think the thing you’ll see in common with everyone I work with is they are all passionate about doing a great job. They are all passionate about seeing the industry improve. The people I’ve mentioned and others too, are about making life better for software developers and projects first.

Aaron: Is that what you find important to you about Agile methods?

Jim: In 1999 there was absolutely no monetary benefit in doing this stuff what so ever. I did it then for the same reason I do it today. It is the best way I know of for doing software development. After you’ve worked on an XP project for a year and a half that was really successful, working in any other way is like licking sand paper. It’s just really not fun. Doesn’t taste very good, either.

Aaron: What are some of the approaches that you used that allowed people to really pick this stuff up and run with it?

Jim: The biggest thing that I’ve always found is total immersion. It is my preferred way of working with people. There is enough of a mind set change involved in this work. The most effective way I’ve seen of conveying that; is to simply work with somebody who really knows what they’re doing.

Training some times works. It can inspire somebody who has got the idea. You can pick this stuff up from books. I didn’t learn this from anybody. I learned by trying and asking for help and talking about my experiences. And reading about it. I know it can be learned that way. What I’ve found in the ten years I’ve been helping people do this is following a leader who has done it before; having them work with you directly is by far the most effective way of getting it in to place quickly.

Aaron: Since winning the award, how do you feel your opinion or perspective on Agile has evolved?

Jim: I think it’s deepened. I’ve come to have a broader understanding of it. I’ve certainly seen the community change in that time. It’s now a moneymaker and so we’re seeing opportunists come in. We have a lot of people who don’t know what they’re doing. There’s a huge amount of marketing rhetoric out there combined with some fairly incompetent people. Even the competent people, the ones more interested in making a buck, are selling what sells rather than selling what works. That really bothers me. I do want to see the state of the art improve.

Aaron: How do we highlight these incompetent people and weed them out?

I don’t think naming and shaming is necessarily a good idea. Any publicity is good, as the saying goes. I think talking about the problem and establishing a culture in which certain things are respected and others are not is possibly one way to go. My hope and dream is that in the Agile industry we become synonymous with excellence.

Aaron: How do we get to that place where Agile is synonymous with excellence?

Jim: It’s a matter of culture. The more people who talk and write about Agile, who take the attitude that we’ve got to compromise on doing good work because nobody will accept it, the more Agile is going to become synonymous with mediocrity, for not working. We want to avoid the situation where we say, “Yes you’re all in the same building but no, we’re not going to take down the walls because that will make too many people uncomfortable. You don’t want to put people together, that’s ok. You don’t want to assign a product owner, OK. No worries. Your testers need to be in a different division? OK, no problem. We’ll make it work for you. We’ll take this thing and just have the domain experts write up a requirements document and hand them to the developers. They’ll do development in “Sprints”. We’ll call it “Sprints” so that way it’s Scrum, right? They’ll hand it to the testers and the testers will follow one “Sprint” behind and when it’s ready will show it back to…” That is the type of attitude that sells because it’s easy.

If we go the other direction, if we as a community say there are some situations in which Agile is simply not appropriate then we will sell Agile less often. We will have fewer people using Agile. By doing that we’ll have more successes. I would much rather have the Agile community being known as a community that is a little up tight, a little exclusionary, that always does great work.

Now I’m not saying that you have to do all those things. You don’t have to do Extreme Programming to do Agile although you do have to do some sort of XP-like engineering practices. It is possible to have a distributed team that is Agile. The further away you get from these Agile ideals of having a collocated team, of having a dedicated product owner, the harder and more expensive it gets. What I see happening in the filed is the further people get away from that, the more they water it down, the easier they try to make it.

The reason XP and Scrum say, “have a collocated team” is because we know the secret to successful software is having a cross-functional team that communicates really well. We don’t say collocation because Agile wants you to be collocated. We say collocation because that’s what leads to really good communication.

The other thing that happens when you have a collocated team is that you have unintentional communication, or unplanned communication. I’ll be working on something and if you’re sitting there, I might mention something about it to you. If I have to call you I’m not going to bother you.

If we’re going to work with an organization that does not have collocated teams, we can’t just say we won’t do that piece of Agile. We need really great communication. How are we going to solve that problem in a different way? Instead what I see people doing is saying, “That’s hard. We’re just not going to worry about that piece of it.”

Aaron: What are you working on these days?

Jim: I’ve decided to focus my business on the people who are interested in being great. Who have that desire to change their world so that they can be great. I also am working on a startup with Arlo Belshee and Kim Walmark. In my copious spare time I am noodling around with a new test framework to replace FIT.

Aaron: How do you know this team is capable of greatness?

Jim: I think every team is capable of greatness. At an organizational level I need to see real desire. In the end what is required for greatness is a willingness to try stuff. I think the ones who want to be great are willing to shake things up a little bit. I’ll hear things like, “Of course we have to fit in to the existing corporate structure and we need to go through our phase-gates.” And I’ll say, “What you really need in Agile is simultaneous phases” and they’ll say, “Absolutely, we should have that. But we need it to fit in to our lifecycle because if we don’t nobody is going to be happy and we just can’t afford to make those waves.”

Aaron: Talk a little more about these simultaneous phases, if you would.

Jim: I think simultaneous phases are the secret sauce of Agile engineering. You have all aspects of software development, which are traditionally called requirements, design, coding, testing, releasing, operations and support. Those are generally laid out as separate phases. That’s the classic waterfall lifecycle. Even people who do Agile methods like Scrum tend to take this classic phases and just sort of smoosh them down in to a shorter cycle.

Aaron: I like to call that the rapids.

Jim: Yeah. The rapids. Exactly. Simultaneous phases are having the ability to do all these things, all at once. Doing your testing at the same moment that you’re doing your requirements at the same moment you’re doing design at the same moment you’re doing your coding, at the same moment you are making sure that you are operationally capable.

It is difficult. That’s why this work does require a mind shift. Because it is difficult, it’s the thing the opportunists are ignoring entirely. It’s not something that you can just teach.

Aaron: Or sell. It’s a little hard to sell, “Hey, you know what? This is going to be incredibly difficult for you.”

Jim: Doing your design, coding testing simultaneously requires doing them in very small pieces and doing incremental design. What’s difficult about it is that you really, really need to have your requirements experts working closely with the team. Cross-functional teams and collocation are necessary to make that work and those two things I think are really important and also something nobody wants to do.

Even when I work with Scrum teams that were well trained, they often don’t do cross-functional or collocated. It requires doing things facilities doesn’t like, that the corporate structure doesn’t like. This is where the big wins are. The big wins are not in doing work in two-week Sprints. The big wins are increasing your communication, working simultaneously, because simultaneous phases are also a way of improving that communication so that you don’t have a throw-it-over-the-wall mentality.

Aaron: It sounds like not only are you talking about the walls between our traditional development and QA phases, but also between business analysis and development or design. All of these things blend together, requiring that collocation.

Is there anything else you’d like to mention or discuss?

Jim: I’d like to close by saying that the Agile community and the software development industry in general would be better served by people seeking excellence than trying to fit in.

Aaron: I was reading your old blog and found, “We in the Agile community need to do more to promote and encourage the rising stars of tomorrow”. What was happening at the time that prompted you to assert this?

Brian: I was at that time hanging around with a professor of sociology at the University of Illinois, who was writing a book on the British cyberneticians; very larger-than-life figures, but who had no effect. Eventually they retired, or died, and that was kind of the end of it. The first wave of people failed to build up the next wave. At the time I was wondering if we would have a next generation in Agile.

Aaron: How then did you feel that providing an award in Agile would help keep that community strong?

Brian: It would be a way of saying, “Look at this person. This person has things you need to hear.” So rather than tagging along behind Ward Cunningham at conferences, look up J.B. Rainsberger or James Shore. That’s essentially it. Listen to these people, give them opportunities to speak.

Aaron: What were some of the challenges in instituting the award?

Brian: There were none.

Aaron: There were none? Interesting because it says, “One day before the start of Agile2005, the Agile Alliance board voted to create the Gordon Pask Award for Contributions to Agile Practice.” Did you guys discuss it for a while? Was there something that led up to this vote?

Brian: We were at the end of a 2-day retrospective. Not much of immediate visibility was accomplished. It was more along the lines of: we will set deadlines, we will investigate the following in the future and I asked, “Well, why don’t we just do something?”.

I proposed the Gordon Pask Award and I probably ranted on about cyberneticians. Everybody said, “Hey, that sounds like a good idea!”. So somebody said, “How many people?” and we said, “Two.” and someone said, “How much should the award be?” and somebody said, “Well how about let’s make it something substantial like ten thousand dollars for the two of them?” and everybody said, “Great!”. It really went very fast.

Aaron: I was also noticing on “Luck” that there are some flaws to the Gordon Pask Award. Have you seen any of these troubles?

Brian: Yes, in the sense that at any given moment there are a bunch of deserving people. We always worried a lot that it would feel arbitrary. There was some talk that because of the issue we should maybe reward it to an idea. People like awarding it to a person over an idea, even though often that person represents an idea.

There have also been some worries that we could get locked in. The first two people who got the award were programmers. I’ve gotten complaints that it’s too much of a programming award and not enough of a management award and that could well be true.

Aaron: Are there different things you do to temper concerns people have?

Brian: The people involved in giving the award are all the past award participants plus the original three (Brian Marick, Rachel Davies and Big Dave Thomas) bring up the issue when we have the actual meeting.

Aaron: What comes to bear when you get together to discuss potential awardees?

Brian: We have basically divided it in to accomplishments and service. I remember in the first award I looked on my machine and saw that J.B. Rainsberger had contributed fully 37% of the posts on the test driven development mailing list. Looking through them a lot of it was spent answering questions. That’s contribution to the service, to the field. People who are active in user groups, for example.

Steve Freeman and Nat Pryce are both active in the Extreme Tuesday Club, which is where a lot of real good ideas have come from. That weighs in to it.

Aaron: Was there such a big pool that it was easy to draw from and has become tough over time?

Brian: The toughness is that there are multiple candidates. An issue that repeatedly comes up is that in theory we would like to believe that there is a person poised on the edge of some sort of break through and we can tip him right over the edge. One of the discussions we continually have in the meeting where we do the selection is, “Does this person actually need our help?”.

Aaron: I would assume that adds some difficulty in finding people that can really take advantage of what the award has to offer. Getting somebody’s name and their word out there.

Brian: Yeah, exposure. We’ve always had a discussion about, is handing somebody a check for $5000 the right idea? A better way to do that is to say the money is for speaking somewhere.

Aaron: And the idea was there because of cybernetics and knowing how much was lost through that. Was that somewhat of a prompt for you?

Brian: That was a prompt for me, yeah. I don’t know that any body else cared about that. I think they all thought, “Oh there he goes again with that ‘wierdo stuff’. It’s a good idea no matter what the motivation.”

Aaron: So I guess that ‘wierdo stuff’ is what got it to be called the Gordon Pask Award?

Brian: Right. The interesting thing about him is that he worked with communication. He had this notion of communication as a cooperative and competitive game. At the time it resonated with me when I thought about Alistair Cockburn’s stuff about projects as cooperative games and I think that was when I first heard of “pair programming ping pong” which has very much the style of Pask behind it. Of all the people he seemed to fit the closest to Agile.

I recently received an email from a senior-level manager, who raises a valid question about all the meetings associated with Scrum. This particular instance of Scrum has over 50 people working in more than one locale. When yet another meeting was created, he raised a valid question:

90 minutes every week for backlog hygiene? And that is on top of all other scrums, scrum of scrums, business reviews, can we ship, planning etc. meetings and scrums? I am getting seriously concerned about our state and efficiency. If we need to spend 90 minutes on this weekly, than, IMHO, someone is not doing their job. Looking forward to find out more.

My answer:

It’s true, this is a lot of time to spend together planning what we are building for this product. Are you familiar with the book, “Death by Meeting“? Essentially, a short daily meeting (15 minute standup) should focus on the daily plan (3 questions). The longer the meeting, the further out we’re looking. Meetings should have a very specific purpose, stick to it, start on time and finish when the purpose is reached. In Scrum, all meetings are finished when they hit the time-boundary (aka time box) as well. We endeavor to reach the objective before hitting the time boundary. Scrum-of-Scrums (SoS) is a little exceptional as you’ll see.

Let’s look at all the meetings in our Scrum.

-Daily stand-up. 15 minutes max. Only pigs are allowed to speak.
Single team daily coordination. Answer 3 questions.
1. What did I complete yesterday?
2. What am I planning on completing today?
3. What’s in my way of completing work?
We stand up to keep it short.
http://aaron.sanders.name/agile/what-if-the-standup-is-ended-on-time-but-not-everyone-spoke

-Daily SoS. Meta-stand-up. Inter-team coordination.
First, answer 4 questions. 15 minutes max and again, only pigs are allowed to speak for this part.
Scrum Master and Product Owner for each team required, other team members are optional as needed and/or interested.
1. What did our team accomplish yesterday?
2. What is our team going to accomplish today?
3. What is in our team’s way?
4. What are we about to put in another team’s way?
Then, we review all the obstacles on the board. Reporter confirms removal of existing ones. Decide how to remove the ones added today. Old obstacles are scrutinized.
Last, we walk through the Air Traffic Control (ATC) board and ensure it reflects reality. If a problem is detected, a plan is set to address it.
This meeting is the only one without a time boundary. We stay in the room until all goals of the meeting have been addressed.

-Weekly backlog hygiene
Keep the backlog in front of the Scrum teams by 4-6 weeks (2-3 Sprints).
+ Review meeting agenda and ask if any item for end
+ Review customer and user input about the Product
+ Review arrangement of the stories in themes and goals.
+ Write new stories, themes and goals. Remove old and wrong ones.
+ Review and update acceptance criteria currently known.
+ Prioritization
+ Team added agenda item, wrap-up.
Add new stories, keep the top prioritized. Look at the bigger backlog map. This will become the release planning mechanism. 90 minutes does seem long right now. Prioritization is not an easy endeavor. I would also like to enhance understanding of the User Story and examine the ones being added together. Some are coming in from user interviews. More are likely with Customer Support involvement. There are some interviewing-like ways to create them, so that eventually the customer/user can write them for us themselves. The time will also be needed later, once the teams pick up value delivery. All of this will intensify to stay in front of the progress we make.

-Review and Retrospective (aka Reflection)
Every 2 weeks we review the current working software with the customer, showing User Stories the Product Owners have accepted on their behalf. We then ask *them*, can we ship this to you? The answer will influence the backlog, too. The teams then gather and go through a retrospective to ask themselves, how did those last 2 weeks go and what would we like to change and experiment with to find improvements and innovation?

-Planning
We are now planning as we go at many different levels, so that is much less disruptive to the teams. For the pigs involved who are busy creating value, it is an impact of 15 minutes daily, and 2-4 hours for one day every couple of weeks. We are meeting so that they can continue to do their job of creating the actual Product.

-and more!
There should also be monthly meetings to look at the next 3 months, and quarterly meetings to look at the next 4 quarters, and yearly meetings to look at the next 3 years. That last one may be a 2-3 day off site.

http://leansoftwareengineering.com/2007/11/14/planning-a-month-or-less-ahead-is-not-enough/

This is a complex, adaptive system with emergent properties. The system is continuously running at a sustainable pace, with value flowing through it from concept to cash. We need constant feedback so that we may inspect this system and ensure we are adapting to the best of the emergent capabilities. The concepts are captured as User Stories, and when we release it we determine the market value, when we start getting revenue from the Product. Along the way we keep our customer/user involved at every step and invite them to attend any meeting. Except the Retrospective, which is for the pigs.

The ATC board shows all stories in progress for all teams. It includes the top of the backlog in a stack-rank buffer for teams to accept work from when they have delivered something and have capacity (below the story point WIP limit).

There are more than the 4 meetings mentioned in the book: stand up, SoS, review, retrospective, can we ship?, planning, backlog hygiene. The longer-term Agile strategic meeting is not yet in place. How else should I address the concern? Is there too much mixing up of strategic goals in the weekly tactical backlog hygiene meeting? Should that be pulled out to the monthly strategic meeting? What should be in the tactical one, then? What could be removed from a meeting, or a meeting itself? How would you redo these to be more effective?

After a few months working with a client, a WIP limit was introduced on story points at the latest planning meeting. When we started I said, “The good news is, you no longer need to track hours remaining. The better news is that you may never have to have this type of meeting again.” Here’s a nearly verbatim email from senior management, after planning.

We concluded the sprint planning today with a stack ranked backlog based on work folks did over the last couple of days (to get it prioritized). The sprint planning went well, all teams are “fully loaded” for the sprint except for Team-1. Here are my observations, anyone on this thread, please feel free to pitch in:

Team-1 was at ~(x) points, and the max per sprint is (y), so they could have taken more user stories. We went down the backlog and the next 6 or 7 required [special-skilled work only a couple people can do and they were] already maxed out (…) for this sprint. Further down the backlog were [feature groups for another team] related stories and since [those feature group] teams were max’ed out, we just stopped.

So, does this mean that Team-1, once done with their user stories, are going to start twiddling their thumbs? Maybe, but first, they HAVE to help other teams:

  • with tasks
  • with user stories
  • help QA in testing to get the stories to the done state
  • remove blockers from the blocker board (and we have identified new blockers that are slowing us down per the retrospectives)
  • and basically help in any way shape or form move the stories on the board to the done state.

If all of the above is exhausted and there is really nothing else that Team-1 can do to help the current “in-flight” user stories across teams get to the done state, then, yes, they will be twiddling their thumbs and we would have identified a blocker that we need to address. Otherwise, we continue to push forward.

Do you think the new WIP constraint and attitude will help? Will there be an increase velocity and in quality of delivery, in your opinion? How about the effect on sustainable pace, or collaboration? Please comment below and I’ll provide my own opinions in following posts.