Practical agility and Other thoughts

Showing posts with label Scrum. Show all posts
Showing posts with label Scrum. Show all posts

Sunday, November 22, 2015

10 things that agile teams can do in a retrospective

"Today should always be better than yesterday" - mother of Gabby Douglas, the first African American to win individual all-around gold and the first American to win gold in both the individual all-around and team competitions in gymnastics.

A retrospective provides the opportunity for teams to get together and tweak "something" that impacts their outcomes so they achieve better results than before. Teams use retrospectives for joint learning, making a decision, choosing an action or strengthening a common bond. In Scrum, retrospectives are held at the end of each sprint. Kanban is non-prescriptive about retrospectives, but most kanban teams end up doing retrospectives at a regular interval or an as-needed basis.

Noted that some teams resist the retrospectives and lose them entirely. Why does that happen and what is the impact? Well that's another article for later.

Here is we look at the positive side and some of the ways that agile teams use retrospectives to their advantage. This list is but a small subset of many possibilities on what agile teams can do in a retrospective!
    Discover team strengths, weaknesses and opportunities: Retrospectives are avenues for team members to discover what the team is doing well and where it can make improvements.
  1. Raise the bar on their own performance: Based on the strengths and weakness, Agile teams inspect and adapt, either improving their performance or adjusting to new situations they encounter in order to stay on course.
  2. Prioritize problems that the team must address: Teams usually identify multiple problems and areas of attention during the retrospective and then they narrow down what is most important for them to solve.
  3. Solve difficult problems: At times, the team identify a particular problem that needs to be solved without even going through the rigor of listing and prioritizing the problems. Teams deploy various problem solving techniques, such as root cause analysis or five whys, or even discussing the results of an A3 process together.
  4. Review data, important trends: Scrum Masters and others in the team may collect important data and trends for the team to review during the retrospective. The data can be anything related to the team's functioning, or related to an important issue that the team would like to resolve. Looking at the data together often produces new insights for all team members and helps finding the best way to resolve the problem.
  5. Ask for organizational and leadership support: Depending on the organization, some problems may be beyond the team's sphere of influence. By prioritizing and discussing possible solutions, the teams make a case for change that would impact them positively.
  6. Cheer, appreciate, express gratitude: Retrospectives can also be one of the forums to celebrate success on completion of a hard initiative, an effort or any activity that the team undertook. Teams utilize the retrospective to bond together and appreciate each others' strengths and contributions and thank each other for critical help in completing or making progress towards a goal.
  7. Support each other: A healthy team harnesses and extends ideas from its members. Retrospectives are an opportunity to strengthen some of the beliefs and the ideas that team members want to adopt. In that process the team members support each other and make progress on what they think is important.
  8. Challenge each other: Not only are the retrospectives meant for supporting ideas, they are also meant for challenging different ideas. Challenging different ideas helps the team narrow down to the one or few that the team wants to try.
  9. Experiment: Teams, Scrum Masters and facilitators to experiment with what they do in their retrospectives so they can amplify the value derived from the retrospectives. They can experiment and vary the format, agenda and results they want from the retrospective, or just use it to have a conversation to make changes that are needed.
Lastly, if you are doing Scrum please do not wait for a retrospective till the end of the sprint to have a conversation with your team.

Related:

Sunday, November 8, 2015

Five agile concepts that managers should never ignore


Having practiced agile for some years now, I keep running into situations where managers, with all their good intentions, either misinterpret or fail to understand or do not choose implement certain agile concepts due to various reasons. Although that provides them immediate relief the long term pain only aggravates impacting the outcomes, the team and the managers themselves in different ways that are usually not positive.

Are you a manager? Below are five key concepts that you will hopefully find useful.
  1. Start right, because if you don't you will put the entire project or initiative in jeopardy. Going through a short term pain or pressure is sometimes necessary if you wish to avoid long term problems with your project. Managing expectations is the key. If your voice is not being heard by higher ups, get help if you have to. It could be someone with more influence or someone with more experience or may be a mentor or a coach who can help you make a convincing argument and even argue on your behalf. Get your team to appreciate why starting right is important. Ally with them to build a convincing case on what works for you.
  2. Adapt or Die. If you don't learn from mistakes you will find it hard to survive. This is applicable for you not just as an individual but also for your team. The teams that do not learn from their mistakes and team members that do not learn from each other often run fire-drills as regular way of working. If they are using Scrum, you will often find symptoms such as planning more than what they can do, or ignoring yesterday's weather, and often pulling in new work when the planned work has not been completed yet. Others may abandon Scrum altogether and start using Kanban without applying WIP limits or even visualizing their workflow. Are you a leader of such a team or teams? Why do you think this is happening?
  3. Be transparent. At times there may seem to be a tendency and perhaps even an incentive not to disclose information higher up and letting them know what is really happening in your project. There could be many reasons for this situation, organization-created or self-created or just fabricated. When you look into the reasons, think about what is best for you, best for your team, best for your organization and best for the customer - ideally, all the four should have the same answer. If not, dive deeper and ask why is there a difference? Can you do something to remove the difference? If can't do anything about it, are you and your at the right place doing the right job?
  4. Promote collaboration, simplicity and excellence. Agile principles talk about collaboration, simplicity and emphasize technical excellence. The reason is that there is usually nothing more powerful than collaborating to deliver successful outcomes along with technical excellence, that motivates a strong development team. As a manager you carry a ton of influence and responsibility to make this happen.
  5. Deliver customer value and team happiness. You have demonstrated your success as a manager when your team is delivering functionality that makes customers happy, it is building in quality into the product, and is proud of its accomplishments. Process may be important but it is not the goal
