Scrum Development Blog

Better teams make better products.

How do you fill a sprint?

Scrum Questions | Posted by The 3Back Team
Feb 08 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email
  1. You get past work experience. And calculate the amount of work the team can handlestory fill sprint epic too big
  2. Get estimates from the team and double the number they give you to determine work load.
  3. Meet with each individual and see how much work they can take on. Build a sprint plan from that information. Then gather everyone, show the sprint plan and kickoff the team sprint.
  4. Use the PO/SM powers to challenge the team to take big bites. Get as much loaded in the sprint as possible. The PO/SM can form a powerful pincer to overcome resistance.
  5. This is sprint planning.  You commit one story at a time. Make sure the team is committing to sharp definitions of done.

Comment: After a Story is committed to, the Team (with the PO in the lead) has the option to reprioritize the Story list, and the Team takes the next one to consider. Once again, the Team comes to the “doneness” Agreement and commits to adding the Story to the list of already-committed-to Stories. This process is repeated until the Sprint is “full” and the Sprint Plan is complete.

When is a story too large for a sprint?

Scrum Questions | Posted by The 3Back Team
Feb 03 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email
  1. too big for sprintIt is never too large for the sprint. The team must learn how to meet business expectations.
  2. The team cannot agree on which stories to work  on during the sprint
  3. The product owner has prioritized the story into sprint planning without any written definition of done
  4. When the team cannot agree on how to commit to the story
  5. Teams are inherently anxious; SM/PO must challenge the team and not accept no for an answer.
  6. Make the sprint bigger so the story fits.

Comment: The Team may not be able to commit to a story, or might noteven be able to agree on “done.” This makes the story in question is an epic, by definition, and the Team must decide what to do. Typical choices include committing to an Analysis Story to figure out what to do about the epic, or extracting a smaller story from the epic to do instead (putting the remainder back on the backlog), or skipping the story altogether and moving to the next one. Bottom line: We need a sense of movement to understand what the team can and cannot do. Biting off chunks of work that are too large obscures movement and makes throughput / velocity that much harder to understand. Use the team’s ability to commit to understand the work that the  story represents.

Should the team be allowed to drop the retrospective?

Scrum Questions | Posted by The 3Back Team
Feb 01 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email
  1. sad scrum teamsYes, It’s their process why not?
  2. No, explain to them and work through why the retrospective is so important.
  3. Maybe, if they are no longer a team then why continue with Scrum?
  4. Only do retrospectives once a quarter and build up a good list of things to change.
  5. Yes, the process will take care of itself we don’t need to watch it that closely. After all it’s common sense!

Comment: Of things to watch out for and not allow this is high on my  list.  It boils down to this rule: If the team is not doing a retrospective then they are not doing scrum. The retrospective is where the team takes formal ownership of their process. In these situations I crack shins, and kick knee caps and generally do what is necessary to ensure they continue doing a retrospective. Without that we often see teams fall into “it’s not my fault”  because “x” told me to. In some cases “x” is the process that no-one owns, imagine the process that gets created by someone who decides to own it but, does not do it themselves!.

Retrospective is an external constraint that must be demanded of the team. There are many ways to run a good retrospective, ScrumMaster rise to the challenge and support your team.

When should a sprint end?

Scrum Questions | Posted by The 3Back Team
Jan 29 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email
  1. We have consumed all the work we said we would in our sprint planning
  2. All of the work has been completed.
  3. Both the team and the product owner agree it should end.
  4. The amount of time specified for the sprint has run out

Comment: Set a time-box and stick to it. Failing to adhere to the time boxes for your sprint is a badusing time boxes is best practice habit. Without time-boxes we rapidly loose our sense of predictability and the amount of complexity we tackle in each bite drifts upward. Teams become fragmented and loose cohesion. This is a strong rule but, by no means an absolute. Be smart when you vary your timebox and you really need a disciplined experience well formed team to carry this off.

Should we extend Scrum?

Scrum Questions | Posted by The 3Back Team
Jan 25 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email
  1. change scrum extendSure, thats what agile/scrum is all about.
  2. Sure, you might wonder if you are making things harder to detect.
  3. No way !!!

Comment: The idea here is that there can be only one source for Scrum. I guess that depends on where you get your definition from and what you need. Should there be only one way to think about scrum? Probably not, although,  a rookie mistake is to modify without have deep applied practice and experience under your belt. Should there be one clean centering definition? I hope so. The 1st common mistake we see people make is modifying scrum without understanding it. They often confuse themselves and their organization. Advice: Refrain from thinking about extending scrum or modifying it. It needs very little and all we seem to do is over complicate things.

Are Placeholder Stories Ok?

Planning | Posted by The 3Back Team
Jan 18 2010
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email

Choose:

  1. place-holder-story-scrum-agile-slackA placeholder story is a sign of sloppy planning
  2. All work should be known ahead of time and planned during sprint planning
  3. Yes, this allows the Product Owner to dump things into the sprint as needed.
  4. Sometimes we have a history of unexpected bugs/issues of handle it now. This allows us to track how much of that is showing up and leave some slack for when it does.
  5. We often have work we know we will have to do but, don’t know what it is yet.

Comment: This is a way to track how much unknown work is showing up and manage the amount by triggering a conversation when needed. One of the most common issues for scrum teams is what to do about work that we expect to have to do during a Sprint, but don’t actually know the details about yet, such as bugs we have to fix in existing systems, or expected sales support efforts. Using Place holder stories is a a method to manage these “known unknowns”.

Four Pillars of Software Development

Development | Posted by The 3Back Team
Apr 22 2009
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email

The purpose of this post is to consider Four Pillars of Software Development and Simpley Rules  four-pillars-software-development

  • Project Management is mainly about “managing the work” or stimulating the environment so the work gets done with minimal telling people how / what to do.
  • Source Control if it’s only one file then, I don’t need it :)  of course it is always more than that as soon as it goes over 100 files it becomes a necessity.
  • Build automation (and repeatable automated configurations as a whole) shows up after source control and becomes a necessity around 500(pick a number that you think you will go crazy at) items or so. It is a number thing but, I can get by longer without repeatable automated configurations than I can without Source Control.
  • Test Automation this shows up as needed after 1000 plus code files. Test automation is all about feedback. When I say feedback it assumes people are already thinking in terms of interface design “start with the end in mind” if not then TDD/Unit must be purused because people are missing critical thinking skills. 
Calling them pillars for complex software development that goes over 50,000 lines of code is appropriate. If it is something less than that then they are not pillars because I can make do without.  Order that the Pillars Show Up In and Simply Rules for each pillar’s primary purpose.
  1. Project Management – “Make it visible” then emergent order can happen
  2. Source Control – “Create a Known Center” then we can work from a place of stability without getting lost in our own mess.
  3. Automated Deployments/Builds – “Work from repeatable base lines” then makes changes from there
  4. Automated Testing – “Keep stuff we want” modify to add new behavior. Sometimes through open/close and sometimes refactoring to accommodate new which yes, is recursively open/close but, not really :)
  • Each pillar is to help shorten feedback and bring focus so that we “pay attention and adapt“ .
So my take is that if you are something over 50k + lines of code then these are pillars because you just can’t move much beyond that without the tower of code falling over. Each pillar shows up as you scale the pile of complexity you are dealing with. People also increase the complexity and require more structure to work within.

 

Ideally, I want “just enough structure to run rampant in“.

What You Should Know After CSM Workshop

Agile Pathways | Posted by The 3Back Team
Mar 11 2009
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email

This is a great read and summarizes what should be learned in a CSM course. As you read remember this is something that you have to learn is true and the only way we have found to teach people this is for them to apply the scrum framework to their jobs.

