home

Boost Blog

Archive for the ‘Agile’ Category

January 26th, 2012

Business Analysts and Scrum projects: A short case study

Posted by courtney on January 26th, 2012

In a recent post I discussed the question “Are user stories the same as use cases?”. This is a question that frequently arises in our Writing Great Agile User Stories workshop, and it’s often asked by business analysts. I’ve also been in Agile/Scrum training courses with BAs, who at a certain point in the day start worrying about where the BA role fits in a Scrum project.

The quick answer is: there is no Business Analyst role in Scrum – just like there isn’t a DBA role or a SysAdmin role or a designer role. You’re either the Scrum Master, the Product Owner, or part of the Scrum Team. There also isn’t a space carved out for a person to be responsible for requirements gathering and reporting.

The longer answer is that there’s still a lot of work in a Scrum project for a good BA to do. As Roman Pichler puts it:

what’s left to do for business analysts in Scrum? I have seen business analysts working as team members as well as taking on the product owner role successfully. In both cases, though, the individuals experienced a change in their daily work. Business analysts working as a team member often support their peers in product backlog grooming activities. As the business analysis activities are now carried out collaboratively, the business analysts often have time to take on other responsibilities, for instance, working with the testers or the technical writer. As a business analyst working on the team, you should hence expect to pick up new skills, broaden your expertise, and be open to work in new areas.

One small case-study

I recently worked on a short (6-sprint) Scrum project that had a nearly full-time BA allocated as a resource to the team. (Don’t you love that kind of phrasing? “allocated as a resource”. Savour it.)

We were creating a mobile interface for a cut-down set of the functionality available through our client’s current website. Our team was made up of a mix of our client’s staff and Boost staff: a Product Owner, the BA, two developers and a tester from our client; a Scrum Master, designer and me doing the wireframes from Boost.

Here’s what our BA did:

Working with the product owner

  • Research for writing user stories (usually by confirming how the current system works, and where there was and wasn’t flexibility to make changes)
  • Meeting with other parts of the business to explain what we were doing and what we needed, and to find out what they were doing and how that might affect what we were making.

Working with the team

  • Ferreting out system documentation
  • Getting screenshots of the system that I (working outside their network) couldn’t access, and reviewing wireframes with me
  • Helping write and QA’ing test cases
  • Getting wording signed off by other parts of the business (always harder than you think it’s going to be)
  • Getting approval from other parts of the business for use of a third-party plug-in.

Our BA attended all the planning meetings, retrospectives and stand-ups. Her work was managed just like the rest of the team’s: written as tasks and posted on the Scrum board. What she didn’t do was write requirements or use cases, or reports. There was huge value in having her on the team: she was our go-to person for all the tucked-away documentation and hard-to-find system descriptions.

Further reading

A four-part article based on a roundtable discussion amongst a group of Agile experts (including Alistair Cockburn, Roman Pichler and Ken Schwaber) on business analysis and Agile

  • Part 1
  • Part 2
  • Part 3
  • Part 4

Colart Miles has begun a promised series on the Clarus blog

  • Part 1: Are business analysts the stem cells of Scrum?
 
Tags: agile, BA, business analysis, scrum, user stories
Posted in: Agile, Scrum
No Comments
 
January 18th, 2012

Use cases vs user stories in Agile development

Posted by courtney on January 18th, 2012

TL;DR – User stories aren’t use cases. By themselves, user stories don’t provide the details the team needs to do their work. The Scrum process enables this detail to emerge organically, (largely) removing the need to write use cases.

Are user stories the same as use cases?

When running our Writing Great Agile User Stories workshop, I’m frequently asked “So – are user stories the same as use cases?”. Often it’s a business analyst who asks the question; they’re accustomed to working with use cases, and are wondering where use cases fit in a Scrum project, and if they’re replaced by a user story.

Looking around the web, there’s consensus that use cases and user stories are not interchangeable:

  • Alistair Cockburn: A user story is to a use case as a gazelle is to a gazebo
  • ExtremeProgramming.org: User stories serve the same purpose as use cases but are not the same.
  • Mike Cohn: User stories aren’t use cases

My standard answer is that user stories are centred on the result and the benefit of the thing you’re describing, whereas use cases are more granular, and describe how your system will act. And then I say “Just bear me – it will all be clear in soon”. But I thought it was time to dig further down into this.

Use cases and user stories

Let’s start with some definitions.

A user story is a short description of something that your customer will do when they come to your website or use your application/software,  focused on the value or result they get from doing this thing. They are written from the point of view of a person using your website or application, and written in the language that your customers would use. A user story is usually written using the format canonised by Mike Cohn: As an [actor] I want [action] so that [achievement]. So, for example: As a Flickr member, I want to set different privacy levels on my photos, so I can control who sees which of my photos.

A use case is a description of a set of interactions between a system and and one or more actors (where ‘actor’ can be people, or other systems: for example, both online shoppers and PayPal can be actors). They are usually created as documents, and generally include this kind of information:

  • Use case title
  • Rationale/description/goal
  • Actor/user
  • Preconditions (the things that must have already happened in the system)
  • Standard path or Main success scenario (what will usually happen, described as a series of steps)
  • Alternate paths or Extensions(variations on the above/edge cases)
  • Post conditions (what the system will have done by the end of the steps).

