1. 30 April 2013

    Comments

    “What else?” and “Anything else?”

    I love this conversational technique that works great in Daily Standups and Retrospectives. I picked it up from listening in on another teams standup in San Diego.

    As the facilitator of a conversation you often need to keep your participants thinking on a subject and elaborating more. For example in a standup you might have a team member describing issues that he is blocked on.

    Or in a retrospective you might be asking for more examples of practices that worked well in the previous sprint.

    By asking “What else?” and “Anything else?” you can guide the conversation really effectively.

    “What else?” subtlety implies that there are other items that the participant should mention. In a non-intrusive way it makes them think deeper into the problem and contribute more.

    “Anything else?” allows for the possibility that the participant has already enumerated all of the items that she needed to cover and that they could now finish.

    It’s a really understated difference between the two phrases but can be used to achieve different outcomes.

  2. 27 April 2013

    Comments

    But what does it REALLY mean to be Agile?

    Maybe I’m just in a negative mood today.

    We’ve been “Agile” for a while now and we take it very seriously. We have people performing the right roles of Product Owner, Scrum Master and Development team.

    We follow Scrum rituals and we’re happy with how that is done. No doubt that we are much more “Agile” in our requirements gathering and prioritisation.

    Our team makes continuous improvements through retrospectives and we’re always getting better at how we build solutions.

    But what does it really mean to be Agile?

    Recently we’ve been stuck on a project to change an existing system - let’s say we’re trying to make improvements to it. But we’re shit scared of touching the code because it isn’t really understood that well.

    Our few tentative attempts to implement the improvements (in sub-production) have resulted in breakages and confusion.

    So - are we really Agile? Can we really respond to fast moving business requirements by making changes to a system and still have the confidence that it will all work together?

    Nope - we’re great at standing up at 10.30 every morning and holding retrospectives every 2 weeks to find improvements.

    Being Agile means those things and more - but Agility is really in the technical implementation and the ability to quickly and safely meet business demands. 

    We’re not so hot there at the moment. Yet.

  3. 25 April 2013

    Comments

    Bootstrapping a new Scrum team

    I have an interesting opportunity to help introduce Scrum into another development team.

    This team is well established, getting new recruits and feel that Scrum principles and ceremonies would help with the growth of the team.

    They loosely follow Scrum today - in that they work with the tool, work against stories and “standup” (sitdown) every day. The challenge is how to introduce more principles and ceremonies without upsetting their current productivity.

    Another thing about the team is that they don’t do much visual control or the collaborative team building tricks that my team enjoys.

    Here is my approach. I sat down with a stack of paper cards and wrote down all of the ceremonies, artifacts, techniques and tricks that we use on a day-to-day basis.

    image

    I thought it would be great to have the new ScrumMaster meet with the team - introduce the concepts and have the team stack rank them in the order that they value them.

    It would be crazy to try and transform an established team overnight - Agile is adopted, not deployed - and I’m really weary of imposing process before the team knows they want or need it.

    On the backs of the cards I’ve written a brief description of each “feature” that I think they should adopt.

    Some of these features the team already does and so this is also a nice visualisation of how far the team has already come.

    Fixed length sprints

    • Adopt 2 week sprint cadence

    Sprint Planning

    • 4 to 5 hours per sprint
    • Plan for the next 9 days of coding
    • Discuss implementation before coding

    The WHY board

    • 30 minutes per sprint
    • Discuss business value of stories rather than implementation

    Daily standups

    • 15 minutes every day
    • Daily iteration planning

    Backlog grooming and planning poker

    • 3 x 1 hour meetings per sprint
    • Discuss and review backlog and size stories

    Sprint demo and demo dry run

    • 2 x 1 hour meetings per sprint
    • Demonstrate working software to the team and stakeholders

    Retrospectives

    • 1 x 1 hour meeting per sprint
    • Opportunity to review sprint, identify success patterns and anti-patterns
    • Chance for the team to have fun!

    User Personas

    • The team maintain user persona documents to describe/reflect our users

    Swarming

    • The team focus on one story and swarm towards its conclusion

    Physical Scrum board

    • Give the team a physical shared experience and focus point
    • There is an overhead associated

    Code Peer Reviews

    • Increase quality, shared code ownership and knowledge transfer

    Sprint objectives

    • A written statement that summarises the teams sprint objective
    • Reflects a landmark for the team and the product

    Sprint commitment

    • At the end of planning the team review the work and agree to a team commitment
    • Often using the Fist of five

    Scrum tasks to measure sprint progress

    • The team plan using actual hours and review progress daily using burndown chart against sprint goal

    Definition of done

    • The team is aware of meets the definition of done for stories

    Working agreements

    • The team agrees on Working Agreements and commit to them
    • Often the output of retrospectives

    Continuous Integration

    • A routine of continuous testing and nightly integration
    • Integration failures are chased down with higher priority than sprint work

    Limiting WIP

    • “The fox that chases 2 rabbits catches neither”
    • An agreement to limit WIP to 2 items each

    Test Driven Development

    • Adopt TDD to ensure code is written to be testable and tests are written

    Fist of five for decision making

    • A physical ceremony to ensure the whole team commit to decisions

    Visualise impediments

    • A visual control system to track, prioritise and assign ownership of issues that impact productivity, quality or morale

    Plan using velocity

    • Measure the teams velocity and use that for sprint planning and commitments

    Be Agile!

    • Learn the Agile Manifesto and Agile principles
    • Apply them to our thinking

    I.N.V.E.S.T in good story writing

    • Focus on good story writing
    • Linked to user personas
    • Testable Acceptance Criteria

    Potentially releasable increment

    • Focus on producing a valuable iteration each sprint that could be released

    Design sprints

    • Use story mapping to plan new features

    Andon cord

    • When a team member is blocked every stops to help unblock him

    So - in 30 minutes this morning I found 27 Agile practices that the team could adopt. Some they already do, some they probably want quite urgently and some they will turn their nose up at and try to avoid.

    By having the team take the paper cards and stack rank them I thought the new ScrumMaster could also start to introduce the concept of visual control.

    The team can easily visualise where they are today by marking cards that describe practices they are happy with. They can also identify the experiments they can run to introduce the highest value practices into the team.

    Lastly they can have their first “Fist of five” once they’ve decided on the next steps to take.

    Maybe that physical scrum board is closer than we think!!

  4. 24 April 2013

    Comments

    Measuring Scrum teams for quality

    Recently we’ve been discussing which measurements we can take from our Scrum teams with the aim of standardising output and increasing quality.

    Taking measurements from the team is an absolutely acceptable thing to do - it provides a form of governance to make sure the things we want to happen are getting done. But care must be taken to avoid undesired consequences.

    For example, the initial set of reports that managers wanted to take were - in my opinion - going to damage the culture of self-managing teams.

    Managers should be careful to put reporting in place to measure the outcome of the process rather than the implementation of the process.

    We were initially asked to provide reports on Scrum Tasks within a sprint. How the team arrange their task should be an internal conversation and they shouldn’t be accountable for them to anyone outside of the team.

    Whether the team writes detailed task, the bare minimum or sticks pieces of paper to a whiteboard - none of this should be visible in a management report.

    Instead managers should report on the outcome of the process. For example

    • Stories that do (or do not) meet the Definition of Done
    • Stories that aren’t in the correct state in the tool
    • Stories without change requests (if thats appropriate in your organisation)

    Managers should not try and measure anything that the team uses in its work to get to the end of the sprint. Including

    • The state of Scrum tasks
    • Story burndown charts
    • Task burndown charts
    • Team working agreements
    • Team velocity charts

    By only measuring the outcomes of the process you are encouraging the team to be creative in their implementation. The culture of continuous improvement and retrospection shouldn’t be hindered by management reporting.

    What if the team wants to experiment by creating scrum tasks in a different way. Should they be prohibited because the report that lands on the desk of “Pointy headed boss” will look wonky if they do?

  5. 24 April 2013

    Comments

    Not taking User Personas seriously enough

    Most of our users drown in Aquariums!

  6. 4 April 2013

    1 note

    Comments

    Introducing Jira Jr Project tracking for kids

    April Fools, but a cute one.

  7. 4 April 2013

    Comments

    Responding positively to scope change in a sprint

    Our Scrum team has had a bumpy few days, drawing close to the end of a story to find out we need to start over with our implementation.

    The details aren’t too important for this post. We accepted a story into the sprint that, even reading it through today, was well written. It has a good definition of the requirement and good acceptance criteria.

    It describes a user persona and business value.

    We decided on an implementation in sprint planning that the team agreed upon and we started to build it out over a couple of days.

    As soon as the Product Owner saw the feature in our development environment we had feedback that the approach was wrong and we needed to change direction.

    It is quite interesting to think about how we could have prevented the (wasted) effort that we put into the feature before starting over and how the team reacted to it.

    Our implementation would have been easy to describe to the PO before we built it out (actually we are reusing an existing UI convention elsewhere in the product) and we would have known immediately that we were off course. 

    Unfortunately we didn’t describe in enough detail what were planning to build… but should we have? If the story acceptance criteria was met isn’t it down to the team to decide on implementation?

    Ultimately that way of thinking isn’t productive. If we build the feature and the Product Owner isn’t happy with it - it will have to be reworked at some point in the future anyway. One positive point is that we sought feedback during the sprint and we didn’t surprise the PO in the demo at the end of the iteration.

    So - how can we prevent this happening next time?

    If we’d had graphically laid out our implementation to the Product Owner before the sprint we would have had instant feedback that the approach was wrong. A pencil and paper effort that took 5 minutes to sketch would have saved us a couple of days of wasted work.

    Now that we’ve discovered Balsamiq - a great wireframing tool - I think we’ll spend more time visualising our approach for the Product Owner in future. We’ll do this during Sprint Grooming when we prepare and size stories.

    And - how did the team react?

    Well, pretty much as expected with some level of frustration. One really negative aspect is that as well as the work we have to abandon we have to do more work to rollback to our previous state (Come back Git, all is forgiven)

    This was a good opportunity to emphasis some Agile principles though. It is frustrating to have to change course during a sprint. A natural reaction from the team might be to say “Next time we have to tie them down to more rigid acceptance criteria then!” or to para-phrase “Next time lets make the Product Owner work harder to avoid this issue occurring again”.

    That’s definitely not the answer. As we know BRUF (Big Requirements Up Front) DOES NOT WORK! If we react to this unfortunate situation by forcing the Product Owner into more descriptive acceptance criteria, or into a more “legally binding” contract our next story will take a lot longer to come to us for implementation.

    Not only that - it still won’t be descriptive enough to avoid a similar situation because BRUF are never comprehensive enough, they just take a long time to write. And the next time we have to change approach because of poorly defined requirements our only option is to force yet more process on the PO.

    Reacting by forcing more process onto the Product Owner is a certain way to make us less Agile. A certain way to slow down requirements coming to the team and a certain way to slow down the delivery of value to the end users of our system.

    The correct way to handle the issue is to ask “How can the team describe the implementation better to the PO before we start work?”. Not to say that we should allow the PO to completely guide the implementation but we should be able to articulate our approach before laying down code so that we can catch potential issues much earlier.

    Gotta go - we have a feature to rewrite!

  8. 22 March 2013

    Comments

    Looks like our team cohesion and spirit is ready to crumble under the slightest pressure.

    Looks like our team cohesion and spirit is ready to crumble under the slightest pressure.

  9. 26 February 2013

    Comments

    Some random retrospective photos

    Thanks to the San Diego team for letting me gatecrash their retrospective.

    Pictures taken by Joey

  10. 21 February 2013

    Comments

    Running a Design Sprint

    We are just about to start day 3 of our Design Sprint for a new project.

    I blogged earlier about the process we are using to discover all of the personas involved in the project and their needs.

    Getting started, objectives and working agreements

    On day 1 we kicked off with a warm-up exercise to get everyone awake and talking. We played the “in n words” exercise - I asked one of the team for a number between 1 and 5 (she chose 4) and I asked everyone to note down on a Post-it note how they would describe our current implementation (the project is to build a Change Management application) in 4 words.

    The process has more value than the outcome but it’s interesting to see the results. I wanted to avoid a situation where members of the team had the opportunity to sit silently for the first 45 minutes. This exercise had them up on their feet, walking to the wall to post their note and talking.

    We also wrote on Post-It notes what each team member wanted as an objective for the 3 day session - why were we here. It was interesting that some of the objectives related to the process whilst others related to the product we are about to build.

    • Strong definition of user requirements
    • Risks identified
    • A better definition of Standard Change
    • Better integration with the development process

    We covered our working agreements. Because running a design sprint is a new experience I was aware that we were likely to get into long conversations that dive deep into features. 

    The outcome of the design sprint should be a good understanding of the use cases - but we know we aren’t going to have a concrete plan.

    Actually - we don’t WANT a concrete plan. We want just enough to get started in the right direction.

    Our working agreements were:

    • Respect the timeboxes
    • Be happy with uncertainty
    • Focus on WHY and WHAT (Let the dev team worry about HOW)
    • Don’t be limited by the current solution
    • Process first and tooling second
    • Pen and Post-it notes trump Apple laptops

    Situational Awareness

    Because we are reworking an existing solution I wanted to be aware of current pain points. It would be useless to work in isolation on a product, even in an Agile incremental way, and then to produce a solution which doesn’t address the most painful points that customers feel today.

    We spent time talking about what was broken in the solution today that needed urgent attention. Although this might not guarantee a place at the top of the Product Backlog we wanted all the facts to make a balanced decision. We were trying to balance short-term tactical wins against a mid-term strategy for the product.

    Interviewing User Persona candidates

    We had arranged meetings in our team room with representatives from the parts of the organisation that use the product today. They had an idea of what we were doing but were interested to know how we planned to use their valuable time.

    Whilst talking to each representative we took time to take them through the room - our kanban board showing the days activities and our objectives.

    We took them through the situational awareness board and asked them for their pain points.

    We also asked them questions to try and add more detail to the user empathy map.

    I actually found it hard to ask questions targeted to filling out the empathy map. We were able to have great conversations about their needs and problems today but I found that large parts of the map were left blank.

    This wasn’t necessarily a problem - it would have felt forced to ask questions like “What do you hear about the product” just to fill in that quadrant of the page.

    Next steps

    That covers our activity on Day 1. We’re about to start Day 3 right now… time to get to it!