Good luck!

Tuesday, October 20, 2015

How to increase team velocity? There is no silver bullet but you can try!

Ugh... That question again?

In a discussion forum I came across this comment that "Velocity is an awful term and one that is often weaponized like it has been in this thread by asking how to get more. It's the wrong question because the goal is to become predictable much more so than faster."

I do not agree that velocity is an awful term, but I do agree that it is often misused (and even weaponized). If you intend to use velocity the right way, and are interested in using it as a tool to understand and improve your work outcomes, this post is dedicated to you.

I would like to note that some of my friends are passionate about #noestimate. Whether you go that route or not, is your choice. The important thing is that is the team performing or worrying about numbers and metrics. If velocity discussions are weighing down the team, that is usually a sign of a different problem.

As you go through this post, keep in mind that increasing velocity may not be your real and only problem, and should definitely not be your main goal.


Addressing the "Real Slim Shady"...  

If you want to address the issue genuinely please understand there is never really an end.

If the team is rapidly delivering customer value, communicating well and learning from its experience you may only have limited leverage on what the team itself can do. The team may need support from its ecosystem to take it to the next level. At the same time there will still certainly be things that can team can do to make improvements. and is improving velocity the end goal? Or is it delivering customer value rapidly?

Lets address that.

 

Step 1. Who is asking?

Before you go any further it is important to understand who wants to increase the velocity. Many a times someone higher up in the food chain may want to know how you will improve the velocity. It may also be a software developer on the team, the whole team, the product owner or the scrum-master (is that you?) who is interested. Or it may be a stakeholder, project sponsor or anyone else as well. Understanding who is concerned about improvement in team's velocity can help you in several ways in the steps that follow.

Step 2. Why are they asking - their motivation?

Before you jump into a solution, identify why they are asking the team to increase its velocity. What's in it for them (who want the team to improve)? As you dig deep into the reason for asking, you will likely discover the intent (good, bad, helpful, unhelpful) of the person asking the question. You will become sensitive to their needs and discover their situation. Are they interested in improving communications and flow of value or do they have a personal gain in mind by highlighting the problem? Answering why will help not just with framing the response better but also with taking more informed actions. Whatever the reason is, think about how that can help you drive improvements.

Step 3. Draw insights - Where are the problems, what are the solutions?

Based on your study of your context, would it be fair to say there are potential opportunities for improvement? Where could the team do better?

Imagine a team delivering really really fast but the customers are not responding favorably. Could it be lack of quality or delivery of functionality that customers do not need? In either case, increasing velocity may not be the best solution. We need to think smarter.

Try these questions first:
  1. Is the team delivering new features and improvements frequently? 
  2. How are customers reacting to the product deliveries and latest features? 
  3. Is the team generally enjoying their work and having fun?

If you spot problems while answering these questions, search deeper. Here are just a few examples of what you could explore.

People:

  • Do measures such as velocity drive positive behaviors in your organization? If not what can be done to fix that situation?
  • Are the roles well defined? Is there sufficient empowerment? Are the roles of PO, SM and Development team clearly understood?
  • How is communication between the team members?
  • How strong is the leadership for your team, project and the organization?
 

Process questions:

  • How do you assess progress towards an important goal? Do you have an objective method?
  • Are team members working on multiple diverging goals and functionalities and have high work in progress?
  • How are releases managed and rolled out - small chunks or big rocks?
  • What is the team doing to continuously learn from its journey?
  • How are (Scrum) meetings running?

Technology questions:

  • How is the team doing on the account of technical debt?
  • Is there sufficient test automation and continuous integration?
  • How is your quality? Do you have a huge bug backlog?