At first blush, use cases look like a much better way of writing requirements than user stories. How will a team be able to implement something as wafty as As an [actor] I want [action] so that [achievement]. So, for example: As a Flickr member, I want to set different privacy levels on my photos, so I can control who sees which of my photos without some rigorous use cases to detail the requirements for the system? And that’s usually the point when someone in the workshop asks that question.

Writing use cases to flesh out user stories in Agile projects is certainly not unheard of (see here, and here). But it becomes clear as we move through the workshop that user stories are just the start of a process of understanding what the team is making that, by the end of its course, covers off everything a use case would have told you, but in an organic manner.

Acceptance criteria

User stories aren’t just single sentence affairs. The product owner also writes acceptance criteria, which define the boundaries of a user story, and are used to confirm when a story is completed and working as intended. For example, if this is your user story: As a conference attendee, I want to be able to register online, so I can register quickly and cut down on paperwork, the acceptance criteria could include:

  1. A user cannot submit a form without completing all the mandatory fields
  2. Information from the form is stored in the registrations database
  3. Protection against spam is working
  4. Payment can be made via credit card
  5. An acknowledgment email is sent to the user after submitting the form.

Writing the acceptance criteria is the first step of fleshing out the details of your user story

Sprint planning meetings

In the sprint planning meeting, the product owner presents the user stories from the top of their product backlog (ie. their highest priority features) and the team commits to the stories they will complete in the sprint.

As the product owner presents the stories, the team will ask questions to further clarify the user story and the acceptance criteria. Assumptions will quickly be confirmed or corrected, and any ambiguity about the requirements starts to disappear.

This assumption and ambiguity erasure continues as the team estimates the stories (if five people on the team rates a story as a 2, and one person rates it as a 5, there’s probably some questions that need answering). And it’s repeated again as the team writes the individual tasks for each story.

Standups

We’ve been fortunate in our Scrum projects, in that our product owners generally commit to attend the team stand-up. This is another chance for the team to ask questions, and also to make the product owner aware of restrictions, issues and opportunities are appearing as the story progresses.

Wireframing

I do the wireframing for some of our projects, and usually I start by talking to the product owner about the story, and sometimes making some paper or whiteboard sketches. I turn these into wireframes and then there’s normally a couple of quick iterations with the product owner as we ask each other questions, get feedback from other people, and hopefully squeeze in some user testing.

More recently, I’ve started reviewing the draft wireframes with the designers and developers working on the story. This helps flag up any questions they have, or restrictions I might not have been aware of. After the wireframes are approved by the product owner, I’ll brief the designers and developers again if needed.

Design and development

Although most of the details have been thrashed out during the wireframing more can crop up at this stage, and there are often more questions for the product owner about exactly how they want the backend of the system to behave. Pair programming is useful here, because two sets of eyes on a piece of functionality mean yet more questions and clarifications.

No user story is submitted for acceptance by the product owner until the acceptance criteria are satisfied and the definition of done is met.

Overall

This might sound like a lengthy process. In reality, it’s just what a Scrum team does all day. Rather than one person labouring over the use cases, the team works together to surface and satisfy all the requirements. The product owner can refine the original acceptance criteria in response to new information throughout a user story’s progress.

And finally, in conclusion

There are exceptions, of course – and there are times when the upfront research needed for use cases is important (I’ve got a blog post brewing on this). But my advice would be: don’t start writing use cases until your team specifically asks for them. And if your team does ask for them, spend some time in a retrospective digging into what they’re not getting from your current processes (for example – are the acceptance criteria unclear; is the product owner  unavailable; are you working with shitty documentation for another system). Then decide as a team how to fix the root problem.

Further reading

Advantages of user stories for requirements – Mike Cohn

Requirements 101: User stories vs use cases – Andrew Stellman

 
Tags: agile, product owner, requirements writing, scrum, use cases, user stories
Posted in: Agile, Scrum
1 Comment
 
January 11th, 2012

Tina Fey’s Four Rules of Improv, as applied to Scrum

Posted by courtney on January 11th, 2012

Driving home for Christmas, I listened to the audiobook version of Tina Fey’s Bossypants.* Listening to her read the chapter Rules of Improvisation That Will Change Your Life and Reduce Belly Fat, it struck me that the four rules of improv that she describes translate well to the spirit of Scrum projects.

1. The first rule of improvisation is AGREE. Always agree and SAY YES.

This rule for me is about openness and the willingness to engage with new ideas and new practices. As Fey explains it:

When you’re improvising, this means you are required to agree with whatever your partner has created. So if we’re improvising and I say, “Freeze, I have a gun,” and you say, “That’s not a gun. It’s your finger. You’re pointing your finger at me,” our improvised scene has ground to a halt.

