Posts Tagged ‘agile’

Features, Epics and Themes

I like the thinking that’s gone into this white paper and the associated presentation from Dean Leffingwell. It pulls together all the artifacts we deal with in the agile world, from stories and tasks right through to epics and themes, and pulls it all together into a consistent model.

Some intial thoughts: Some of the deep detail may go too far. For example my reading of the model is that stories are always subordinate to a higher level feature, and similarly features are always part of a release. For the perspective of a team working on a product that has matured somewhat, we find ourselves working on a mix of both large features and small enhancements to existing functionality. Should we consider those small enhancements as features in their own right in this model, or create artificial features to encapsulate them ? Neither I think, the small enhancements exist as stories in their own right, without an encapsulating feature.

I find it interesting to compare this model with that advocated in the Open Agile process. This also extends the concept of a backlog item beyond a mere story, but the extension there encompasses Quality Items (bugs), Obstacles (impediments) and Calendar Items. Again I find this relevant to my own situation where working with a relatively mature product entails more than just dealing with new functionality neatly boxed as user stories.

I look forward to further developments towards a ubiquitous language (if not a ubiquitous model) suitable for all flavours of Agile.

Technorati Tags: , , ,

Posted by Andy on May 6th, 2009 No Comments

Sprint, Jog, Sprint

Since starting with scrum, we’ve always done consecutive sprints. Two weeks of coding (Monday-Friday for the most part) near the end of which we do activities like estimating, planning, sprint review, retrospective.

We’ve reached a point where, for a variety of reasons, that doesn’t feel right anymore. Reasons include:

  • The product is released and fairly mature. Coding work includes a lot of tweaks, enhancements, bug-fixes in addition to new development.
  • Planning and estimation feel rushed. Applying arbitrary time-boxing to these activities doesn’t feel right when a little extra chat / research can prevent nasty surprises during the sprint.
  • We don’t seem to have any proper time or place to help stakeholders develop simple requests for functionality into reasonable user stories that can be estimated.

So we’ve adopted a new practice: A week between 2-week sprints that we’ve called (after going through some flippant alternatives) jog week.

So now the pattern is something like this:

  • Product owner meeting works on the backlog every Tuesday. (During sprint weeks this is mostly adding and reviewing new stories with stakeholders, during jog week it’s primarily prioritisation)
  • Developers do estimation on every Wednesday (jog or sprint) for an hour. We seem to get through maybe 8-12 stories in that time.
  • Planning (including tasking user stories) takes place on Thursday of jog week.
  • Sprint Review takes place on the last day of the sprint
  • Besides the above, the rest of jog week is taken up with bugfixes and ad-hoc technical requests, helping stakeholders develop user stories to the point where they can be estimated, refactoring, reading coding/agile blogs, etc.

We’ve still got to work on the details, but based on the two jog weeks so far, we’ve got more than enough to fill up that third week.

Technorati Tags: , , , , , ,

Posted by Andy on April 8th, 2009 No Comments

Ken Schwaber talks Scrum at Google

Another enlightening video from Ken Schwaber.

Particular points I took away from this one.

  • In the sprint, aim to deliver everything. Done. Software written, UATed, documented, load tested, ready to roll.
  • In scrum, you get news early (good or bad). From sprint 2, you should be able to begin making projections about how long the rest of the project will take.

Technorati Tags: ,

Posted by Andy on September 16th, 2008 No Comments

Dealing with Bugs in Scrum

A recent post on the Scrum Development list detailed a way of dealing with bugs in scrum. While it’s a bit unconventional, in that the sprint backlog changes mid-sprint, I’ve got say I like it. Might even be adaptable to dealing with other priorities changing mid-sprint (genuine new, urgent, user stories) which is more likely to happen to me.

Technorati Tags: , ,

Posted by Andy on September 6th, 2008 No Comments

When Agile Goes Wrong

I just want to share some thoughts about where agile (scrum, specifically) has worked and where it hasn’t worked in my organisation. I don’t think I’ve discovered anything wrong with Scrum itself (I’d far rather be in an Agile team than in a Waterfall one any day) but more that there can be issues where the organisation outside of the dev team haven’t fully bought in to the concept.

The background is this. 2+ years ago the organisation decides to re-develop the core software product. The CTO initiates several changes, the key ones being adoption of scrum and adoption of new language/platform in RubyOnRails.

This is a cultural change for everyone. CTO has spent time explaining agile methodology at board level and the board appear to have bought into it. Development team also spend time getting up to speed with scrum, rails and TDD, first on a test project then on the real project.

Product Ownership is an issue from day 1. Ownership goes back and forth several times over the life of the project, between board, senior operational staff, CTO, appointed project team etc.

Again we go through several approaches to user stories. We start with the idea of collecting user stories from outside development, but it’s hard to get people to give us user stories for what the existing product does, they only think about the new features the new product might include. In the end we fall back on the pragmatic approach of writing most (though not all) of the user stories ourselves.

For most of the life of the project (the run up to launch dates excepted) it’s hard to get the part of the organisation outside of I.T. to get involved in what we’re doing. There’s little or no attendance at sprint reviews above those people that must be there. It’s rare that anyone wants to find out how the new product works, how it meets the organisations needs, what it looks like, or what it’s like to use it. There’s generally a reluctance from the rest of the organisation to spare time even for formally organised reviews, acceptance tests and so on.

About two-thirds the way through the project we’re aiming to launch limited functionality to one key client. There’s a fixed deadline for this, and as the time approaches it becomes more and more difficult to see how we can cope with the complexity of what we need to do within the fixed two-week sprint cycle. The complexity increases because people are now finally looking at the product and finding fault with it. In essence, we had too much to do, and should have really moved the deadline. Since that was not an option we abandoned the scrum process and on a day-by-day basis updated check-lists with new tasks and tasks done till we launched.

(More about what happened here )

Then we reverted to scrum.

So, getting on for 21 months after the first changes were initiated, it becomes apparent that the board is very keen to launch, very soon. Again, we’re given a fixed time-frame. We (dev team) spend a couple of days fleshing out the things that need to be done, debating approaches to this and that, debating what compromises can be made to meet the fixed launch date. In the end we realise that we’re again in the realms of complex, team-generated tasks. (we know that we need to load test, no user story we’re given has has told us that). It seems artificial to try and shoehorn these task lists into self-generated user stories, so again we abandon the scrum process. Because we essentially made a small waterfall project at this stage, our estimates failed to take everything into account. Also the complexity increased because again people started looking at the product, and requested bug fixes, new features and cosmetic changes. And the deadline slipped.

And it stayed that way for nearly many months after the main product launch. Only now, following pressure from the dev team, are we using agile methods again within the team, and getting the agile message out to the rest of the organisation.

Summing up the issues:

  1. The business wanted deliverables on a waterfall basis, i.e. two releases, both with a fixed deadline.
  2. Because the product was not delivered incrementally, it was only as our two deadlines approached that the dev team got any feedback about the product.
  3. The team implemented scrum as best they could, given that the rest of the organisation didn’t really buy in.
  4. The Dev Team might possibly have made things easier on themselves by forcing an approach where the existing system was replaced incrementally, perhaps going for an SOA approach, but that option has only become apparent with hindsight (and it could have raised a whole different set of issues).

So, apologies for rambling on a bit. If you’ve got this far, I’d be very interested in your comments.

Technorati Tags: ,

Posted by Andy on August 23rd, 2008 1 Comment