Home    Business Modeling    Requirements    Analysis And Design    Project Management    Environment

This page contains ideas for future work and explanations of the content of the site.

I recently took a course on agile development with Scrum, through Construx here in Bellevue. [Construx are generously offering to fill up to 20% of their classes for free, to people that are unemployed and have recently been laid-off.] Some of the lessons I learnt from the class that I am considering adding to the process are:

  • Time-boxing - Scrum's alternative to an iteration is a sprint. The main difference between a RUP iteration and a sprint is that whereas an iteration encompasses the development activities that lead to a stable, executable version of the product, a sprint is a development effort performed over a fixed period of time culminating in a release of the product. In order to achieve a stable release we cannot guarantee the length and effort that goes into an iteration. In a sprint, the time to finish is guaranteed, but the content of the resulting deployment cannot be predicted for certain. If we remove the clause that an iteration must result in a stable release, then we could time-box RUP's iterations.

 

 

  • The PBI - Every product development team has a prioritized list of items affecting the product or a Product Backlog of Items list. A PBI may be of any form that causes work for the product team. For example, requirements, change requests, issues or even design and test changes. I would like to see a similar concept explicitly described for each discipline, with a roll-down effect from Business Modeling through to Deployment. Say a change request comes from the business, this is added to the business modeling backlog. When the BA has addressed this change an item is added to the Requirements backlog. The systems analyst addresses the item in their backlog and adds an item to the implementation application backlog. Similarly, the designers add to a Test backlog and testers create Deployment backlog items. These are prioritized between the two teams at the time of being added to the backlog (this is different to Scrum, which prioritizes items at the beginning of each Sprint).

 

 

 

  • One of the things this course, not so much taught me, but re-enforced, is a concept that I have been trying to get a handle on for almost as long as RUP has been around; is the idea that we do not build a product and release it to our customers, then go build another product, but even if using a waterfall SDLC, we release a product to the customer and then have to continue maintaining it for the duration of its life. Iterative methods, like RUP and Scrum, take that concept and embrace it, by planning for many releases of the product up front. (Waterfall generally plans for a single 'big-bang' release.) In the early days of RUP, I remember a conversation between two people who now both work for IBM, where one was asking 'Where is the Maintenance phase of RUP'. Sometime later the answer came back, it is there, during maintenance you start another iteration of the whole process. As someone brought up on waterfall, it's been a long journey, but I finally believe that I grasp the idea that we never finish a product, we continuously build the product until we kill it.