Message from Ken at the Scrum Alliance

  • Scrum is a framework for iterative, incremental development using cross-functional, self-organizing teams. It is built on industry best practices, lean thinking, and empirical process control.
  • Scrum is optimized for high yield product management and product development. Scrum is particularly appropriate for high risk, complex, large projects and can be used when other parts of the endeavor are hardware or even waterfall development.
  • If waterfall suits current needs, continue using it.
  • An enterprise can use Scrum as a tool to become the best product development and management organization in its market. Scrum will highlight every deficiency and impediment that the enterprise has so the enterprise can fix them and change into such an organization.
  • Whenever an enterprise modifies or only partially implements Scrum, it is hiding or obscuring one or more dysfunctions that restrict its competence in product development and management.
  • The iterative, incremental nature of Scrum puts stress on the product development organization to improve its engineering skills and on the product management organization to optimize the return on investment of every release and project.  The phrase, “That can’t be done here” really means that it will be very difficult to do so. The gap between current practices and target practices is a measure of incompetence and competitive risk.
  • The use of Scrum to become an optimized product development and management organization is a change process that must be led from the top and requires change by everyone within the enterprise. Change is extremely difficult and fraught with conflict, and may take many years of sustained effort. Turnover of staff and management can be expected.
  • The most serious impediments to using Scrum are habits of waterfall, predictive thinking over the last twenty to thirty years; these have spawned command and control management, belief that demanding something will make it happen, and the willingness of development to cut quality to meet dates. These are inbred habits that we aren’t even aware of anymore.
  • The focus of using Scrum is the change from old habits to new ways of doing business. Scrum is not implemented or rolled-out as a process; it is used to foment change.
  • Scrum is not a methodology that needs enhancing. That is how we got in trouble in the first place, thinking that the problem was not having a perfect methodology. Effort centers on the changes in the enterprise that is needed.
  • Iterative, incremental development is much harder than waterfall development; everything that was hard in waterfall engineering practices now has to be done every iteration, and this is incredibly hard. It is not impossible, but has to be worked toward over time.
  • Managing a release or project to deliver only the highest value functionality and not deliver the rest optimizes value is the job of product management and customers.
  • Self-optimizing teams are extremely productive. When they work closely with the customer to derive the best solution to a need, they and the customer are even more productive.
  • A team consists of people under pressure to do their best. Conflict is natural and the team needs to know how to deal with the conflict and have resources to draw on when needed.
  • The role of an enterprises management changes from telling people what to do to leading and helping everyone do their best to achieve goals. People aren’t resources and managers aren’t bosses.

Perfect Planning — Best Practices for Successful Agile Planning

Planning | Posted by The 3Back Team
Mar 03 2009
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email

A successful sprint starts with the planning session. This is where the team reviews the work about to be undertaken, and after a few hours of questions and answers, estimates the work required to complete the user stories reviewed, and then as a team, commits to a prioritized list of stories and tasks that are within the team’s calculated capacity. This light set of procedures is well documented in Scrum and Agile literature [1],[2], but included here are some observable traits and best practices that have been found in well-formed, hyper-productive Agile teams.

A well-formed Agile team establishes an intangible sense of rhythm, and enjoys the transition time between iterations or sprints. This period provides closure for work completed, and anticipation of new work. Ideally, the Agile planning session should follow a demo and retrospective (all in the same day), to give the team a chance to celebrate, reflect and get better. Sprints should be consistent in length to help the Agile team develop this sense of pace. An experienced Agile Leader understands that shorter sprints (10 days is ideal) are much easier to plan & estimate. Longer sprints (> 10 days) tend to allow teams to decrease the sense of urgency during the first several days, and it is more difficult to contain and understand total scope than shorter sprints. In Complex Adaptive Systems [3], rapid feedback is critical to convergence.

The purpose of the Agile planning session is to present a collection of user stories to the team and allow them to be estimated. This is where the team effort gets aligned with business direction, and is the essence of the Agile phrase let the product lead. At the end of the session, the team should feel committed to completing the work required to implement the agreed-upon list of user stories during the next sprint. An information radiator [4] should be loaded and prioritized with the sprint backlog of stories, and the team ready to begin the next day with Daily Scrum for day 1.

A well-formed Agile team has a product owner who is prepared for the planning session, and ready to present sprint goals and a prioritized list of stories for estimation by the team. This prioritization has a rhythm all its own, as the product owner should review the product backlog frequently so that stories are staged and ready-to-go for planning sessions based on the latest business priorities. A best practice that helps make this happen is to visibly display the product backlog close the the product manager’s office, so that he/she can has a constant reminder of the upcoming prioritization [5].

A well-formed Agile team has a product owner who can clearly state the Vision (why the Agile team exists) and can formulate clearly the goals for each Sprint [5]. This clearly stated vision and sprint goals should be used to begin the sprint planning session, so that guiding principles can be applied to each story considered for estimating. New stories are typically unfolded as the team asks questions of the product manager during the planning session.

The Agile Leader calculates the sprint capacity by assuming each team member has no more than 6 hours to commit per day. This buffer prevents the team from being over-committed, and is a responsible approach for accounting for distractions. This helps enforce the Lean Software Development principle “Limit work to capacity” to ensure that the hyper-productive state is sustainable.