The blue screen of death moment is any meeting is when you hear someone say ‘We can’t do that’, or ‘We tried that before and it didn’t work’ or ‘The IT team won’t let us do that’. That moment sucks away at your enthusiasm for the project and if it happens enough, drains your will to work.

A recent Scrum project I worked on had a brand new team working to create a prototype for a mobile app in six two-week sprints. At the beginning of the project, the team’s most common reaction to the Product Owner’s stories was ‘We can’t do that, because…’. This resistance was a real downer for the Product Owner. By the last sprint, the team was saying ‘We can do that by ….’,  explaining what the potential issues were, and suggesting how to overcome them. The Product Owner told me this was one of the most satisfying aspects of the whole project for them.

2. The second rule of improvisation is not only to say yes, but YES, AND.

If your reply to “Freeze, I have a gun” is “Yes, you have a gun”, that doesn’t do much to advance the scene. YES, AND for Fey means not being afraid to contribute – in fact, seeing contributing as your responsibility.

When I heard this, I thought about things from the Scrum Master’s point of view. At the start of a project, when you’re the Scrum Master, you sometimes find yourself trying to coax quieter team members into joining discussions. You don’t want to have to do this for much more than a sprint or two. A team that needs the Scrum Master to help them talk about stories or solutions isn’t self-organising. The Scrum Master can however help create an environment where no-one feels afraid to contribute, and coach people to see contribution as part of their role on the team.

3. The next rule is MAKE STATEMENTS.

Fey writes:

This is a positive way of saying “Don’t ask questions all the time.” If we’re in a scene and I say, “Who are you? Where are we? What are we doing here? What’s in that box?” I’m putting pressure on you to come up with all the answers.

In other words: Whatever the problem, be part of the solution. Don’t just sit around raising questions and pointing out obstacles. We’ve all worked with that person. That person is a drag.

I took two things out of this. One was that MAKE STATEMENTS would be a handy poster to put up next to a Scrum board if your team has a tendency to turn a 15 minute stand-up into a 45 minute philosophical discussion.

The other thing was a reminder of how much I love the way Scrum lowers the threat level of decisions. When you’re responsible for a project, making decisions can be scary. Signing off the final design in a waterfall project, for example, means acknowledging that any changes you want to make further down the line will almost certainly be difficult and expensive. If making decisions is stressful, one natural reaction is to delay or obfuscate. However, when you’re a Product Owner on a Scrum project, you’re making decisions all the time. You get used to making the best decision for the moment, and understanding that if you need something to change in the future, you’ll just write another story. This lowers the threat level of decisions considerably, and helps your team a lot: making decisions is a lot like making statements.

4. THERE ARE NO MISTAKES, only opportunities.

If I start a scene as what I think is very clearly a cop riding a bicycle, but you think I am a hamster in a hamster wheel, guess what? Now I’m a hamster in a hamster wheel. I’m not going to stop everything to explain that it was really supposed to be a bike.

The lesson here for Fey is that some of the world’s greatest discoveries have been happy accidents (think Viagra). There’s a useful lesson here about being open to suggestions and discussions, rather than clinging to your original set of assumption and opinions. This is why user stories are written in terms of what and why, rather than how.

In conclusion

Firstly, Bossypants is a great read (or, if you like audio books, a great listen).

Secondly. Improv is the act of working together to build something new from a bunch of quickly generated ideas, pruning off things that don’t work and building on the things that do along the way. The more an improv team works together, the more they trust each other, and the better they know each others’ strengths and how to use them. A lot like Scrum projects, over all.

*I was recounting this to a friend over the weekend, who flummoxed me by asking who Tina Fey is. So just in case – ladies and gentlemen, Tina Fey.

 
Tags: agile, scrum, user stories
Posted in: Agile, Scrum
6 Comments
 
November 24th, 2011

Scrum, a beginners experience

Posted by Kirstin on November 24th, 2011

I recently joined Boost after spending over a decade in the UK.  Having worked within a traditional project management process over the last 5 years, I was very keen to learn about the benefits of Agile project management, specifically the benefits of Scrum and the comparison with my previous experience of web development projects.

What I found after a week of observation was that unlike my previous experience of web development projects, an ‘us and them’ (supplier v client) situation causing conflict and resentment is less likely to arise under Scrum.  This is due to the scrum itself -  both supplier and client are team members with clearly defined roles and responsibilities.

I was asked to observe a number of Scrum meetings in my first week; a stand-up, story sizing meeting and a retrospective.

The stand up 

The stand up occurs daily and is a chance for the team to confirm what they are working on and to communicate progress from the previous day. I was immediately struck by the fact that each team member contributed to the stand up in the same way – developers are not asked what they are working on, they tell the team what they are working on and have the opportunity to identify any blockers to their progress.  Although brief and straightforward this meeting immediately appears to be beneficial for a number of reasons.

  • the entire team knows exactly where in the sprint each person is
  • issues or blockers are raised early
  • progress is seen as it happens, stories are closed out each day throughout the sprint

Story sizing

