Thursday, January 8, 2015

Requirements Modeling and Why

From telling what it Does to telling what it Is is a huge step. E.g., how long does it take from an idea that something we can ride and run quickly to a bicycle with two wheels on the road? It involves long time of efforts and uncountable experiments.

Looking into software development stage, what we've often seen in common with many teams is that the SMEs gather what the business user should be able to do, then throw them to the developers to put together components and the logic realizing the business needs. No wonder we've also often seen project slippage and a lot of reworks since there is no intermediate ground where to consolidate the requirement pieces and to resolve conflict before moving to development.

 Generally, requirement elicitation and gathering only make superfluous stuff that buzz over the product, not the product itself. It is the #RequirementsModeling step that takes in the fluff and builds the conceptual model and the logical model, making a substantial step towards the solution.

 Modeling not only captures the business events – user stories or use cases, partitions them into features or management areas, and identifies business processes and the correlation among the processes, it also looks into the realization side – the data model, and how business logics are realized with the data, whereby applying a high level object-oriented analysis and design.

 Requirements modeling does dig into the ground of details, exploring all hidden rules, clarifying the scope, context, and actors, be they external systems or human users, and what their specific requirement for usability are, defining the done for the development and tests.  It is an ongoing process where requirements analyst together with the SMEs and the solution analyst to create a transition plan from requirements to solution with prioritization and trade-offs. But all these effort are necessary - without these, on what for the team to focus so that they work and collaborate towards the same target?

 In summary,  requirements modeling is the intermediate ground where to mitigate the gap between the business needs and the solution. It intakes all requirements artifacts and massage and filter like a funnel outputting development tasks. Unfortunately, it has been under leveraged commonly in many teams, but it really shouldn't. It is a powerful tool for collaboration, for collaboratively identifying and consolidating the details and defining what the product looks like.  Properly applying requirement modeling will definitely make development process more efficient and avoid waste of efforts.

2 comments:

GeeJay said...

Requirements gathering is sometimes done under another name or via related processes.

Other names and related processes include:
* Sales Discovery
* Sales Handover to Delivery Discovery
* Discovery by Delivery Team
* Fit-Gap Analysis
* Use Case Analysis
* Solution Architecture Plan
* Solution Modeling

Requirements are not always "elicited" in a single pass as in a "waterfall" methodology.

Sometimes, requirements are defined successively over multiple iterations of analysis and testing that continue until even late in the project.

Tools for gathering requirements can include Microsoft Word, Excel and Team Foundation Server (TFS).

Requirements often provide a foundation for specific solution modeling tasks, specific configuration patterns, specific customization designs, test plan content and more.

Thank you for your blog and blog post!

GeeJay said...

You know most or all of what I said already. :-).