Thursday, June 7, 2012

Product backlog - key to agile success


The product backlog is an organized and structured list of work items that reflect your customer needs in relation to a particular product. The product backlog is used to categorize customer requests and ensure the development team is working on the most important features for your business.

 Getting started

Before work begins on a new software release, the product manager needs to organize and categorize the items in the product backlog. For new products this may involve spending time with business stakeholders and documenting their requirements into work items. In the case of an existing product this may involve reviewing the list of known customer requests, bugs (defects) and new features.

Adding features to the product backlog

The product backlog can be made of different types of work items. The following list shows the typical work item types in a product backlog:
- Bugs
- Outstanding technical work (technical debt)
- New features

Bugs are known defects that are found during the development, testing and production use of the system.

Technical debt relates to any technical work that needs to be carried out. It can be code refactoring, work to address performance and scalability issues,upgrading 3rd party components, etc... Technical debt is often not visible to the end user unless it impacts the daily system usage such as performance issues. Outstanding technical work needs to be prioritized and scheduled so there is visibility of it in the work plan and all stakeholders are aware of what the development team is working on.

It can be hard to prioritize purely technical work because, often, users don't see the value in spending time in these kind of tasks, however it is important to prioritize and address any technical debt before they become a real hindrance to the system and/or the development process.

New features are functional items that are not currently available or potential improvements to current functionality. Depending on the size and complexity of the system, I tend to separate new feature requests from improvement requests.

A good product backlog will contain a number of work items of various different types including bugs, new requests, improvement requests and technical debt.

Once you have your product log, the next step is to categorize and prioritize the each work item.

Wednesday, June 6, 2012

Project vs. Program vs. Portfolio Management

Many people get confused with project vs. program vs. portfolio management.
A project is a temporary undertaking to achieve a defined output. The output of a project may be a tangible product or other things such a the answer to a question. A project has defned start and end dates as well as well defined outputs. A project must not be confused with normal operational work which is defined by processes, procedures and job descriptions. A project is temporary as opposed to operational work which is ongoing.
A progam is a group of related projects managed together to achieve specific benefits and controls that would not be achievable if the projects were managed separately. While projects focus on achieving individuak objectives, programs are defined to achieve a strategic objective. The program manager is responsible for ensuring that the various projects are working together to achieve the defined strategic objectives.
A portfolio is all the programs and/or projects of an organisation managed together to achieve strategic goals. A portfolio may be all the programs for an entire organisation, a division or a business unit.

The image below depicts the difference between portfolio, program and project.