Draw insights together with the entire team to understand all perspectives and see what can be done. Dig into the backlog, measurements that the team thinks are relevant, such as velocity, cycle time, defect trends, automation, build failure rate etc. Looking for problems, and asking why over and over again, should give you new insights on what can be done.

Shortlist a few experiments to try out.

Step 4. Sell, Try, Feedback, Repeat (Go to step 1)!

As you go through this exercise, you may come up with a range of solution(s). Some solutions may require senior management intervention, others may need more involvement from the team.
Now it is time to channel the conversations around the solutions, convince the stakeholders to try them out. Clarify how you will be reviewing the outcome - set a time-frame for that. Try the solution and get more feedback! You may have to repeat this several times, to continually get the results you are hoping for (including but not limited to an improved velocity, as that may not be the real goal you are after).


Good luck!

Saturday, May 30, 2015

So, why plan? A note to self..


Would life be easier if we did not have to think about planning? Let's face it, whether it is about running our day to day routine or even something as simple as paying a visit to the neighborhood grocery store there is planning involved. Imagine taking a vacation without planning where you will go, what you will do while you are there, how long will stay and what you need to bring with you. Or imagine not thinking about how much you need to earn, to save and to invest to meet your worldly needs.. Well lets just keep those worries aside for a few minutes shall we and think about how planning can actually help! Yes that's right, no matter how much burdensome it might sound, planning can help.

What is planning?

The simplest definition of planning that I have come across is "decide on and arrange in advance". I like this because this definition is light, it does not say how much detail we need to plan in, but an important thing that it does say is that planning happens in advance.

Why plan?

There are many reasons why we plan. Our limited information about the future and vision of what we want to do with that information in order to achieve a specific objective gives us an opportunity to play with creative alternatives and paths to get there. Applying constraints helps us narrow down our search of solutions, breaking them down into chunks or steps that are (hopefully) easy to understand and sequence as necessary. When steps and solutions are not known we put on our experimentation hats and navigate our way to discovering the possibilities.

Use the plan as a defense strategy

So what should I tell my teams when they get planning? What are the things I need to keep in mind but don't come easy, specially with Scrum? In my note to self, I include the following.

 

Plan just in time, and just enough.. 

Plan early but not too early. Have a high level roadmap that (can change and) tells the team the path we will take if things went all-right. Planning too much too soon could mean a lot of wasted effort and repetition. Planning too little could mean little predictability in outcomes for initiatives that span multiple sprints. So lets groom our backlog stories and have them ready for a few (may be two to four) sprints to come. Lets find that right balance for our team where Sprint planning sessions do not become painful and burdensome.

 

Plan based on data..

More often than note, teams are asked to meet an "aggressive targets". In other words, there is a huge tendency to ask for deliveries tied to dates without understanding scope and effort involved. These dates are usually based on business constraints and are tight (more often than not). So, organizations and teams find themselves in situations where teams are unable to deliver as some say - "on time" and "within budget". Lets avoid that for our team through scientific and consistent use of measures such as velocity and cycle time. Lets make forecasts based on data so that business understands our non-trivial effort and can make realistic, prudent decisions on scope and priority.

 

Maintain discipline, Estimate or #NoEstimate..

There is much debate on whether to do estimates or not. What seems more important to me than that debate is to agree on an approach that works for our team and for your organization and follow it with discipline. When we estimate, lets spend little time estimating, after all estimates do not produce value for customer, working software hopefully does. Estimates are just that - "estimates", they are "not actuals".

 

High priority, High risk first..

What should the team work on first and what should it work on later? There are multiple factors that decide this, chief among them are dependencies, customer feedback and risk. The product owner plays an important role balancing all aspects while deciding the order so that team delivers value while making continuous progress. So lets keep in mind the problem we are trying to solve, and order our backlog on the basis of that. Lets identify those things that are not clear and run spikes. Lets reduce the risk early as early as we can, so that we do not embarrass ourselves in front of our stakeholders and customers when the time comes.

Minimize hand-offs, eliminate technical debt..

Lots of times, teams work with other teams to deliver an experience or functionality. Many times this needs dependency management, and back and forth discussions. This can lead to side effects such as reduced velocity, need for additional testing to retain quality, development of interfaces and/or APIs etc. When we get into such situations, lets find out if we can minimize dependencies through techniques like creating mockups, and integrate early and often. Let us ferociously automate testing and deployment (at all levels) so that we can identify and resolve issues quickly.

Plan often and monitor, welcome change..

Lastly, should planning be one time? Absolutely not! The team should be ready to embrace change as they get better insights into customer needs and potential solutions. Lets dispassionately accept new stories, reject old ones that are no longer useful and update ones that need to be updated. Once again, an active Product owner and Team partnership can make a big difference. It is not as important to stick to the initial plan as it is to fulfill needs of the customers.

