Archive

Posts Tagged ‘IterationMgmt’

Follow Up on Retrospective Actions

February 22nd, 2013

One of the biggest complaints I see on retrospective is that action items are not followed up.

I’m quite happy to see that on my current project people take it very seriously. There’s actually a wall with the retro items to be followed up (To Be Done TBD) and when they’re done we move them to the \o/ happy/done column. During the following retro we go through them. Another important thing is to assign owners to these items! yay for the team!!!

Retrospective follow up action items

Foto: Henrique Rezende

Uncategorized ,

Future Retro Box

November 15th, 2009

We have noticed on our current project that during retrospectives people usually raise good and bad things from the last days only. At the moment we have a 3 weeks iteration and it’s hard to remember what happened on the first days. I have already used from 1 to 4 weeks iteration and each project has its own reasons for choosing this length. To help the team improve around things that happened during the whole iteration, we have a box called the Future Retro Box, where people can all keep adding notes throughout the iteration.

DSC07729

The reason why the box is called Future is because it will be opened during the next retrospective. The items inside the box will bootstrap the retro wall when people can add other ones.

Make sure the box is in a visible point of the work environment.

DSC07731

Another option would be to have an on going retrospective wall, as suggested by my friend Lachlan. However, this might work better for a co-located team, we are distributed. We tried using a wiki for that… It didn’t work… No one adds comments to the wiki… Why? Perhaps the wiki is a Refrigerator as opposed to a Radiator. The box has been working fine so far. The notes are not visible, but the box itself is.

Technical , , ,

Principle of Relative Priority

June 29th, 2009

Prioritization is crucial for a project to succeed. We need to make sure that we deliver what’s most important, what adds more value. The interesting and most challenging part of this is when we have to ask the business (client, product owner) to prioritize items. By calling them items I mean they are not necessarily stories, features or a product backlog. Sometimes we want to prioritize needs, purpose, goals and outcomes as well. The way we ask them is the trick…

I’ve seen many different ways of defining the priorities and usually there are ranges involved, sometimes with labels or numbers, like:

  • Very High / High / Medium / Low
  • Must Have / Should Have / Could Have
  • Essential / Important / Not very important
  • 1 - 5

There is nothing wrong with creating the labels, but when we ask the priority of one item only, that’s what happens sometimes:

IsImportant.png

How do we understand business priorities

The most effective prioritization exercise I’ve seen was to give the business a randomized list of items we want to be prioritized, then we ask them to give us the X most important items. And these will be the ones considered during the next timeframe. We should always let the list visible to the stakeholder who is prioritizing… It has to be clear for him that he is giving up on items in favor or others… at least for the next timeframe, which could be the next iteration of release.

It’s like a son’s birthday gift…

Good parents apply this rule with their children. Let’s say it’s close to my son’s birthday, I don’t have a son, this is totally hypothetical :), but my mother used this rule with me… So, I want to buy him a gift, ONLY ONE, of course, because I’m not the kind of dad that gives everything that my son wants. So I have a list of gifts that I know my son wants. Bike and video game are top of the list, but I can give him only one now, because it’s his birthday. We all know It’s close to Christmas (next iteration/release) and I will give him the other one on Christmas, but now it’s his birthday time, only one gift… I, then, make sure that my son understands the one gift per event rule and ask him which one does he want as his birthday gift… As a clever boy, he will think carefully which one really matters more to him because it’s clear that he has to give up on one in favor of the other. He will not give up on it forever though, it’s just until Christmas (next iteration/release), however, he knows that one of them will be bought and received first, and the other will come later…

WhichOneStoriesBikeAtari.png

As I said, there is no problem in defining labels and priority buckets, the only thing we have to bear in mind is that whenever we ask the business to prioritize items, we do not ask them in which bucket he wants to put one single item. And that’s when the principle comes.

Principle of Relative Priority:

All the decisions about item priority have to involve other items which are being traded in favor or the most important one(s). There is no absolute priority, only relative to other items.