Story sizing consists of all team members sitting around a table with a hand of sizing cards (numbered 1, 2, 3, 5, 8).  A member of the team reads out a story, team members are then asked to ‘play’ a sizing card.  The card indicates a measurement of effort that is not classified in time but by a proportional comparison.  For example if the first story is sized as a 3 (or medium) then a story that is larger and will consist of more tasks may be sized as a 5 or 8.  If a team member’s sizing differs dramatically from other team members the team member will then explain why they consider the story to be larger or smaller and after a discussion a consensus is reached.  Sizing of stories informs the decision as to how many stories will be undertaken during the upcoming sprint.

The advantage of the entire team sitting down to size work as opposed to a more traditional method of having the developer who will undertake the work provide a time estimate is that each and every team member has a chance to input to the sizing of the story therefore the team takes responsibility for the timing of the story, as opposed to an individual.  It is a transparent process that ensures the commitment of all team members to the delivery of each story.

The retrospective    

The retrospective is a feedback meeting in which each team member is asked to focus on particular aspects of the previous sprint and to record both positive and negative feedback on these.  The aims of a retrospective are for the team to communicate, review and improve on previous sprints.  Retrospectives may be run in any number of ways in order to get the best out of the team.

During my observation of a retrospective I was immediately struck by the difference between this meeting and that of a traditional lessons learned meeting (held at the end of a traditionally managed project).  The retrospective encouraged all team members to communicate openly.  Contributions from team members are presented as statements, and are constructive rather than obstructive or defensive.  The advantage of holding retrospectives regularly (at the end of each sprint) is that points are raised early and the project goes into a cycle of continuous improvement – as opposed to a traditional lessons learned meeting where any constructive conclusions are beneficial only to the next project the team works on.

My conclusions from my first week of observing Scrum in practice are very positive;

  • Developers are encouraged to fully participate in all meetings demonstrating work completed and inputting to decision points as required.  As a direct result of their commitment to the project developers take a great degree of responsibility for project outcomes, they are very obviously accountable for tasks, while also having the benefit of the entire team’s support.  All too often in non scrum projects the developer is asked to take responsibility for tasks in isolation and are therefore reluctant to commit to timescales and successful outcomes.
  • Clients are fully immersed and committed to the process and as such are very much a part of the team.  Unlike projects I have worked on previously  there is less expectation that the supplier will drive the project in isolation, instead the client is fully involved in all aspects of the project and always aware of exactly what work is taking place and when it will be delivered.
  • Processes are consistently reviewed for effectiveness and all team members input to the review process.  There are opportunities for both positive and constructive feedback and actions are undertaken as a result.  In comparison with the traditional ‘lessons learned’ aspect of a project this seems far more beneficial in terms of continuous improvement rather than undertaking process improvement at project conclusion.
  • Project tasks are broken down into explicit finite tasks and the acceptance criteria are clearly defined and agreed at the outset rather than development task estimates taking place at the outset of a project in isolation from other team members.

My overall impression in this early stage of exposure to Agile project management and Scrum is that Scrum builds a happier, closer team and minimises risk by ensuring frequent and open communication between all team members.

 
Tags:
Posted in: Agile, Random thoughts, Scrum
No Comments
 
November 21st, 2011

Agile coaching: I thought I was, but I wasn’t

Posted by Nathan on November 21st, 2011

I’ve been coaching members of the Boost team in Agile off and on over the last few years, and by and large it has been useful and well received. But attending The Coaching Stance class run by the Agile Coaching Institute last week has really opened my eyes and made me reconsider what coaching means in the Agile context.

My own personal experience of coaching is firmly grounded in the sports world. The coach evaluates an area of performance, makes a teaching point or two, sets up a drill, evaluates whether the drill is correcting the weakness or fault, and then sets homework for the coming week.

So when I am with my golf coach it usually goes something like this:

  • I hit a few balls, some (not many) land on the fairway
  • Coach is videoing my swing
  • We review the swing together, and coach identifies an area for us to work on for that session
  • We do a drill or two, and see if that is impacting on my swing
  • I hit more balls then go home.

This is fairly typical and extremely useful. My golf has gone from “baboon attacks ball with stick” to “chimp attacks ball with more expensive stick” in only a year and 5 trips to the pro shop!

My approach to Agile coaching had, in many ways, mirrored this. I would talk with my client, identify an opportunity for improvement, and suggest something for them to try. Rinse and repeat. This has been effective on many occasions, but I’ve always wondered how I could do better.

The Agile Coaching Institute promotes co-active coaching, and this is what we were exposed to in our two day class. The class focussed on coaching, with the understanding that participants already had a deep understanding of Agile/Lean practices.

The class was the most effective training I have ever had. After two days I’d coached and been coached by over a dozen different people, and had moved my  practice to a whole new level. I am excited by the possibilities it opens for myself, the Boost team and our clients. I’m not waiting until I get back to Wellington to put the training into practice:  I’ve already been doing some coaching with the team back at work over the phone.

