In our last blog I discussed how the Scrum process supported the Software Development Life Cycle. Partnet uses two different proven Agile development methodologies for development: Scrum and Kanban. A specific method is chosen based on the nature of the work.
- Scrum: Used for complex projects where increments of work can be flexibly managed and assigned into sprints. Work assigned within a sprint can be completed without disruption.
- Kanban: Used for less-complicated projects (e.g., Problem Reports) where priorities frequently change.
Kanban is a backlog-pull model that emphasizes just-in-time delivery of work and avoids process bottlenecks by limiting in-progress work. Kanban also allows for customer-driven prioritization as tasks are regularly prioritized to match their current needs. This means that if an emerging requirement suddenly takes precedence over existing priorities, the team can flexibly respond without affecting project goals or progress. Kanban uses the same Delivery Team roles and responsibilities employed in Partnet’s Scrum process. Partnet employs Kanban for Problem Report work since this work is often subject to shifting priorities.
Partnet’s Kanban process pulls new requirements from a Customer prioritized backlog. Tasks are created and assigned to release versions based on these priorities. The process defines a series of work queues that simultaneously identify the current status of a given development task, and the assigned resource.
Together, the work queues establish a linear workflow for completion of assigned development tasks, as shown below.
|To do||Backlog task; not actively being worked on by any project team member||Backlog|
|Needs Requirements||Undergoing requirements analysis to define new functional requirements; assess impact to existing functionality||Requirements Manager|
|Ready for Development||Requirements analysis complete or not needed||
|Development in Progress||Development and integration underway; includes unit testing and code reviews||Developer|
|Ready for Testing||Development and integration complete||Software Test Engineer|
|Testing in Progress||Writing and execution of test cases||Software Test Engineer|
|Configuration Management||Ready to deploy to development environment||Configuration Manager|
Limits are defined for each work queue to ensure that team resources are not over-tasked. When limits are reached or exceeded, the Kanban team redirects resources to discuss and resolve the bottleneck. This enables broad team involvement to ensure the flow of work is not disrupted.
Pairing the Agile methodologies of Scrum and Kanban ensures ongoing communication with the Customer, adaptability to change and the identification of clear and measurable goals. Together, they create a sound Agile development methodology and a well defined Software Development Life Cycle.
If you have missed any of our blog series please check them out at partnet.com.