Scrum Development Blog

Better teams make better products.

Posts Tagged ‘agile’

Architecture

Scrum Terms | Posted by The 3Back Team
Apr 02 2010

architecture agile scrumArchitecture is the context within which particular stories are implemented. In the context of scrum or agile we are considering architecture from the context of  software development. The purpose of software architecture is not to define the place for the pieces as much as it is to separate the dependencies of the pieces. The purpose of architecture is not to build a framework within which all things can nicely fit. It is to define the relationships between the major concerns of the system so when they change or new requirements emerge the impact of the changes required are limited to local modifications. Limitation of concerns to local areas allow us to think of the system in a computerized fashion and treat things as independent encapsulate modules.

Architecture has an inherent beauty of design that invites the mind and allows its purpose to be adapted as needed.

Scrum Team

Scrum Terms | Posted by The 3Back Team
Mar 25 2010
scrum team solutions

Scrum Team

The fundamental unit in Scrum is the team. The team is the engine that works to provide a solution in the form of a product. The use of the word team becomes a little redundant in Scrum so the language was modified in 2007 to make a distinction between Scrum Team and team. Before the 2007 the word team was used for both cases and this created confusion.  Stakeholders form the context in which the Scrum Team exists. Usually there is someone special in the Stakeholder group we call the Business Owner who asked the team to form and consigned resources to the Product Owner to get the job done.

A Scrum team is made up of the team, the Scrum Master and Product Owner. A scrum team has all of the skills necessary to produce a meaningful increment of work each sprint. There is a balance of power and responsibility across the roles of ScrumMaster Product Owner and team.

Team is typially focused on providing innovative solutions. Can=>What=>How shall we build this?

Scrum Master is concerned with health of the team. Are we a well formed team?

Product Owner is focused on direction of the product. Where to next?

Please note this is but, an introduction to the terms. A full understanding takes reading, training and applied effort to really understand the balance achieved with the Scrum Development Method.

Make It Visible

Scrum Terms | Posted by The 3Back Team
Mar 17 2010

make it visibleOne of a core set of agile thinking patterns is Make it Visible. 70% of the processing power between our ears handles and deals with processing of visual information. For people generally, we will know where to apply energy to something when there is sufficient visibility on a task or work item. Self organization can occur when the work has enough visibility so that we know what to do without being told. So when you do not see someone moving or taking action it is usually because there is lack of visibility and my first assumption is that the person is simple confused on how to engage. Look to make things visible to the person rather than telling them what to do. Assume they want to help but, simply do not know where to apply energy. Make it Visible applies as a pattern to setting up and sustaining well formed agile team.

Team Swarm

Scrum Terms | Posted by The 3Back Team
Mar 11 2010

Team swarm is an observable pattern of cohesive team work. The word swarm is the right word because to an outside (outside: someone not directlyteam swarm scrum on the team doing the work) observer the pattern almost looks random. However, to those on the team they are moving with intent and purpose even though the observer cannot easily discern why they are focused the way they are.

Well formed teams will exhibit a team swarm pattern after they mature. A good sign of your team maturing is that they tend to swarm and jump on work together and often one story at a time. This is an observable point of view that the Scrum Master can use to detect when his/her team is starting to work well together. To an untrained observer this will be a sign of chaos and the tendency is for them to step in and clean up mess “who’s in charge here anyway” or “this needs to be tidy’ed up”. These types of management practices are anathema to a good agile scrum team and interfere with it’s ability to self organize.

The pattern of team swarm is generally observed for teams when strong task orientation is present. Scrum teams are often working on software development problems that require a team head to work through. The Product Owner, in scrum, provides the direction or line of purpose for the team.

Great project management recognizes team swarm and is good at stimulating the environment to encourage small team tactical behaviors. A competent agile project manager will not usurp the teams work pattern to fulfill a desire to know what is happening. This means that reporting of work done on the agile team is incumbent on the team members to make it visible. Therefore a great leader charges the team with the constraint to both make it visible internally so that common task orientation and make it visible externally so that reporting/decision making can be supported.

The team swarm pattern is critical to decision making. Tactical agility (team level agility) can result when the work is visible and an emergent adaption can occur. Externally there is a need to supply concrete realities the team encounters to inform and enable strategic agility. Again this informs decision making both internal and external to the team. A trained agile project manager will know how to stimulate team behaviors without compromising the team’s need to self organize and simultaneously feed that information up the decision making apparatus of the organization so that strategic agility can happen. The result is a bidirectional flow of information. Team swarm is one way to know you are on the road to making that happen as smart as possible.