While it’s not easy or fair to try to distill the whole course into a paragraph or two, I’d like to reflect on the changes I’m already seeing in my practice. The biggest change is that I’m seeing coaching in a new light. I’m not there to problem-solve: my coaching client is whole, resourceful and creative, not someone who needs to be ‘fixed’ or ‘improved’. Instead, my role is to support the person I’m coaching to find their own solutions. This takes the pressure off me. I don’t need to know all the answers or figure out how to fix things: I can relax, and focus on what I’m hearing.

Cynthia, Lyssa and Michael provided a safe, supportive and honest space for us to learn and challenged us in many different ways. I was suprised by how quickly the class bonded. The coaching was at times intense ,and often suprisingly carthartic.

Thanks to everyone on the course. With so many talented Agile coaches,  I know the Agile world is in good hands.

 
Tags:
Posted in: Agile, Agile Coaching, Scrum
1 Comment
 
November 2nd, 2011

Pair programming: When and why

Posted by Federico on November 2nd, 2011

Here at Boost we’ve been pair programming for a while, and seeing benefits in the form of cohesion and knowledge sharing, as well as the quality of code we produce when working in pairs. As part of the adoption of this practice I set out to research how pair programming has been working for other teams and how it can be used to improve the team dynamics.

For those that are new to the concept of pair programming: at its core, it’s when two developers sit in front of the same computer and develop code together.  One programmer acts as a driver and the other as the navigator. The driver controls the keyboard and mouse and is concerned with the concrete tasks of coding, while the navigator reviews the code and thinks about bigger picture issues.

It’s not for every team

As Obie Fernandez explains in his article “10 reasons pair programming is not for the masses”, in order for pairing to work the team has to consist of developers who are committed to their work, and who are sociable and able to interact with other team members. Otherwise problems will quickly arise when you are working in such close proximity with other team members.

Why it’s great

Few or no bugs: The first thing you will notice when pair programming is how few bugs are left in code produced by the pair. Pair programming is like a constant code review process, which is why typos or small details that a single programmer normally wouldn’t notice gets spotted almost instantly by the navigator, eliminating hours of debugging later on.

Code quality: The general quality of the code is also greatly increased. This is because while the driver is implementing the logic, the navigator is free both to spot errors and to think about the big picture and how it relates to the rest of the code.

Programmer productivity: When working alone it is very easy to get distracted by email, twitter, Facebook, and all the things going on within the office. When working in pairs, if you were to do any of those things it would waste the other person’s time, so pair programming is a constant reminder to focus on the work.

Knowledge transfer: In an environment where developers work alone, it can be hard to share knowledge because there often isn’t a time or place to do it. Pair programming involves constant discussion and flow of ideas on how to resolve a problem, and normally a pair can come up with many different solutions to a single problem. It’s also great in situations where you want to introduce a new team member, to get them up to speed very quickly with the development practices, coding style, git workflow and other practices the developers might use.

How to do it

When: Although some of the development companies promoting pair programming suggest using it 100% of the time, in my own experience the intense focus and concentration that happens with pair programming can be draining over a full day. I suggest you pick the tasks that will benefit from having a pair work on them, rather than applying pair programming to every task.

Workstation setup: We have been using just one display, keyboard and mouse with great success but I would definitely like to experiment with two keyboards and see how the interaction between developers works out.

Rotating pairs: One important aspect is to let developers constantly change pairs, on a daily or weekly basis. This has several benefits: it helps develop a bond between the team members; the team as a whole takes ownership of the code instead of individuals; and knowledge sharing is increased by working with developers with different levels of experience and backgrounds.

Resources

  • Obie Fernandez – 10 Reasons Pair Programming Is Not For the Masses
  • WikiHow – How to Pair Program
  • Computer.org – How Pair Programming  Really Work
  • Ian Burgess – Pair Programming- Software Development Learning Steps
 
Tags: agile, agile development, pair programming, professional learning, Quality assurance, research
Posted in: Agile, Development
No Comments
 
August 29th, 2011

The 2011 Scrum Guide – a quick review

Posted by courtney on August 29th, 2011

Here at Boost we’ve been reviewing the updated Scrum Guide by Jeff Sutherland and Ken Schwaber, released in July (you can download the guide at Scrum.org)

Rather than covering techniques (like release planning, burndowns and sprint tasks) the guide focuses on what makes Scrum Scrum: the roles, events and artifacts, and the set of rules that bind these together.

In an introduction to the changes from the 2010 Scrum Guide, Schwaber and Sutherland compare the Scrum Guide to guides for games: rules (pass go, collect $200) are different from strategy (get to three houses as quickly as possible, because this is when the rent bumps up dramatically). They write:

The Scrum Guide is the definitive rule book of Scrum and the documentation of Scrum itself. The Scrum Guide and the rules of chess offer simply the rules on how the pieces move, how turns are taken, what is a win, and so on.

Strategies for playing Scrum or chess vary widely and are explained in many books, articles, and blog posts on the respective subjects. For those of us working on a revision to the Scrum Guide, this meant that all tips, optional practices, and techniques should be removed from this document. This was done along with refining some language to correct some long-standing misunderstandings about Scrum.

