Showing posts with label scrum. Show all posts
Showing posts with label scrum. Show all posts

3 Dec 2014

“Protect the team” is a double-edged sword


The biggest flaw in how teams adopt Scrum might be the “protect the team” mentality. It can prevent teams and organizations from reaching their true high performing potential. 

At the same time, there are very valid reasons why the “protect the team”-mentality happens in the first place, and these issues need to be addressed.

This combination makes “protect the team” a very interesting topic!

The different aspects of protecting the team are:

  • protect the team from others
  • to protect the team from itself
  • and finally the need to stop protecting the team!


Let us explore in more details each of these different situations:

1) Protect the team from others

This is the obvious one. Many teams struggle to be able to get the peace and time to actually do their work. I have seen months and years of waste due to constant reprioritization, stakeholders directly poking team members, too many stakeholders, silo oriented organization, big up front design, big up front detailed specification (that turn out to be all wrong), constant changes in team composition to name some.
The answer is to find the right balance: a development process based on few and simple principles, which create a heartbeat and fits the organisation’s needs. The most common improvements in order to help to protect the team from “outsiders” have I found to be:
  •  Train organisation to commit to sprint goals
    • How? By repeatedly ask the question: can this wait two weeks?
    • What: Prevents random disturbances and constant reprioritizing
    • Reduces work in progress
To see issues that can not wait until next sprint is rare. I have yet to see it,  even in teams that are responsible for systems in production for millions of users. If this is an issue, the first remedy to try is start having shorter sprint. The point of keeping focus within the sprint is essential.
  • Use the backlog: 
    • If it is not in the backlog it will not be done
    • How? By having a simple process that works on grooming the backlog (get the right items in, prioritize it right, and reduce the number of items, not include too much details in the stories except the ones for the current and next sprint)

  • Help on basic meeting hygiene
    • How? Start with being explicit about the purpose of every meeting and stick to it. Keep a parking lot for everything else. (rather than having a shared parking lot, it is often better that meeting participants write down follow up items for themselves in order not to bring everyone’s attention to side track items)
  • Reduce the need for handover
    • Typical symptom: people from other departments bugging the team with requirements and needs. Why does the team feel this as “bugging”? Because it is “out of scope”. Should it be out of scope? Probably not. The solution then is to get the right skillset into the team. The people with their hands dirty are the ones that needs to have the skills and knowledge to solve what they need in order to deliver something potentially shippable


2) Protect the team from itself
 This might be less obvious, but still common and important:
  •  Starting on important but “random” work that is not part of the sprint goal
    • What: the team starts to pick random items of the backlog to start working on, or start working on technical items of their mind
    • This can be a symptom that technical items are not prioritized. The solution is to train the team and product owner to add technical items as part of the regular system development process. Then the team has their say in an amount of time that makes sense to them and the rest of the organization. I have often seen approximately 20% of the total time, but this varies a lot based on the situation.
    • This can also be a symptom that the team does not know the business goals, the customer or domain very well. The solution can be to use lean startup techniques and get the customers closer into the development process.

  • Need training to take unconditional responsibility
    • This is a chicken-and-egg issue: teams that take responsibility get trust from the rest of the organization, organizations that lack trust are preventing teams from taking responsibility
    • Culture changes are more in depth reaching than anything else. This is about a culture of taking responsibility to make the best out of any situation –difficult or not
    • Team members need to have the confidence that they know the best how to do their work
    • The best way for a team to gain trust from the organization is by transparency and continuous delivery of stories that are ready for production. 
  • Many teams need training on taking responsibility for the whole team and sprint goal delivery, and not optimizing for individual team members and hand over within the team.
  • Gold plating: being afraid of early releasing
    • Over and over I have seen how difficult it is to let go of our baby. Even when it comes to internal releases. This might be a matter of habit and mindset. As an agile coach, I spend much of my time in helping teams to get to the point where they want to deliver on a frequent regular basis.
    • Start getting used to the feeling of being “not ready”. Software is never going to be completed anyway


3) Stop protecting the team
When you are mastering the workflow so that you do not have any big issues related to 1 and 2, then it is time to grow further:
  •  Optimize the whole
    • Shielding the team from the rest of the organization is optimizing for a too low level. It is time to facilitate for optimizing for the whole looking at the bigger picture
    • Keep shortening the feedback loop and keep involving more of the customer journey into the software development process 
  • Be aware of complacency
    • A high performing team that has worked hard and now sees the results from their agile approach might fall into the trap of thinking they know it all
    • The solution is to focus on continuous improvement and learning, also from the rest of the organization and from the customers
  • Address the root cause of organizational issues
    • Protecting the team from outsiders is a short-term solution to organizational flaws. In order to get a high performing organization, we need to find and solve the true cause of these pain points 



 This is my take on "protect the team". What is your experience?

23 Oct 2014

From semi-finished to finished user stories



One of the cornerstones of being agile is to deliver done features by the end of short sprints. Done as in potentially shippable. Done as in implemented, tested, documented and possible to deploy into production.

 

This is a typical semi-finished user story

Common arguments why user stories are left semi-finished:

 

 

 
  • we are not used to copmleting them (...yet)
  • we think it is unfair not to take credit for partly done work (it looks worse than it is, and we are afraid that management does not see this bigger picture)
  • we do not see the point in delivering smaller parts that is truly done
  • I think I am more effective if I can focus (all my time) on the one type of task that I am best at (rather than optimizing for the team and product delivery)
  • we are different than other product development teams –this might be a good idea in other teams or organizations, but not here
  • we are not prepared for the visibility this will provide (goes for both management and team members)




Ripple effects of done

Why is it so important to deliver finished user stories?

Focus on delivering something that is finished each sprints will provide you great benefits:



1: Deliver real value -early. Get the great features out to the customer, not storing them on the shelf.
2: True visibility of progress, and make any unresolved issues visible. Handling unresolved issues before moving on to new stories will reduce risk for the company/product delivery, and create visibility of the reality. This is important for any team :)
3: Ability to deliver the true minimal viable product. Help each individual on the team to participate in dividing the user stories into small enough pieces. This in turn will help the company to deliver the true minimal viable product, making the product development more flexible: you will be able to deliver a first release, then learn, then add more features, learn more and so on. –A great place to be!
4: Pull together as a team. The team will become great at collaborating to finish a user story and helping each other out on that rather than only optimize for the individual preferences of tasks to solve. This can seam harsh in theory, but in reality, the reward is intrinsic motivation triggered by being a part of something greater than the, it gives a sense of purpose. (of course the teams needs to be put together with interesting tasks for everyone most of the time, and by people that are motivated by and skilled at similar and different tasks) 

5: Trust. When you deliver finished stuff, the rest of the organisation trusts you. Then you get the freedom to make smart choices work a way that make sense. 
 

How to get there?

In Scrum you do get some help on visibility of how good you are on finish user stories:
  • You do not review any partly done user stories (show only finished stuff)
  • You do not take credit in any sense of user stories that are partly done (it can be visualized on a burn down chart)
Does it seem harsh? Maybe. Still I think the reasoning behind focus on completing user stories makes it worth while, I can not see how anyone can be agile and still leave unfinished work. 
  • Understand the reasoning behind by reading up on the topic, talk to others and join the agile community. Then you need to work the knowledge into your culture. Inspire, educate and engage. 
  • I reccomend any team to give it a whole harted try for 6 months
  •  I would also allow time to make the necessary adjustments:  
 Most certainly, there are many reasons both technically and human that needs to be addressed in order to get to a place of making user stories that is done and truly done.

You can do it!


Further reading: