Archive for the ‘Agile’ category

Is that burning toast I can smell?

April 4th, 2009

Projects are strange animals.  They get a lot of attention at the start and typically not much once they’re underway unless things have gone wrong.  When they do go wrong, there is a lot of disappointment and the machinery is generally blamed.   A bit like making toast, actually a lot like making toast.

transparent_toaster

So imagine if you could actually see project progress constantly?

Not just every month or week or whenever status reports are produced, but truly constantly.  That way, if the toast was burning you would be able to do something about it then, not at the end of the week when you had no option but to throw it away and start again.  And if the toast wasn’t cooking, you could take action, then, and increase the heat (add more resource).

Imagine too if you are the toast (project team).  You wouldn’t have to keep stopping the project for inspections so people can gauge how things are going.  Anyone interested can just see the progress at any time.

Less Inspections = Less Interruptions = Smoother Delivery

And having transaprency of progress is healthy too, it means that progress is more visible to those who perhaps would not have ordinarily taken an interest.  The more people involved, the more likely that issues will be spotted and addressed before they become problems.  Of course this means that people will see all our flaws and all our dirty laundry but so what?  The first step towards improvement is recognition of the problem.

Stop imagining, think Agile, think Scrum, think Task Boards, Backlogs and Burndown Charts.  There should never be another piece of burnt software development toast.

Friends don’t let friends use MS Project

March 17th, 2009

Yesterday I had the misfortune to go back to an old habit, a bad, bad old habit. I made a big mistake and rather than sticking to my agile guns, I dusted out MS Project in order to try and give someone what they said they wanted - a Gantt Chart. I know, I know, how the hell could I have been so stupid?

smoking-nuns-1It is almost 5 months to the day since I thought I’d farewelled what was a cumbersome, high-maintenance way of tracking what someone thought someone else wanted a long time before they got something entirely different. I wrote about the moment I said Goodbye Mr Gantt on these very pages.

So how on earth did this happen? Well I’m actually not quite sure. I’ve been working a bit hard lately, need a holiday, kids have been sick, in fact any number of lame excuses.

What was interesting, in fact what has been a silver lining in an otherwise extremely stormy looking cloud, is that I have confirmed that MS Project, indeed any waterfall project scheduling tool, truly is a wholly inappropriate way of managing BI/DW development activities. I spent perhaps 3 hours yesterday afternoon creating something, another 3 hours today trying to explain it and then another 2 this afternoon wrestling with a bit of software to try and describe something that could have been done much better in a quarter of the time. All I have ended up with tonight is a list of things 285 lines long, a totally confused BI team and a headache.

I think the trigger for this was the mandate that we report Percent Complete against original plan for a number of activities and the tasks themselves but of course this is meaningless if the original schedule bears no resemblence to what is required today.

Sometimes the only point at which you realise how far you have travelled is when you revisit somewhere you’ve come from and you know you don’t want to be there any more.

So tomorrow, I will apologise to the team for my momentary loss of sanity and do what I should have done originally, I will create user stories with associated activities and as a team we’ll assess them and plan what might be achieved in a number of serial sprints. I’ll also ask them why they let me do it in the first place - guilty by association I say ;)

The client will get their ’schedule’ which will be a number of 2-week sprints, each with a specific goal and a specific start and end date during which we deliver functionality in descending business priority sequence.

An Agile Manifestation

February 10th, 2009

I was looking at the Agile Manifesto again just now and thought how valid those choice words still were today. The original words were crafted out eight years ago tomorrow (11-13th February 2001) at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah. The history of how this came about is worth a read if you haven’t found it before.

wordle-agile-manifesto

So to celebrate this anniversary and just for something different I thought I’d try and emphasise these words using Wordle. Wordle was awarded an ‘Honorable Mention’ in Flowing Data’s 5 Best Data Visualisation Projects of the Year in 2008. The above image was created using http://www.wordle.net

If you have some content you want to present in an unusual but impactful way then try it out. You can see the above Wordle online or create your own by clicking on the wordle above.

How do we budget with Scrum?

February 2nd, 2009

A question I was asked last week resulted in an interesting discussion that is worth sharing because I am sure you too will be asked it at some point if you haven’t already. It surrounds the issue of budgeting, specifically preliminary budgeting when attempting to outline likely initiatives that are to be worked on in some future period.

How are they to be accurately estimated using Scrum?

Aussie Dollar

Its a good question, traditionally we planned work for the coming year and the budget was a function of the work to be done and the resources needed to do it. I’m grateful to Rowan Bunning for his input to this discussion. Check out his blog for some interesting related discussions.

Nowadays, as Rowan points out, Scrum projects benefit from estimation techniques that are aimed directly at enhancing the estimation process, including:

  • Multi-disciplinary team estimation
  • Accuracy over precision
  • Relative complexity/size estimation techniques
  • Continual review and re-estimation of requirements
  • Budgeting is performed in short time-boxed sprints where variation in team size and structure is limited

If we wanted put these techniques into practice by establishing an initial, estimated Product Backlog covering the known objectives of the project it could be done in a day or two for most projects. This may be sufficient to appease those who need a budget for the next 12 months. If not, a provisional budget may be used to extend these 1-2 days in order to produce a Product Backlog with estimates, release plans and schedules for the entire project.

So what is the difference? Well, instead of a Project Manager producing a detailed Gantt Chart which identifies activity at an individual person day level, a small multi-disciplinary team applies the 5 techniques listed above to produce something at a much higher level but which they are comfortable with and can commit to. They do this in full knowledge that although what they work on will be aligned in some way with the project goals, the full detail will only become apparent in time.

If I’m out of scope then you’re out of touch…

January 29th, 2009

To me, scope is a word from the bad old days of project management. A thing that was defined in painful detail and then cast in concrete, only ever to modified with huge expense and a pneumatic hammer.

Sniper Scope

How incredible then that we still believe it is ok to fix scope, that scope is something we expect people to specify at the start of a development chapter even though none of the players knows the full truth about what is being embarked upon.

Of course scope can be different things to different people and in the agile world perhaps scope means the realm of the effort we are collaborating on, in which case it most definitely is not rigid.

But lets just reflect on what it probably still means to the majority of developers who work for an old school project manager or perhaps a modern project manager working under old school constraints.

  • We discuss the requirement with the client
  • We specify the scope up-front and document it
  • We get our client to sign off and agree to the scope
  • We commence development of the scope
  • We test and assure the functionality fits the scope
  • We hand over the functionality for acceptance
  • The client (perhaps reluctantly) accepts the functionality

Imagine if this process took 12 months and imagine if the client was working in an organisation that did not stand still for 12 months. What are the chances of the requirement being constant in that time? What are the chances of the scope being precisely the same? What are the chances of the client being happy with what was delivered a year later?

Scope doesn’t just increase - it can decrease. Functionality that cost $50K might no longer be needed 6 months down the line so why build it? We could all finish early and do something that the organisation actually needs with the money. Imagine that.

If it sounds good then check the blog roll on the right and/or some posts I’ve made on agile