Given the Introduction to Scrum workshops we’re running at the moment, we were keen to look at the Guide in terms of how it can help us teach people about Scrum. Here are some of the passages that really grabbed us:

The Scrum Master helps those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t. The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team.

We often explain that a key part of the Scrum Master’s role is to clear impediments that are stopping the team from working as well as they could. Here, we like the notion that the Scrum Master isn’t just clearing blocks, they’re teaching people to proactively stop the blocks from happening.

… each event in Scrum is an opportunity to inspect and adapt something. These events are specifically designed to enable critical transparency and inspection. Failure to include any of these events results in reduced transparency and is a lost opportunity to inspect and adapt.

We’re frequently asked whether all the events in Scrum (stand-ups, planning meetings, task estimation, demonstrations, retrospectives) are really necessary. We usually say that of course you should use the structure and methods that suit you best – but that if you’re not following the Scrum events, you’re not using Scrum.

We also try to explain how you can go through the motions of Scrum events without getting the benefits. Thinking of every event as an opportunity to inspect and adapt, and to create transparency, reminds you of why these events are held and the spirit in which people need to participate.

A Product Backlog is never complete. The earliest development of it only lays out the initially known and best-understood requirements. The Product Backlog evolves as the product and the environment in which it will be used evolves. The Product Backlog is dynamic; it constantly changes to identify what the product needs to be appropriate, competitive, and useful. As long as a product exists, a Product Backlog also exists.

The Scrum Guide’s section on the product backlog  really emphasises that the product backlog isn’t there just to get you to an initial release – it is a long term commitment. In fact, the Guide states that the product backlog will become ‘larger and more exhaustive’ after launch. Interestingly, the Guide also dwells on the role of team members in contributing to product backlog grooming, not just the product owner and stakeholders/subject experts.

Overall, the 2011 Scrum Guide is concise (a slim 16 pages), focused and a useful resource for newbies and experienced Scrum practitioners alike. Enjoy!

More reviews of the differences between the 2011 Scrum Guide and earlier versions:

  • Blog post by Charles Bradley
  • Review on the Derailleur Consulting blog
 
Tags: 2011 scrum guide, product backlog, product owner, scrum, scrum master
Posted in: Agile, Scrum
No Comments
 
August 23rd, 2011

Improving user stories with a Definition of Ready

Posted by Nathan on August 23rd, 2011

In Scrum, the definition of done tells us when a feature is completed to a releasable standard. It sits above the individual acceptance criteria for each user story. For example, here’s the definition of done for development stories from one of our projects:

  • committed to source code repository
  • passes appropriate tests for story (including cross-browser testing)
  • tests written and run on integration server
  • accepted by product owner on UAT (unless story asks otherwise)
  • documented (well-commented)
  • cross- browser testing of interface elements
  • readme updated if applicable
  • change log updated

Adding the definition of ready to the definition of done

Recently, we’ve been looking at the definition of ready – the criteria a user story has to reach before it can be handed over to the team. You can think of the definition of ready and the definition of done as two key points in the sprint cycle – one defines when a story is ready to go in, and the other defines when a story is ready to come out.

Jeff Sutherland and Carsten Ruseng Jakobsen have described a definition of ready as a simple concept that depends on discipline and creates stability in a sprint. It’s designed to stop time being wasted when it’s discovered that user stories are missing important pieces of information that means they can’t be started or completed.

A definition of ready gives the team confidence that every story they bring into a sprint is completely ready for them to get started on. In this way, as Sutherland and Jakobsen observe, a definition of ready can improve the flow and stability in a sprint.

A sample definition of ready

Here’s a definition of ready we’ve  developed for one of our projects:

  1. The business value is clearly articulated (in the format of ‘As a type of user I want some goal so that some reason‘)
  2. The story follows the INVEST model
  3. The story has a 2 – 3 word short summary
  4. The story is small enough to fit in one sprint
  5. The story has clear and concise acceptance criteria which describe all of the features of the story. Details are captured as a narrative texts that describe an interaction of the user and the system, focusing on the value a user gains from the system.
  6. Once the acceptance criteria have been met the story is complete
  7. No external dependencies block the story being completed
  8. Story identifies external expertise and provides contact details.

Many of the points (for example, 2,4 and 5) reinforce the usual expectations of a good user story. Some are designed to trouble-shoot in advance: for example, 7 and 8 are there to help the team work as efficiently as possible, by ensuring they’re not being held up by business processes outside of the team, and have ready access to any expert help they need. And some are small tweaks that add efficiency in the longer term – for example, point 3 ensures we have a short headings for the user stories that make them easy to scan in Pivotal Tracker.

In conclusion

Of course, having a definition of ready doesn’t mean there won’t be occasions during sprint planning meetings when gaps are found in the preparation or understanding of a user story. It also doesn’t mean the team no longer has to talk the stories through with the product owner during these meetings, and throughout the sprint. But it does mean you’re creating the best possible conditions for optimal productivity in the sprint.

More reading:

  • Going from Good to Great with Scrum presentation by Jeff Sutherland and Carsten Ruseng Jakobsen
  • Definition of ready by Ken Power
  • The definition of ready by Roman Pichler
 
