Regular readers will remember that a while back I wrote a few posts talking about the job of a ticket process to manage changes and issues; and more recently I have banging the drum about the wonders of Agile development. How can I reconcile what appear to be two conflicting approaches?
Well the answer is of course that they are talking about two different things; and at two different levels even. What follows it a little simplistic, but I hope will illustrate the point:
- Are delivered by a team over a period of months.
- They are projects -- i.e. the contain novel activity which can be difficult to plan at the start of the projects
- They may well be a capital expenditure item
- They address multiple requirements (more than one story)
- They (hopefully) have fully engaged customers as part of the team
- They are are focused on delivering new business value
So the management of Change Process is, in many ways, a completely different issue. We need to:
- An ongoing process to apply fixes and minor improvements to a production environment
- Each piece of work or change may be very small
- The issues are often well understood and it is 'easy' to estimate costs, impacts etc.
- The budget process is different (e.g. operational)
- Has a smaller team with limited customer involvement
- Often start and stop work because of external and operational constraints
So choose the Agile and Process based work practices that appropriate to the current phase of your Application Lifecycle, and make sure you evolve it as your needs change. There is NO one size fits all. (seem to have heard that one before!)
- Plan many smaller pieces of work and roll them up into releases for production.This is slightly different to planning stories for iterations because there are issues beyond creating new business value for customers.
- Track the smaller conversations we have with our customers so we still understand their needs and time constraints
- Be able to adequately document changes so that we can pick them up and put them down as our operational needs change
- Keep track of costs for budget purposes
- Make sure that operational, organisational and statuary requirements are satisfied for each work piece
- Reduce costs (maintenance is a far higher proportion of software costs than development) with better process and more automation