Friday, February 27, 2015

Want to be a Scrum Master - What is your motivation?


Thinking about being a Scrum Master? Have you thought about:
1. What is your motivation and do you think you are the right fit?
2. Would you like it to be a career choice?
3. What is in it for you? Is this role really attractive for you? What kind of growth are you looking for?
4. What does this role mean to your organization?

If you have thought about any of these questions and chose to be a scrum master, you are among the few scrum masters I have come across, who had the chance to do so.

In many cases I have come across, being a scrum master has been a matter of chance, many times imposed, rather than a matter of choice. To me that is an indication of how much (lack of) thought we devote into our role in a team setting as we probably should. As a result, we have multiple cases of job done badly, the role being viewed as "just" an administrative role, or something so easy that "anyone" can do, etc.

 Here I list a few things to think about when you are contemplating this role for yourself.

1. Start with motivation. Ask yourself why you want to be the scrum master, and what do you think you will achieve through that role. If you are a good scrum master, your services will be rewarded through your team's successes (or fast-fails, which should also be considered as successes). Highly successful teams will shine and through them, you will shine. Be aware that scrum master is only as strong as the team, so the primary job of the scrum master is to build a strong, learning team and actively sense and remove impediments that come its way.

2. Proud and Happy Teams - Do you love that? Will you make it your mission to make your teams proud of the work they do and how they do it, so they can predictably meet their commitments to business, deliver quality output keeping technical debt under check? If you answered these questions as yes, you get full marks!

3. Are you looking for glory for yourself or for the team(s) that you will serve? Can you be self-less in victory of your team's success, will you let them take the credit and can you teach them to learn from failures? Will your organization reward you if you served selflessly? Will your manager understand? If your answer to these questions is yes, you have hope.

4. Do you understand Agile manifesto, Agile principles and do you subscribe to XP values of simplicity, communication, feedback, respect and Courage? If you answered yes, think again. If you answered yes again (and again), think about situations that could get you in trouble with stakeholders, management, and even the team that you might be serving. Would you be able to manage expectations and still help the teams succeed? Yes means you are in business!

5. Are you ready to learn, unlearn and learn again? Different situations require different responses and solutions. Are you willing to experiment with different approaches, solutions and options with different team members, different teams, different projects, and different managers? Are you willing to engage with your audience and fail-fast, take responsibility for your team's decisions, actions and results (god or bad, specially bad ones)? Are you willing to be open, positively debate with your team, take responsibility of (poor) team decisions even if you disagreed with the team before the decision was made? Yes indicates you have it in you to be a great scrum master.

6. How does your organization view the role of a scrum master? Does it recognize this function as requiring special skills, training and coaching or is there a tendency that Scrum Master is a side-job that anyone with little time can do? If your organization recognizes the importance of this job, you are in luck and the probability of your success will increase dramatically! If it does not recognize it this way, your hard work, diligence and success will surely influence the organization, do not lose hope.

Bottom line, if you want to be a good Scrum Master, wear your servant-leader hat, be well grounded and open to learn, and experiment your way to success.

Tuesday, October 19, 2010

Breaking Scrum: Scope changes within the sprint...

A discussion I started on Linked:

Breaking Scrum: Scope changes within the sprint...
Hi,
Looking a "list of reasons" on why product-owner-pushed scope change during the sprint breaks scrum...

Few I can think of (please add):
- Takes away the focus from the current functionality
- Reduces team ownership
- Impacts Quality
- Impacts Velocity
- Impacts sustenance of Scrum
- .......

Thanks!
Rahul

3 months ago