Tags: definition of done, definition of ready, product backlog, scrum, user stories
Posted in: Agile
No Comments
 
August 15th, 2011

Jeff Sutherland on the History and Structure of Scrum

Posted by Jacob on August 15th, 2011

As you might have noticed lately, we’ve been talking a lot about Scrum – we’ve done a great post on Learning Scrum in 10 Minutes, and for those of you in Wellington, we’re even running free Scrum workshops.

All of this is really useful, really interesting information, and we hope that you are all getting value from it. From these posts, and through our Twitter stream one of the questions we’ve been getting most frequently is about the history of Scrum – where did it come from and why did it turn out the way it did?

To answer this question we’ve got a video straight from the source with one of the founders of Scrum, Jeff Sutherland.

Check out the video below to learn about the history and reasoning behind Scrum.

Where did Scrum come from?

The logic behind Scrum as a development methodology is really very interesting, and Jeff Sutherland does a great job of explaining it. There are a few key points I find particularly interesting, and that are reflected in Scrum processes as we see them today:

    Why other systems don’t work:

  • Specialised silos of activity leads to slower communication and add lengths to the development process – this makes sense as there is not enough communication between people with different roles so it makes it hard to achieve the goals or development milestones that they have committed to

How they developed Scrum processes

    The roles of Scrum

  • To simplify the process they created teams with just two roles – a team and a team leader (aka The Scrum Master)
  • They found that the needed someone who truly understood the requirements of a project as well as representing the users, and so they came up with the role of Product Owner. This way every development cycle would add value for users and the business, and the team would have someone on hand who understood the requirements of each piece of functionality and could explain the reasoning each part of the project

    The meetings of Scrum

  • Experience shows (and anyone who works in a large organisation can testify) that too many meetings slow down the development process; in order to speed up the process, the needed to reduce the number of meetings to a minimum amount
  • They found development should be done in short cycles of 2 to 4 weeks (aka sprints) – essentially so there is good communication, and each development cycle can be well estimated
  • You need a meeting at the beginning of a sprint to define what you are going to pull from the product backlog (as managed by the Product Owner), how you are going to implement and track each item from the backlog
  • Research from Bell Labs showed that teams were driven by daily meetings, but they wanted it to be a very short meeting of no more than 15 minutes, so all members of the team knew what was going on, what they were going to achieve and how they could help other team members
  • At the end of a sprint, you would demo real, working software to get feedback from the product owners and stakeholders of the project, so you know what’s working well and what’s not – that feedback cycle (aka a Retrospective) is what helps teams to improve and help development go faster

    Reporting in Scrum

  • They needed to do a rethink of how reporting would occur in software development as the traditional method of using Gantt charts simply didn’t work as too many changes occur. They came up with the concept of a Burndown Chart so you could see a glance how fast the team was going, how much work was remaining and how much time was left to do it
  • They left the Burndown Chart up on the wall as a method of self reporting. Everyone could see the state of the Scrum at any time, and immediately know how much work was left to do.
  • They used a visual workspace (again, up on a wall) so you could see what needed to be done, what work was in progress, and what was done and tested at any moment in time

Scrum in a nutshell

So that’s more or less how Scrum came about – quite an interesting story really. Jeff Sutherland is evidently a very interesting character, and the thought that has gone into making Scrum as efficient is really very apparent.

Does this match up with your own experiences of Scrum? How does Scrum work for you? Did you enjoy your history lesson? Be sure to let us know in the comments below.

Want to learn more about Scrum? Be sure to sign up for our RSS feed, or follow us on Twitter and Facebook for more great information. Thanks for dropping by!

 
Tags:
Posted in: Agile, Business, Development
No Comments
 
August 4th, 2011

Free Friday Agile workshops at Boost

Posted by courtney on August 4th, 2011

