IT Architects deal requirements in many contexts; there are requirements associated with the management of architecture itself, the requirements of the enterprise which drive an entire portfolio and the more specific detailed requirements associated with solution design. Today, we're going to examine the requirements in the context of Solution Architecture - a domain where Agile is sometimes interpreted as a "requirements-free zone."
These days, requirements management is often misunderstood or under-appreciated in IT. Many people have used migration to Agile methodologies as an excuse to discard requirements or rethink how they’re used to support most projects.
One of the key tenets of Agile application development is not to over-think technical requirements in advance. The premise is that it’s usually impossible to accurately predict the details, which would invariably lead to costly rework after the fact—as opposed to an Agile approach of incremental refinement.
So who’s right? Do Agile advocates make a convincing case that a too-precise definition of requirements is counterproductive, or does the more traditional view of requirements management make more sense? Before we answer that question, let’s review several pertinent factors:
Followers of both traditional Waterfall and Agile techniques can fail to define solutions in context. The difference is that with Agile, the flawed results are more likely to be noticed early. Context can be lost when a team develops requirements without:
Far from abandoning requirements as a central part of every project, it’s time to start advocating their use in all projects. Here’s why: Requirements are the foundation of all good design and architecture, all portfolio and project management, and all project or solution collaboration. If compiled properly, they capture vision and thinking from a diverse spectrum of team members and document the solution as it’s progressing.
As we said, not all projects need to apply requirements the same way. Conditional requirement approaches might be applied to these project categories:
These days, requirements management is often misunderstood or under-appreciated in IT. Many people have used migration to Agile methodologies as an excuse to discard requirements or rethink how they’re used to support most projects.
In the overall lifecycle of lifecycles, requirements becomes critical in establishing traceability |
One of the key tenets of Agile application development is not to over-think technical requirements in advance. The premise is that it’s usually impossible to accurately predict the details, which would invariably lead to costly rework after the fact—as opposed to an Agile approach of incremental refinement.
So who’s right? Do Agile advocates make a convincing case that a too-precise definition of requirements is counterproductive, or does the more traditional view of requirements management make more sense? Before we answer that question, let’s review several pertinent factors:
- Not all IT projects involve coding (for example, software development).
- Even Agile methodology includes some level of requirements definition.
- Many, if not most, organizations track “functional” level business requirements, a task usually managed by business analysts.
- The majority of people who collect and manage requirements don’t follow a specific methodology, since it’s often considered less important than the follow-on development or implementation activities. What’s more, most people don’t realize that requirements management is a collaborative activity.
Common Ground
As in most things, the truth lies somewhere in between. Not all requirements are the same, so they shouldn’t all be managed the same way. Either camp could go wrong in this area. Also, the main reason that requirements management has come under criticism isn’t that defining solutions up front is intrinsically wrong, it’s that defining solutions out of context is.Followers of both traditional Waterfall and Agile techniques can fail to define solutions in context. The difference is that with Agile, the flawed results are more likely to be noticed early. Context can be lost when a team develops requirements without:
- End-user input
- Stakeholder input
- Use cases and test cases
- Mechanisms for validation and incremental development
- Integration of business and technical requirements processes.
The Best of Both Worlds
Requirements management is the most logical place to integrate business and technical processes and teams. Instead of moving from one either/or philosophy to another, we should take the best elements of each camp and create a better approach.Far from abandoning requirements as a central part of every project, it’s time to start advocating their use in all projects. Here’s why: Requirements are the foundation of all good design and architecture, all portfolio and project management, and all project or solution collaboration. If compiled properly, they capture vision and thinking from a diverse spectrum of team members and document the solution as it’s progressing.
As we said, not all projects need to apply requirements the same way. Conditional requirement approaches might be applied to these project categories:
- Pure Development: Little or no code reuse. This might involve a more Agile approach, including more experimentation and more test-driven or scenario-driven requirements.
- Commodity Development: Significant use of existing libraries or software packages. This might focus more on integration and performance requirements. For example, an existing knowledge base may support more detailed technical requirements.
- User Interface-Driven Solutions: Much more focused on event-driven expectations and extensive user stories.
Copyright 2014, Stephen Lahanas
#ITarchitectureJournal
#StephenLahanas
#Semantech-Inc
#StephenLahanas
#Semantech-Inc
0 comments :
Post a Comment