The Agile Leader is focused on setting the Agile team up to be successful in creating business value during the sprint being planned. The Agile Leader creates an environment where each day is seen as an opportunity to close stories, and visibly see daily progress in the Agile-V [6], reinforced by a satisfied Product Manager. New Agile teams typically have questions of how to handle time away (vacation, training, etc). A well-formed Agile team is extremely tolerant of team members’ vacation and other time-away needs, as paired programming and role-sharing prevent silos of code territories to build up. When a team member is away, the well-formed Agile team can easily adjust and continue creating business value.

Determining the team’s capacity is critical to a successful planning session. This should be the first activity in the planning meeting. Two best practices for determining the team capacity are:
1) The total capacity of the team should be based on the number of team members times the number of days in the iteration times (no more than) 6 hours.
2) Start the planning session by establishing who has vacation time planned for the upcoming sprint, and capturing that information in a vacation story. The vacation story has tasks for each team members’ time away, which account for some of the team’s capacity when stories are being committed. As the sprint progresses and the vacation days are hit, the burn-down chart reflects these time-away tasks being completed along with any other tasks. This prevents the burn-down from falsely indicating a problem.

For example, a 5-member well-formed Agile team is planning a 10-day sprint. The capacity of the team is quickly established to be 5 members X 10 days X 6 hours per day, which gives a capacity of 300 hours. The ideal daily burn-down becomes 30 hours. If 4 team members attended training during day 1 of the sprint, this can be easily accounted for by creating a time-away story that has 4 tasks, each with a 6 hour estimate. These tasks get completed on the first day, so the burn-down chart correctly shows the time burn-down.

The Perfect Planning session can be summarized in the agenda below. Try variations of it to plan your next sprint:

9:00-9:15 Daily Scrum (last scrum of ending sprint–discuss any unclosed stories and agreement on how to handle)
9:15-10:00 Demo of stories delivered over the course of the last sprint
10:00-10:15 Break
10:15-11:15 Sprint Retrospective (what worked well, what can work better)
11:15-12:15 Lunch
12:15-1:00 Determine Vacation and establish Team Capacity for the planned sprint
1:00-2:00 Visioning (Product Owner presents: Review OBT, Discover Sprint Goals, Discover Roles. Product owner presents each story in priority order)
2:00-4:00 Team reviews stories, creates estimated tasks for each
4:00-5:00 Team commits to chunk of stories to Product Owner, ready to start daily scrum tomorrow

A purely Lean view of the Agile planning session sees planning and estimating a batch of stories as waste. Dave Anderson and Rick Garber (both of Corbis) gave a great presentation at the Lean Product Development Summit [7] where they demonstrated a pure Kanban implementation for software development that had no planning or estimating, and pulled stories in as capacity freed. This approach has the obvious potential of further raising productivity for standard Agile processes. For some situations, the pause between sprints allows teams to celebrate and catch its collective breath while the retrospect provides feedback required for convergence of the complex adaptive system. It would be interesting to take a well-formed Agile team, and migrate it to pure Kanban to see what productivity gains could be realized. I think for new Agile implementations, the light rules of Scrum with Agile/Lean principles provide a proven transition to Lean Software Development, however the beauty of the principles behind Lean and Agile dictate that the best implementation is one that can inspect and adapt. The Corbis implementation of this Kanban approach reinforces the application of situational agility, and I’m grateful for Dave Anderson and Rick Garber for illuminating this so well in their presentation.

References
1. Agile Project Management with Scrum, Ken Schwaber
2. Agile Estimating and Planning & User Stories Applied, both by Mike Cohn
3. Agile Management for Software Engineering (chapter 2), by David J. Anderson
4. see Information Radiator, Alistair Cockburn
5. see Eye on the Prize: Best practices for Aligning Agile efforts with business goals
6. see Agile-V Scorecard
7. see A Kanban System for Sustaining Engineering on Software Systems, by Dave Anderson & Rick Garber

Wired To Connect

Predictable Core of Enablement | Posted by The 3Back Team
Mar 03 2009
  • Digg
  • del.icio.us
  • Facebook
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Twitter
  • email

It seems that the more we connect, the more we create gravity around ourselves and the things that we want to do. In my experience this is even more true for team’s that are involved in product development.
The rule at work here seems to be:

“Teams are alive as they can build meaningful connections.”

This is perhaps why I love working in the agile software community. The more I play to my strength of connecting with other folks, especially teams, in meaningful ways and adding value, then the more the universe seems to respond by generating gravity that can then be used to spur on those interests.