[Here's the tl;dr version of this blog post. Every Friday we run free workshops about Agile development here at the Boost offices in Wellington. To find out more, read on. To sign up, scroll down to the end of this post, or email [email protected]]

Here at Boost, we’ve been using Agile development practices – Scrum in particular – to run our internal projects for five years, and with our clients for three years.

We keep meeting more and more people curious about how using Agile might help their organisations. So a few months ago we sat down and  developed a two-hour workshop, Introduction to Scrum, which introduces the main Agile ideas and practices, with a special focus on the Scrum techniques that we use. We tested the workshop with clients and other people, and got really good feedback.

In fact, the feedback was so good that we’ve developed and tested a second workshop, Writing Great Agile User Stories. This two-hour workshop is focused on understanding how user stories work within Scrum, and lots of hands-on practice writing user stories and acceptance criteria.

We’re now opening the workshops up to the world. There’s a workshop session available every Friday from 2pm to 4pm, and we’re alternating between Introduction to Scrum and Writing Great Agile User Stories. Further workshops are being worked on right now.

Workshop 1: Introduction to Scrum

The Introduction to Scrum workshops are run by Boost’s managing director Nathan Donaldson, a certified Scrum master.

We start off by talking about where Agile has come from, and how it’s different from traditional Waterfall development.

Then we’ll talk about the different roles in Scrum:

  • Product owner
  • Scrum master
  • Scrum team

We’ll cover off the core ‘artifacts’ in Scrum:

  • user stories
  • product backlog
  • sprint backlog

And then run you through the Scrum sprint rhythm:

  • sprint planning
  • estimation
  • demonstration
  • retrospective

After this, we’ll talk about some of the improvements we’ve seen in projects and organisations that have adopted Agile, like more communication, better specifications, less waste and less rework, better prioritisation and planning, and happier, more productive teams. And we’ll talk about the challenges that have to be overcome when Agile practices are introduced into an organisation for the first time.

And in the last five minutes we’ll run a quick retrospective on the session, so you can tell us what you liked and what we could improve. Continuous improvement is one of the core principles of Agile, and we apply it to these workshops too.

Workshop 2: Writing Great Agile User Stories

Writing Great Agile User Stories is run by Courtney Johnston, one of our project managers, a certified Scrum master and experienced Product Owner. The workshop is a focused and hands-on introduction to writing user stories and creating a product backlog.

You’ll learn

  • How to write user stories
  • How not to write user stories
  • How to write acceptance criteria
  • About Done definitions
  • How to create and maintain your product backlog
  • How user stories are estimated by the team.

As with Introduction to Scrum, at the end of the session we do a quick retrospective to figure out what worked well, and what improvements we can make.

The nitty-gritty

Who are the workshops for?

Introduction to Scrum

This workshop will be helpful for anyone involved in website and software development. We’ve had project managers, usability analysts, programmers, designers and writers attend, and everyone has found something useful in them. It doesn’t matter in the least if you’re public sector, private sector, work for a charity or a start-up, or are just plain curious.

Writing Great Agile User Stories

This workshop will be helpful for people who have already had some experience or exposure to Scrum, and who want to learn more about this particular aspect. It will be especially helpful for people new to or thinking of taking on the Product Owner role.

How many people can attend?

We cap attendees at 6 people; this is the best number for discussion and sharing experiences.

You can come  along as a team – that way, you can talk about how you manage things currently, and what you’re looking to change. But we’re also happy for people to sign up in ones and twos; it’s just as useful and sometimes even more interesting to have a bunch of different perspectives in the room.

Where are the workshops held?

We hold the workshops here at the Boost offices in central Wellington. You won’t be trapped in a stuffy little room – it’s nice and spacious, with great views over Cuba Street.

What does this cost?

Nothing. The workshops are completely free, and completely obligation free.

We’re running these as free sessions for two reasons:

  1. We really think people would benefit from using Agile methods to run their projects
  2. We’ve learned a lot from the Wellington and international Agile communities, and want to keep the sharing going

How do I sign up?

It’s easy. You can fill out an online form:

Sign up for Introduction to Scrum

Sign up for Writing Great Agile User Stories

or email us at [email protected], and we’ll work with you to find a suitable date and book you in.

If you have any questions, just drop us a line. We hope to see some of you soon!

 

 
Tags: agile, agile development, agile project management, scrum, training, workshops
Posted in: Agile, Scrum
1 Comment
 
« Older Entries
  • Categories

    • Agile (23)
    • Agile Coaching (1)
    • Business (3)
    • Cool tools (5)
    • Design (7)
    • Development (17)
    • Drupal (1)
    • e-Learning (70)
    • Magic & Delight (6)
    • Publishing (3)
    • Random thoughts (7)
    • Ruby on Rails (9)
    • Scrum (9)
    • Social media (9)
    • Usabilty (4)
    • Writing (1)
  • Archives

    • January 2012 (3)
    • November 2011 (4)
    • August 2011 (5)
    • July 2011 (1)
    • June 2011 (2)
    • May 2011 (4)
    • April 2011 (1)
    • March 2011 (1)
    • February 2011 (1)
    • November 2010 (1)
    • October 2010 (1)
    • September 2010 (3)
    • August 2010 (4)
    • July 2010 (6)
    • June 2010 (2)
    • April 2010 (1)
    • March 2010 (1)
    • February 2010 (1)
    • January 2010 (3)
    • December 2009 (1)
    • November 2009 (1)
    • October 2009 (4)
    • September 2009 (2)
    • August 2009 (3)
    • July 2009 (6)
    • June 2009 (3)
    • May 2009 (1)
    • April 2009 (6)
    • March 2009 (6)
    • February 2009 (11)
    • December 2008 (4)
    • November 2008 (6)
    • October 2008 (12)
    • September 2008 (7)
    • August 2008 (7)
    • July 2008 (4)
  • Boost Loves Design

    • I love Typography
    • IntuitionHQ | easy website usability
    • OMG It even has a watermark
  • Follow me on Twitter
© Boost Limited.
All rights reserved.
CONTACT US
info@boost.co.nz
tel. (04) 939 0062
fax. (04) 939 0063

Level 6, 175 Victoria Street
PO Box 11504, Wellington
New Zealand