One item by itself is usually important, otherwise it would not even be in the wish list… If I ask my son:

  • Dad: “Do you want a bike?”
  • Son: YES!
  • Dad: “Do you want a video game?”
  • Son: YES!

But when they have to CHOOSE… That’s when the most important items are picked… And during times of crisis, like now, with budgets constraints, we don’t even know if we will be able to afford a Christmas gift, so let’s make our kids happy during their birthday…

Technical , , , , ,

How far should we go with estimates

May 4th, 2009

My colleague Dan North facilitated a session today at ThoughtWorks office in Sydney about estimation, creating an MSL (Master Story List), what Scrum calls Product Backlog and which level of granularity should it be.

Dan started the session with a very interesting metaphor: If we want to calculate the area of a country we can always approximate it by comparing it with something that we know how to calculate… A triangle, for example. Dan used the map of the UK, I’m sorry Dan, I couldn’t help myself… I changed it to Brazil… :)

AproxBrazilArea.png

Basically, the area is something in between the areas of MIN and MAX triangles. And it’s very easy to calculate the areas of the triangles, right? How accurate is that? Of course it’s not 100% accurate, but most of the time we don’t need 100% accuracy. We just need to understand the boundaries in order for us to mitigate risks, which have been described as our “fears”.

The estimated range also helps us to make decisions. If a client wants to build an application, for example, and after calculating his current operational manual costs and what the application would make him save, he is willing to pay 1 million. But the estimated range is between 4 and 6 millions, this already helps the client to make the decision of not to proceed with the project.
Always bear in mind what estimates are:

“Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain.” (wikipedia)

Another pertinent topic during the session was that the Iteration Manager (Scrum Master or XP Coach) should not only be focused on the lower level stories (Product Backlog), but also on the high level project goals and outcomes as well as relating them to the client’s and organization’s needs and purposes.
Stories can be grouped at a A higher level, which we call a theme. Prioritisation and estimation could also be done at these levels.

IMFocus.png

Some other things that I learned:

Technical , , , ,

Plan with ballpark numbers

December 18th, 2008

During the Release Planning phase of a project we usually estimate and prioritize the MSL (Master Story List), also called Product Backlog in Scrum. The output of these exercises is a Release Plan which contains a vision of Time, Cost and Scope of the project. This phase usually happens for the first time during the inception, before the project starts. It needs, of course, to be constantly reviewed and recalibrated in a more fine grained level of details once the project is underway.

Image

One of the main things we need to keep in mind at this time is that these are ballpark numbers.

Definition of Ballpark: A good numerical guess; an estimate.

Image

 

In order for the decision makers to have an idea of these three variables (Time, Cost and Scope) and then make a decision whether to start the project or not, taking into account mainly ROI (Return on Investment). Most of the time they need these numbers for budget approval so that the project can start. The numbers are not precise at all and they will change for sure when the project starts. But as I mentioned before, they are an estimate, something close enough to the real numbers.
We should only spend enough time to get to a comfortable stage where a decision can be made to take the next step.

One of the clients I’ve been to had a very good way of deciding about funding approval according to the output of the release planning. They knew the numbers were not precise so they had a form with:

How long is the project going to take?

  • 1 to 3 months
  • 3 to 6 months
  • More than 6 months

How much is the project going to cost?

  • 10K to 100K dollars
  • 100K to 500K dollars
  • 1M to 5MK dollars
  • More than 5M

The main point is that it’s useless to try and figure out whether the project will take 30 or 35 days at this time, of course we need funding and budget allocation, but nothing stops us from allocating X amount of money, try it and then continue if it works.

“Don’t aim too much before shooting, shoot and then adjust and then shoot again and adjust…”

Technical , ,

9 Pregnant Women

December 16th, 2008

Sometimes it is good to remind ourselves about the obvious…
“9 pregnant women CAN NOT ‘deliver’ one baby in 1 month.”