Prasanna Raghavendra • The basic essense of agile to me is getting joy in the journey (see here: http://2srp.blogspot.com/2010/06/joy-of-journey.html). One should be successful in the small steps to make sure there is continuous passion and teaming, If this fails, everything breaks!

Mike Caddell • A scope change during a sprint - which is a contradiction in terms - invalidates the fundamental agreement and commitment that bounds a Scrum iteration. The team commits to complete a set of functionality as prioritized by the Product Owner and agreed to by the team. The Product Owner in turn commits to helping define and elaborate the agreed on scope in a timely manner to enable the team to do it's work; and only the agreed on scope, nothing else unless the team finishes early and then picks the next highest priority Release Backlog item.

If the team is asked/required to accomplish a different scope of work during the sprint, the mutual commitment to the previously agreed to scope is thus invalidated. At this point, the sprint should be terminated and a new sprint with the new scope begun - starting with Backlog Grooming and Sprint Planning.

Julie Hendry • I agree Mike, although it often depends on what is meant by 'scope change' - is is the overall deliverable or is it simply that we discover more detail?

I've seen successful teams accept some changes within scrum as long as the changes are agree and communicated, and do not change the underlying goal of that sprint.

Rahul Sawhney • Thanks all for comments.
@Julie, To clarify I mean "goal changing" and "deliverable changing" sort of changes. I do not mean discovery of some more details.

Mike Caddell • @Julie - a great clarification!

I meant as Rahul indicates, a change in the objective or the actual content.

As this discussion clearly illustrates conversation almost always illuminates more detail - which is why we value Individuals and Interactions more than Process and Tools!

Derek Neighbors • Is the reason why they do? or the reason why they shouldn't be allowed to?

The reason they do... the team allows them. The don't enforce some penalty in breaking the contract.

The reason they shouldn't be allowed to. A key premise of agile resolves around trust. Changing course mid sprint breaks trust and deteriorates the relationship.

Prasanna Raghavendra • I am seeing this discussion going similar to building a stringent chinese wall between the product owners and the team and closing doors on genuine yet possible changes within iterations. Like I mentioned earlier (brewity killed clarity in my earlier note, I guess!), the focus should be on small but quick win at the end every iteration for the entire team (including product owners). That would mean there should be constant communication and acceptability of what can be done for the changes coming-in while appreciating concerns from both end. A "genuine" change coming in within an iteration should be discussed and accepted when possible while showcasing what it means for the dev teams to pick it up. This is when teaming and binding becomes stronger. Product owners should also have strong reasons why the change envisaged cannot wait until the next iteration.

I would discourage a generic and rigid process coming in the way of teaming. Agile is not a process but it is a set of natural tendancies teams follow to bond, and that should take precendence. it is interesting to note that we are losing our this natural behaviour and find it hard to let those take precendence.

Rahul Sawhney • @Prassana - I agree with you completely.

Just to bring the discussion back towards my question, refining it a bit....
What are the after-effects (short term and long term) of having the "sprint-goal changing" scope changes, which would take the focus away from the team to deliver what they committed?

So far, we have seen some points indicated above, would like to learn more perspectives, experiences when this happened etc..

Jeff Smathers, CSM • Rahul, If I understand your question, I think that Derek and Mike have great answers. I will try to summarize for my own benefit. If the scope change is so large it changes the sprint goal then the team cannot meet its commitments and the sprint is no longer valid and should be ended. A new sprint needs to be planned and started to address the changes. Depending on the maturity of the team, the trust between members and the quality of their relationships could suffer. Keeping to the commitments defined by the sprint goal is very important.

Jason Little • I wouldn't worry so much about the after-effects as I would in trying to figure out why the scope keeps changing every sprint.

Some context would be helpful. Is this team supporting an existing product? Are the interruptions due to customer complaints or support issues? If so, Scrum doesn't work well in that situation.

Is the PO having problems grooming the backlog to get stuff ready for the sprint? Is there a lack of overall product direction? Are different stakeholders pushing conflicting priorities?

A sprint being constantly interrupted is often the symptom of a deeper problem. Focusing on Scrum as dogma isn't going to solve the problem and you'll end up creating more dysfunction and trust issues between the team and the PO.

John Clifford • In Scrum, the team's commitment to accomplish the items on the sprint backlog that starts the sprint is matched by the Product Owner's commitment to observe and respect that commitment by not trying to change the agreed-upon scope for the duration of the sprint. One can't work without the other. I would argue that a Product Owner who continually wants to change scope during the sprint isn't following the Scrum process and doesn't respect the team or their commitment. In my experience, this happens because the Product Owner fails to take ownership of the product backlog; either he procrastinates on prioritization until the last moment and then overlooks stakeholder commitments that drive prioritization needs, and/or fails to take responsibility for ensuring backlog items are groomed and prepared prior to sprint planning.

Not having objective, quantitative, and binary acceptance criteria for sprint backlog items is one of the problems leading to scope change; if the team has no defined criteria for the complete story then what is to stop the Product Owner from whipsawing them around? Therefore, the Product Owner should ensure that sufficiently-defined acceptance criteria exists for all stories that she will bring to the sprint planning meeting... and the team should refuse to consider any item lacking this. This isn't to say that the team and the Product Owner should be at each others' throats, but instead to say the team may need to spend some time during the sprint planning meeting working with the Product Owner to create sufficiently-defined acceptance criteria.

(Product backlog items with valid acceptance criteria and that have been estimated are often referred to as 'Ready-Ready', in the way that sprint backlog items that are completed according to the Definition of Done and all acceptance criteria are referred to as 'Done-Done-Done-Done.' Effective Product Owners always have at least one sprint's worth of backlog items in a 'Ready-Ready' state before the start of a sprint planning meeting.)

I'm a huge believer in not hiding dysfunction, because you can't fix it if you refuse to see it. In the above situation, the sprint planning meeting timebox will most likely end with only one or two items that have valid acceptance criteria; so be it. The Product Owner will need to accept that bandwidth may need to be reserved during the sprint to work on additional items' acceptance criteria in order to be ready for the next sprint; if the team finishes with the committed items early, they can either drag additional items into the sprint or end the sprint early and re-plan/re-launch. At any rate, this should be discussed at the sprint retrospective and a solution devised that will prevent this from happening again should be implemented.

As others have mentioned, if the team believes that an item's scope has changed to the extent that the original commitment is invalidated, then they have the authority to reject the changes and not complete the item... and this should be discussed at the retrospective. Or, if the Product Owner really wants to change scope, e.g., substitute a new sprint backlog item for an existing one, even if the item estimates are identical, then the team has the authority to accept or reject the change, to the extent of cancelling the sprint and re-planning. Again, to expose dysfunction, I counsel against accepting ANY sprint backlog changes, not to be a jerk or uncooperative, but in order to force the issue to the surface... Product Owners who continually fail to prioritize and want another bite at the apple, for whatever reason, are a common issue.

Andy Dent • A few thoughts on this, against a background of multiple scrum teams collaborating internationally, spanning 24 hour time differences. We have architectural separation of much of the work but that translates into one team having the other two as customers.

We could take the bloody-minded approach of just saying "no" but that risks some bugs being blockers to another team for an entire sprint.

An alternative is for the team to identify one or two people as responders to handle urgent cross-team requests. They can have a task allocated in the sprint which is basically a budget of their time, to be whittled down over the course of the sprint and leaving them free to do other tasks of moderate size.

When it comes to tasks being inserted into the sprint, another pet idea of mine is to mandate that tasks with twice the number of story points have to be removed.

This reflects the loss of velocity from something unplanned being included and emphasises the seriousness of the interruption to the product owner. I'd love to know if anyone applies this, how they get on!

Raul Xavier Neto • I´ve got a little intrigued with that many arguments being so dogmatic about scrum. I think that one of the best points of agile (in this case, scrum) is to help teams cope with change. Change that is a big reality on every software project.

I´ll go with Jason and Prasanna telling you that the best thing for your team is to find out why the owner is changing that much and try to bring him to the team, where those changes should be agreed by the team with good discussion.

Speaking of dogmas, maybe the initial phase is too dark in the owner´s head, maybe the team is not sure about the concept or something else. To ease that kind of thing, that usually comes in the beginning of the project, you can try to reduce the sprint duration, bring the owner closer to the team, try different approaches to put the team as one peace. Scrum is not a Religion, it only guides teams to achieve good results, but the principles are the important thing, not the "rules". If you have to, adjust the "rules" to your needs.

Prasanna Raghavendra • @ Raul, @Jason: Bingo!

@Rahul: It is less about worrying about after effects than accepting it as another pragmatic anamoly and see why it occurs and how it can be fixed.

Rahul Sawhney • Thanks John - I enjoyed reading what you have written here.
Thanks to everyone else too - great insight!

Cuan Mulligan • @Rahul, the impact for me is one of cost.

for example, lets say the PO has aprpoval to spend $x on the delivery of a project. It is the role of the PO to ensure the best spend of the companies money.

If the PO keeps changing their mind, this will consume time (cost) and reduce the teams ability to deliver the project benifit for the agreed amount of money.

If the changes are small , ie refeinments, then this should not be an issue. However I have worked with PO, who make quite dramatic changes during a sprint, and then wonder why the project did not deliver. The upside was that they learnt a valuable lesson, and stopped this behaviour.

Gail E. Harris • The fundamental question in this discussion thread is about product-owner driven scope changes during a sprint breaking Scrum. Well, as someone else wrote, Agile approaches like Scrum are all about being agile, and, as it turns out, changing the scope during the sprint doesn't break Scrum at all.

In Ken Schwaber's book "Agile Project Management with Scrum" he describes exactly how to handle this. He says that "management could abnormally terminate the Sprint" at which point there would be a new Sprint planning meeting. Ken further notes that this new planning meeting would make the action highly visible and thus hopefully product owners would not make a habit of it.

It's also worthwhile to note that a new opportunity to change the scope is never more than four weeks away. Once they realize this many product owner's find that four weeks from now is more than soon enough.

Griffin Jones • We have a very small team, working in a start-up.
Priorities change.

When targets-of-opportunity appear, ownership will pause the sprint as we deal with the new higher priority. The owner makes the informed choice.

Long pauses force a clean re-plan of the sprint. Too much switching reduces velocity. But the owner values responsiveness from development, and is willing to accept reduced velocity in exchange.

Rahul Sawhney • @Cuan,Gail and Griffin, Thanks I was looking for exactly these inputs!

I do believe that this does not break Scrum as a framework. When Scrum is done incorrectly, (i.e. when PO makes significant changes without agreeing with the team and does not allow terminating or pausing the sprint, and does so regularly), the team gets demotivated and starts falling apart. And as Cuan mentioned, not learning from experience escalates costs and reduces team's ability to deliver and impacts collaboration.

Tuesday, June 29, 2010

Mixing Product Owner and Scrum Master roles

The Scrum Guide says that the Product Owner and Scrum Master roles should not be played by the same person. Given below are some reasons why this is not recommended in Scrum and the possible consequences of not following this recommendation.

- Conflict of interest - The two roles may have conflict of interest in certain situations. Product Owner is concerned about maximizing the RoI and Scrum Master protects the team from external distractions and helps remove impediments. Scrum Master works closely with the team in doing this, and the product owner provides the customer perspective to the team.

- Bad mix - If the same person plays both the roles, the scrum master role can take a back seat. The person playing both the roles may find it very difficult to balance the needs of the customer and the commitment that the team can make. It is highly probable that s/he may burden the team with ever-so-frequent over-commitment of results and intra-sprint scope changes. This in turn can impact the team results and morale.

- Bandwidth constraints - It may not be possible for one person to play both the roles due to lack of time. Product Owner role requires understanding the needs of the business. Depending on the project landscape this can become a very time consuming activity leaving little or now time with the person to help resolve team impediments.


Issues:
- What if team size is small: For Scrum the ideal team size in 5 to 9. But for any reason, even if the team is smaller than 5, it would still be better to have different people playing the two roles than letting one person play both the roles. In this situation, the role conflict becomes even more apparent.

- What if organizational structure does not provision for a Product Owner role: Different situations warrant different solutions. For example, the Product owner could come from IT or Business. There could be a proxy Product Owner within the team who interacts closely with the Business or Customer. Since the Product owner takes the ownershiop of the priorities (and thereby the project direction), it is important that s/he has the ability and the authority to say "No" when required.

Saturday, February 20, 2010

How to sustain Adaptive planning

This article was published on Scrum Alliance in Feb 2010.

How to Sustain Adaptive Planning

Scrum and other agile methods recognize that responsiveness to change is an important aspect of delivering projects. They also recognize that software development is evolutionary and creative. By managing changes through Adaptive planning, Scrum provides a simple yet effective method of planning and tracking project progress. In this article, we will examine what is needed to sustain Adaptive planning and improve Team's responsiveness towards customer needs. We will examine the following factors:
  • Just-enough planning
  • Evolving plan, scope driven by budget and/or time
  • Grooming the scope
  • Trust, involvement and collaboration
  • Management support
Consider a scenario where the project is progressing as per plan, and in the middle of the project the customer approaches project manager with a request:

Customer: "I really need this functionality delivered in the project. But it is not part of the current scope. Can we make it happen as part of this project?"
Possible response #1: Project Manager: "Unless you are okay with budget overflow and/or schedule delay. Alternatively, we can revisit the project scope but it will require us to drop certain other functionality from the scope of this project. As the effort already spent on estimation and analysis of that functionality will be wasted, please be aware that it will impact productivity."
Possible response #2: Project Manager: "Well, I am afraid the change control board (CCB) needs to decide this. The CCB meets in two weeks and once they approve that an investigation is needed, we can investigate and inform them about the impact on our plan. The CCB can then decide whether or not this functionality can be implemented."
Possible response #3: Project Manager/Product Owner: "I do not see a problem as long as you are okay with dropping certain low priority items from current scope of the project and getting this functionality at the end of next Sprint, assuming it fits. Let's get together and discuss."

Although many responses are possible depending on the context, if the project is using Adaptive planning then a response similar to response #3 is more likely. Such a response demonstrates that the Team is well prepared to respond to change.

Making Adaptive planning work

- Just-enough planning

To begin with, requirements are understood at a very high level and thereafter, the rest of the planning is driven by priority. As a rule, lesser time is spent on figuring out the details of those requirements that do not have a very high priority. High priority bigger requirements are split into smaller ones so that details can be explored. Only relative size estimates (at a high level) are done at this point to get an idea of how "big" the work is. Once the work is quantified, tasks and effort are estimated for the highest priority requirements. That gives an idea of how much the Team can deliver in a Sprint. This idea is tested in the first Sprint and gives the Team a better understanding of its Velocity (or the size it can deliver in one Sprint). Using the Velocity, the Team is now in a better position to give commitments for later sprints.

- Evolving plan, scope driven by budget and/or time

As the project gets underway and the Team executes multiple sprints, the Team has better visibility on the customer needs. Likewise, the customer also understands the requirements better. This understanding results in evolution of the Product Backlog (e.g. changes in functionality and scope, priority). As the Product Backlog evolves, the size estimates are done for newly added requirements. The Product burndown chart shows how much work is remaining based on the revised scope in the Product Backlog. The work remaining is controlled usually by removing some low priority requirements (of size equal to the added requirements) from the scope. This ensures that scope is managed continuously based on highest priority requirements. Adapting the plan in this manner helps in providing better visibility to all stakeholders by tackling many important issues, such as:
  • How do we deliver what is most important for the customers?
  • How do we address customer feedback on what has been already delivered?
  • What are the key changes that we need to make?
  • Have we addressed all the key risks for the project?
  • How much work is remaining for the project? Do we need to adjust the project scope?

- Grooming the scope

At the beginning of each Sprint, the Team makes a commitment on the functionality it can deliver. In order to make a commitment, the Team may need some time to investigate certain aspects and risks in the preceding Sprint itself. In other words, sometimes it makes sense to look-ahead and reserve some time for investigation on risky items in the backlog that may be part of the next Sprint. Better insight into risky items in the Product Backlog helps the Product Owner make conscious decision on the item's priority, makes the Sprint planning exercise easier and the Team more confident. Additionally, new functionality requests by Customers can be expected at any point during the project. Sometimes, especially when the functionality is complex or due to other reasons, identifying enough details for quickly giving commitments on these new items at the beginning of the Sprint can be difficult. Grooming the scope during a previous Sprint makes sense.

- Trust, involvement and collaboration

Working with an adaptive plan requires a lot of trust, involvement and collaboration between the Team, the Product Owner and other key stakeholders of the project. Unfortunately this is much easier said than done. Individual stakeholders have different motivating factors and it requires time to build the trust. Things may become extremely difficult and unsustainable if the trust is lost. The effect of losing trust could result in failures such as poor quality, dramatically reduced velocity, inability to meet commitments for multiple Sprints, arguments over small stuff, high team attrition and loss of face in front of the customers. Building trust requires a lot of commitment and collaboration. The Product Owner and management should give the Team freedom to decide how much it can deliver in a Sprint. The Product Owner needs to set the right expectations between the customers and the Team. Setting unreasonable expectations can misfire in the long term. The Team may succumb to pressure of delivering more functionality and may succeed in doing so by cutting quality, or by introducing too much technical debt that becomes difficult to handle later. The ScrumMaster needs to support the Team by guarding the scope and the practices of Scrum. The Team needs to understand the needsof the Product Owner and help in achieving that goal. The Team can help in several ways, such as improving its engineering practices, making the most out of feedback, ensuring that it acts on its retrospective actions and highlights issues that are beyond control. The mechanism of "inspect and adapt" should not be interpreted as a "self-repairing system." The system will not fix the problems unless everyone involved in the process devotes the time needed and is committed to the process. The Team members (ScrumMaster, developers, testers etc.) need to work with each other to achieve the Team's sprint goal and continuously improve their ways of working. They need to work with the Product Owner to groom the scope and understand what is needed. Likewise, the Product Owner needs to collaborate with the Team throughout. If the Product Owner becomes complacent in engaging with the Team after a few Sprints then the visibility of the Team can reduce drastically, benefits achieved can be quickly erased and situation can deteriorate. The Product Owner needs to ensure that the business users and customers are appropriately engaged in the process. Without an appropriate level of engagement, there is a risk of misunderstanding the business and customer needs.

- Management support

In order to sustain Adaptive planning with Scrum, it becomes important that the culture of the organization understands and respects change. Organizations, where teams go agile but the management thinking does not, run a risk of quickly losing all the benefits from Agile and becoming worse than they were before. Some of the things that managements need to do include
  • Provide long term vision, direction and priorities
  • Trust and motivate their Teams
  • Focus on addition of business value
  • Encourage Teams to deliver quality, act on technical debt, enhance engineering practices
  • Ensure continuous flow of work
  • Minimize non-work related disruptions
  • Facilitate removal of impediments outside the control of Teams
  • Support the process of learning, inspecting and adapting
  • Communicate

Conclusion

Adaptive planning helps Teams handle changes to scope in a continuous manner but may become unsustainable when practiced in isolation. Other practices of Scrum, along with critical management support and understanding are critical for sustain Scrum in an organization.