To make it easirer to understand SCRUM, we once again SCRUM out, reiterating what we said in SCRUM – All About Commonsense And Chaos Control.
An agile method, SCRUM is an enhancement of the commonly used iterative / incremental object-oriented development cycle
The SCRUM approach used at leading edge software companies with significant success has seen several variants of it in play for new product development, with high performance small teams at Fuji-Xerox, Canon, Honda, NEC, Epson, Brother, 3M, Xerox, and Hewlett-Packard, where it was first noticed.
A management, enhancement and maintenance methodology for an existing system or production prototype, it plans software product releases based on the following variables:
Customer requirements – how the current system needs enhancing.
Time pressure – what time frame is required to gain competitive advantage.
Competition – what competition is up to, and what is required to best them.
Quality – what the required quality is, given the above variables.
Vision – changes required to fulfil system vision.
Resource – availability of staff and funding.
Forming part of a software enhancement project’s initial plan, these variables can change during the project. Therefore, any successful development methodology has to take these variables and their evolutionary nature into account. The system development process being a complicated and complex one means, maximum flexibility and appropriate control is necessary.
SCRUM Methodology Characteristics:
Planning and Closure: The first and last phases consists of well-defined processes, inputs and outputs and understanding well how these processes are to be carried out.
Sprint: This phase comprises of many unidentified or uncontrolled processes that require external controls. Accordingly, controls including risk management, are put on each iteration of the Sprint phase to avoid chaos while maximizing flexibility.
Non-linear and flexible Sprint uses explicit process knowledge if available; tacit knowledge if not and relies on trial and error to build process knowledge, using sprints to evolve the final product.
Closure: This phase involves remaining open to environmental complexity, including competitive, time, quality, and financial pressures, throughout. Deliverables can be changed any time during the planning and Sprint phases.
The deliverable is determined during the project based on the environment.
So, primary SCRUM characteristics can be identified as under:
|Defined processes||Planning & Closure only|
|Final product||Set during project|
|Project cost||Set during project|
|Completion Date||Set during project|
|Responsiveness to environment||Throughout|
|Team flexibility creativity||Unlimited during iterations|
|Knowledge Transfer||Teamwork during project|
|Probability of success||High|
SCRUM is made up of the following groups of phases and is all about:
Planning: Defines a new release based on current backlog, together with schedule and cost estimate which is considered limited analysis, while new system development is considered as conceptualization and analysis.
Architecture: Comprises of architecture modification and high level design, including designing implementation of backlog items.
Development Sprints involve multiple, iterative development sprints, or cycles, used to evolve the system, developing development new release functionality, in respect to time, requirements, quality, cost, and competition variables. And, interaction with these variables defines end of the phase.
Closure: This phase is all about preparing for release, including final documentation, pre-release staged testing, and release.
Each phase follows the following steps:
- Developing a comprehensive backlog list.
- Defining delivery date and functionality releases.
- Selecting release of the most appropriate for immediate development.
- Mapping product packets (objects) for backlog items in selected release.
- Defining project team(s) for building the new release.
- Assessing risk and appropriate risk controls.
- Reviewing and adjusting backlog items and packets.
- Validating / re-selecting development tools and infrastructure.
- Estimating release cost, including development, collateral material, marketing, training, and rollout.
- Verifying management approval and funding.
Architecture / High Level Design is about:
- Reviewing / assigning backlog items.
- Identifying necessary changes backlog items implementation.
- Performing domain analysis for building, enhancing, or updating necessary to reflect the new system context and requirements.
- Refining system architecture.
- Identifying problems / issues in developing / implementing changes.
- Holding design review team meetings with re-assign changes as required.
This phase is an iterative cycle of development work, with the management determining time, competition, quality, or functionality are met, iterations are completed and the closure takes place. Also known as Con-current Engineering, development consists of:
· Meeting with teams to review release plans.
· Distribution, review and adjustment of product conforming standards.
· Iterative Sprints, until product is deemed ready for distribution.
A Sprint is a set of development activities conducted over a pre-defined period, usually one to four weeks, with intervals based on product complexity and risk assessment. Each Sprint consists of one or more developing, wrapping i.e. creating an executable version of changes, reviewing and adjusting.
Each Sprint is followed by a review, with the whole team and product management present and participating, and can include customers, sales, marketing and others, all together determining the next review based on progress and complexity. These Sprints usually have 1 to 4 weeks duration.
When the management team feels time, competition, requirements, cost, and quality variables concur on a new release, the release is declared closed and entering the closure phase, which prepares the developed product for general release. Closure tasks include integration, system test, user documentation, training material preparation, and marketing material preparation.
That’s for the day, next time, we’ll talk about SCRUM controls, deliverables and advantages.