To understand the metaphor imagine:

  • Pregnant Woman = Developer = Cost
  • Months = Iterations = Time
  • Baby = Scope
  • Image

    Technical , ,

    Goal Driven Retrospective

    November 23rd, 2008

    Retrospectives are usually conducted in order to keep the continuous improvement engine wheels working properly on a project. It is present on most of the agile processes I have worked with, such as Extreme Programming (XP) and Scrum.

    The image below describes retrospective that most of us are used to:

    DC93A7F3-2D9D-4525-8301-D40AD993E66F.jpg

    On my last project at ThoughtWorks I had the opportunity to introduce to our client, together with Jason, a new type of retrospective, the Goal Driven Retrospective.

    Goals and Actions

    The Goal Driven Retrospective brings the idea that we should be much more focused on creating actions to achieve common goals shared and agreed within the team and also that will definitely add business value to the client.

    7D1B763B-BDAB-40DD-B4C1-5DAE8E3D55EA.jpg

    Examples of goals:

    • Zero bugs in UAT
    • Productivity x 2: If a similar feature is required, the team should be able to implement it in at least half the time that they took at the first time
    • Improve work environment

    Examples of actions:

    • Showcase and run selenium tests on IE to decrease number of browser dependency bugs in UAT
    • Refactor JSP’s and create a DSL to specify exactly what varies from one story to the other
    • Team lunch to improve work environment

    It is essential that the person who is facilitating the retrospective, usually the Scrum Master, XP Coach, or Iteration Manager is aligned with the goals of the organization.

    Values

    In order to prevent conflict of interest, all the goals are defined based on values:

    • Productivity
    • Cost
    • Quality
    • Morale

    By following these values the actions will make the team:

    • Faster
    • Cheaper
    • Better
    • Happier

    All the actions must be aligned with all the values.

    Some examples of actions that would not be acceptable because they go against values:

    Where is morale?
    What if someone suggests that in order for the team to be twice as productive they need to work 16 hours a day? If you just had that face and thought: “Come on, we know that this doesn’t work…” you are smart aligned with the values, but remember: this is not common sense.

    Slow slow slow… what about productivity?
    Or what if to achieve zero bugs in UAT we try to test and automate every single possible scenario in the whole application?

    The picture below shows the output from the retrospective we had on the client:

    01FAA51A-D2CA-40CC-8F29-8606B3666D5C.jpg

    I strongly encourage everyone to give it a go and try this new way of improving.

    Technical , , , , , , ,

    Buying features - prioritizing with poker chips

    November 18th, 2008

    If you won the lottery and you saw 10 million dollars in your bank account tomorrow, what would you do? You would probably buy a lot of things… right? But actually you do not need everything you would buy, do you? Ok, you would have a lot of spare money, so there’s no problem.

    But what if you had only a hundred dollars in your account? What would you buy? You would have to think about it more carefully and prioritize.

    The product owner needs to define what is really important for him.
    If you ask him what does he want for a 2 years project (10 million) he will say: “I want everything!”, but if you break down the project into small iterations (sprints) and ask him to prioritize what does he want for a small chunk of time, that’s when the important things come up.

    A good way to show the product owner that he does not have 10 million available is making him buy features with a limited amount of money.

    233D33F4-D4DA-412E-8753-89BD76F4EF59.jpg

    How does it work?

    Before starting the poker chips session, we need a list of estimated user stories. We call it Master Story List (MSL), or Product Backlog. There are many ways of facilitating an estimation session, I like planning poker. But always remember: The team gives the estimates.

    Basically you need to define how much a story point costs and give a certain amount of poker chips to the client according to the size of your iteration. And then ask him to buy what he wants for the next iteration.
    It is interesting because from my experience as long as he has money, he buys everything, but then when he starts running out of chips, that’s when the real process takes place.

    C0329750-F114-46D7-89A1-766400F03FAD.jpg

    The output will be a list containing the most important user stories at that time.

    Technical , , , , ,

    Quick Sorting User Stories

    November 17th, 2008

    We had 8 user stories and we came up with this quick way of sorting them in the office. It was pretty quick… and simple.

    49ED29B5-260B-47E6-84F4-32377BEF4860.jpg

    FBC87C13-F5B6-4A01-913C-89F55205A219.jpg

    Technical , , ,