Professional Scrum Training

Scrum Terms | Posted by The 3Back Team
Mar 11 2010

scrum team goldThere are a number of organizations out there offering Professional Scrum Training. Most of them are part of the Scrum Alliance which maintains a strict set  training practices and quality standards. However, there are many who are starting to offer their own certification and special class of designations because of money or because they could not tolerate guidelines they did not personally control.

Scrum is a open development methodology founded by a team and has a long history of being team based in it’s origins. There are some very strong writers who have popularized Scrum and are well known for their work, writing and contributions.  More later on the founding history of Scrum….

Team Fragmentation

Scrum Terms | Posted by The 3Back Team
Feb 27 2010

Team fragmentation occurs when there is a lack of unifying purpose in product development work. For simple groups this is often referred to as task orientation. Since the word task is so heavily loaded in agile project management or an any agile / scrum team our industry commonly uses team fragmentation.

In agile distributed teams can easily become fragmented from lack of task orientation. For a distributed scrum agile teamscrum team fragmentation this can be very challenging. Most organizations are faced with the reality of distributed team work in the form of offshore or nearshore typically done as outsourcing.

  • How do you manage these teams?
  • How do you bring new team up to speed?
  • What tools do we use?
  • How do you juggle time zones?
  • Language barriers?
  • Cultural barriers?
  • How do you form effective team habits and without getting blinded by process fog?

Successfully developing a product with a distributed agile team is a modern day challenge most companies.  For the 3back team this topic is one of our favorite.

Process Fog

Scrum Terms | Posted by The 3Back Team
Feb 27 2010

Too much structure, even well intended can obscure what is happening. Process fog can be thought of as a reduction inprocess fogvisibility brought about by creating too much process such that we can no longer detect how to tune team communication protocols. For this purpose there are 3 layers of fog that we can consider.

Commitment Based Planning

Scrum Terms | Posted by doug.shimp
Feb 16 2010

Generally, this word can be used for any Agile Practice but, we will focus on the word by using the Scrum Framework for context. From a Scrum point of view we can understand commitment based planning as something that takes place between sprints.

Planning, for an agile team, is actually a commitment that the Team makes. In Scrum, this commitment is based on a negotiation between the Productcommitment planningOwner and the rest of the Team, where the Product Owner is speaking for all the Stakeholders that are outside the Team.

For more read  commitment-Based planning, and the major issues that arise when doing it.

Commitment-Based planning begins with the Product Owner having a collection of Stories sufficient to fill the Sprint. Typically, you would expect up to two or three Sprint’s worth of stories to be available, with a minimum of 1¼ sprint’s worth. See the chapter on Backlog Grooming (xx) for discussion of getting stories ready for planning.

  1. At the beginning of planning, the Team discusses the overall goals and priorities, and the PO selects a single story to consider (the highest priority).  The Team (including the Product Owner) negotiates the “doneness” Agreement for this single story, and the Team (without undue influence from the Product Owner, or consideration of the Story’s size in SPs) commits to this single story. What they are actually committing to is the “doneness” Agreement, which we typically simply refer to as the story’s Agreement.
  2. The Team may not be able to commit to a story, or might not even be able to agree on “done.” This makes the story in question 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.
  3. 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.

Summary:

This process is quite simple, but leads to a number of issues that are tightly intertwined.

A useful contrast is Velocity-Based Planning vs. Commitment-Based planning. Generally,  Commitment-Based planning is better than Velocity-Based planning for most agile teams.

When is a requirement truly required?

Scrum Questions | Posted by The 3Back Team
Feb 12 2010

Choose

  1. The development team creates a spec.desirements requirements acceptance test
  2. The Product Owner says it is.
  3. The business asks for it.
  4. There is a test which actually requires it to be there and fails when it is not.

Comment: We often find ourselves lost in the desirements trying to find the real requirements for our system. Those things which seem required often end up being only desired. The word requirement has suffered more from confusion and misuse than just about any other word in the IT lexicon of development. What is a “nice to have” requirement? I mean really! I have close to 20 years of experience in the industry including training and writing requirements. Even with all of that experience the word still makes me a little crazy. I like the word desirement because of it’s contrast with requirement. When there is a test that makes it required with a pass/fail then it is a requirement, until then it’s just a a desirement.

So, a more interesting question is …. When is a requirement truly required?

Perfect Planning — Best Practices for Successful Agile Planning

Planning | Posted by The 3Back Team
Mar 03 2009

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 A Kanban System for Sustaining Engineering on Software Systems, by Dave Anderson & Rick Garber