Managing Requirements in an Agile environment
The transition to agile seems challenging to developers and
organizations. The agile manifesto prescribes working code to comprehensive
documentation. This principle, when isolated seems to confuse agile
practitioners. Recently I was involved in a scrum project, where there was
absolutely no requirement definition. While the developers were eager to make
scrum “work” for them, there were considerable challenges for the people who
were newer to the organization. Organizations that have matured over the
decades rely on senior workers to provide subject matter expertise. This may
not really be a good idea, since agile projects are fast paced and developers
who are also tasked with being SMEs will be challenged for time. A business
analyst is critical to agile teams to provide requirements, unless the product
owner is able to fill in all the required details for user stories, which does
not seem practical. Producing extensive bulky documentation with obsolete information
is totally worthless and does not serve anybody’s needs, but unless requirements
are clearly defined and the team is clear with the scope, following the agile
approach serves no purpose. The organization seemed eager to adopt scrum and at
the same time, challenged to break away from the waterfall model. This led to
breaking existing functionality many times, incomplete testing, releases rolled
back, cost overrun, and frequent conflicts between agile teams, rework, scope
creeps and reorganization all of which could have been well avoided.
Traditional projects
require a strong project manager who manages the project right from initiation
to final delivery. The requirements, technical and non-technical specifications
are core documents for project execution. The project execution and control
involves all the functional teams who are primarily managed by the project manager.
Hence it is the Project Manager who is essentially responsible for ensuring the
successful completion of the project. The Product description defines the
essential goal of the project and is detailed in the Project Charter. From the
scope statement evolves the work breakdown structure (WBS) which lists all
tasks and dependencies. A project plan is developed from the WBS and the timelines,
costs and scope is agreed upon by the stakeholders. The project plan has the
time allocated to the tasks along with resources and costs. Changes to the
scope are managed by the project manager, and the change management plan is
laid out in accordance with the organizational policies. Vendor costs and contract resources if any and
will have to be managed and accounted for by the project manager. Hence all the
work is accounted for and change requests managed appropriately.
Managing agile projects might seem totally different from
the PMBOK approach. A project starts with a vision and an owner or sponsor who defines
the strategic need for a specific problem. As with any solution, the project
might involve building a system or services that might raise the reputation of
the organization, provide a competitive advantage, or address problems that are
critical, thereby building a stronger and better system than what is in place. Investments
for the specific initiative have specific budgets. The project manager and project
sponsors make critical decisions regarding the work and cost involved. From the
vision evolves the Epics that represent at a high level
large scale development activities. Epics are prioritized, estimated,
maintained in the portfolio backlog. Epics are broken into features and
features into stories. Project managers or product managers have to ensure
acceptance tests are run at the feature level.
Epics contain existing and planned systems to allow current
and anticipated requirements that will be implemented incrementally. The
development and maintenance involves mature and responsible agile teams without
which projects cannot succeed. The
vision document, draft or press release, data sheet are documents that can
expected during project initiation.
At the program level, there are multiple agile teams or pods. The at the program level, teams
and activities are organized around an ongoing series of incremental releases. Every
release identifies a Potentially
Shippable Component which is the result of incremental development of the
feature Development of the feature base happens as a standard cadence of iterations
that has been. At the program level, the product manager is involved along with
feature teams and/or component teams. In addition to the agile teams, project
involves System teams for Build, deployment, database administration, system administration
and system tests such as performance and stress tests, release management activities
involve business owners, product managers, sales and marketing representatives,
QA representatives, senior managers, architects and also the company CTO. The
program level is focused on the features and customer needs. They bridge the
gap between domain and solution.
Features are translated into user stories that are
prioritized by the product manager and product owner. The stories are ranked
and sized by the team and released at the end of the iteration. The scrum teams
are managed by the scrum master who is responsible for the ensuring that the
stories are worked and completed and provide status updates when needed. The
scrum master must make sure that the team works cohesively and removes all impediments.
The product owner is responsible for the scope of work each iteration and for
clarifying requirements and questions related to the product and release.
The project manager may not have a role in agile projects. If
there is no project manager, the product manager or program manager and product
owners and scrum masters along with the teams are capable of organizing the
work and coordinating the release. If there is a project manager however, the
PM is expected to have a less significant role, but is nevertheless responsible
for ensuring the project success. The PM schedules meetings with the project
sponsors, product owners, scrum masters regularly and also meets with team
members when required; the PM checks on the work during each iteration, ensures
that releases follow the plan and all system tasks are completed and the customer
needs are met until the final product is shipped.
Breaking the work into releases and working in smaller
iterations seems appropriate. In the mid-90s I was working on a migration project
at an automotive company. After 2 years and several thousand dollars, the
project was cancelled. It was found that the application was not well designed
and not worth implementing. The vendor was eventually removed which caused a
rift in the relationship, personnel suffering due to job losses. All this could
have been avoided if the project was evaluated after every release to meet
customer expectations.
Though the transition to agile is harder, project planning takes
longer, frequent releases may seem an overhead, agile offers a good solution to
avoid disasters. But of course, a strong project manager or product manager and
reliable product owners and reliable team members are the keys for success to
ensure developers and testers are clear with what needs to done and the why.
Comments
Post a Comment