Note: You are experiencing only the raw content of this site, without the intended layout and design. Either your browser has ignored the Cascading Style Sheet (CSS) files for this site, or you are using an outdated browser which does not support Web Standards. Learn more.

Home « Blogs

EDS' Next Big Thing Blog: Read and Respond to What the EDS Fellows Say About Technology

Read and respond to what the EDS Fellows have to say about the future of technology on EDS' Next Big Thing Blog on eds.com.

Requirements management, SOA and Simulation - 2nd in a series

by Charlie Bess

Requirements management is an area that has had significant technological investment in the past few years. Most of that activity has been related to formal documentation and change management, codified in tools like CaliberRM and Requisite Pro. In preparing for a client presentation about the state of requirements management last year, I came across an interesting article:

Heumann, Jim, The Five Levels of Requirements Management Maturity,
The Rational Edge, February 2003

That described a maturity progression related to requirements management:

  • Level 0 - No Written Requirements
  • Level 1 - Written Requirements
  • Level 2 - Organize Requirements: Format, Secured, Store, Versioning
  • Level 3 - Structure Requirements: Identify "Types" of Requirements
  • Level 4 - Trace Requirements: Track, Prioritize Relationships
  • Level 5 - Integrating Requirements: Coordinate with other software tools in the software life cycle

This works well when the user knows what they want and are willing to commit to those requirements. Agile development techniques can be brought to bear to help the client converge on a set of requirement techniques. A diverging set of requirements never happens in development – right??

But what affect does Service Oriented Architectures (SOA) and model driven development have on the state of requirements management. It seems the current requirements management tools need to be supplemented by a whole other set of techniques. Just like when CAD software was available to do stress analysis on bridges and other physical structure, estimation and simulation techniques for SOA are needed to optimize and sometimes understand production performance.

Although SOA has received a great deal of press recently, the implications on the behavior of the enterprise from a governance and requirements management perspective seem to be overlooked.

By definition, most of the work done in a SOA will be built upon existing services within the enterprise or providers to the enterprise. Those services will already have users that place a load on the service. They also have contracts, expectations or Service Level Agreements.

Adding new load will require the addition of simulation techniques to the requirements process, to ensure that the new application does not bring the whole enterprise down like a house of cards. Just because a service can fulfill a need, does not mean it should. Simulation techniques will help identify if new services will be required to meet the specific needs of the application or a leveraged service is sufficient.

As SOA techniques and Utility Computing techniques align, simulation expectations will need to reach whole new levels of maturity (not to mention the monitoring needs of the services).

Published Friday, July 22, 2005 7:30 PM

Subscribe to this post's comments using RSS

Comments

# Posted by Brad Feld Sunday, July 24, 2005 7:28 PM

If you envision the IT business as an "almost" perpetual motion machine, you'll agree that new technologies beget new tools which beget new technologies which ... We have seen - with the huge success of <a href="http://www.salesforce.com>Salesforce.com</a> the mainstream emergence of SaaS ("Software as a Service", or on-demand, or <choose your favorite name>) in broad business apps (e.g. CRM). So - why not in tools to help build these types of apps?

One of my investments - <a href="http://www.rallydev.com>Rally Software</a> does just this with agile development tools. An "on-demand" development environment, which evolves regularly to fit the needs of contemporary design and development, is easily customizable and upgradeable (no client downloads required - this is real on-demand software (e.g. web-based) after all).

The tools need to have a way to manage the simulation aspects (and results) you describe in your post. As the simulation tools evolve, the management tools and frameworks need to keep pace. An agile approach, that is also on-demand / hosted - is the only logical way to keep up.

# Posted by cebess Tuesday, July 26, 2005 3:36 PM

I took a quick look at the Rally tool you mentioned. If there is one area that is crying out for the application of SOA and utility computing techniques it would be the development environment of most organizations.
It is also an area where most organizations are a little gun-shy about uncoordinated change. As an SOA provider implements in this space, they'll need to develop a strong understanding of the technology adoption profile of their clients. Unfortunately, for many development teams it may be a bit slow for organizations who are trying to grow their market.

# Posted by Ryan Martens Wednesday, August 03, 2005 10:37 PM

Brad thank you for your comment. I just wanted to add on a bit about Rally and Agile Requirements management. At BEA in 2001, my world view of the affects of SOA on software development world headed me to kick-off the formation of a company that could enable Agile and SOA in software driven organizations. Rally initial step created an on-demand system for managing and scaling the agile software lifecycle. As the CTO of Rally, my Product Management and Engineering team uses Rally to manage the our two-week iterations and our two-month release to production cycles, I have gained some insights into the changes in needed in the Requirements Management process and tooling to keep a constant flow of Requirements definition/elaboration, while not wasting too much time over-elaborating too far in advance. I have to admit, I and my team do not long for simulation. I have tight feedback loops and working code. Who needs simulation? (more below)

First, it is obvious to me and other agile folks that requirements are not gathered; they are co-discovered / co-created through the interaction of analysts with stakeholders. (customers, partners, engineers, executives and services folks.) As a result, Agile practices agile modeling, paper prototyping and just-in-time elaboration of requirements by a team of analysts, developers and testers working in short feedback loops of two week iteration/demonstration cycles and quarterly release cycles. This is a huge improvement in personal and team efficiency over the typically lengthy and heavy, up-front requirements analysis that I did in the 90’s at BEA, TRW and U S WEST using Objectory tools and techniques.

Second, I like many agile folks believe heavy investment in prototyping, analysis, modeling and simulation is typically a waste of time. The analysis models help you think through the problem, but after the first month you learned so much that they became painful to keep current. If you follow the agile practice of “always staying close to shippable software,” your team has a much better testing ground for incremental progress than a tool that only roughly simulates the production environment. I do understand the need for a staging or system test environment that can simulate the affects of new SOA services in the production environment. As the number of interactions of your SOA solution increase, this staging/system test environment becomes more and more important, but so does always staying close to shippable code.

Companies like Accenia’s Double-Wide studio (http://www.accenia.com) are making hardware simulation and visualization environments for embedded software teams to work in parallel with hardware development, but I do not see why we need that type of simulation in SOA. Why and when is a staging sandbox for real production code not enough? When are Jmeter and Performance Montioring tools in your sandbox not enough in SOA? Please help educate me here. I assume the EDS Fellows, who have cut their teeth in the largest mainframe/service oriented environments might have more knowledge here than I.

Rally’s first step has been to enable teams to scale agile practices well. By enabling the scaling of agile through our integrated environment for Requirements, Test, Defect management is coupled with a time-boxed Project and Program management system, we are allowing teams-of-teams to gain the virtues of short feedback loops on large teams. To me, scaling agile is more valuable now and always will be more valuable than the best simulator you could build. It is a first order problem, not a second order problem.

# Posted by Stephen Robinson Wednesday, August 17, 2005 1:28 AM

For the record, you might want to take a look at my system, it's call eRequirements http://www.erequirements.com.
The focus is on a tool & services that genuinely helps produce comprehensive requirements directly from users, in a language and process that makes sense to them.
If agile programming enables clients to explore their needs through software, then this system aims to similarly explore their needs in a document format. I've found it very helpful in working with my customers.
Best regards, Steve

# Posted by Kurt Smith Tuesday, August 30, 2005 12:41 AM

I found a great requirements management tool that provides UML use case artifacts and feature reports. It's called Gatherspace.com

Post a New Comment

: required  
required  
optional
required  
Please only click Submit once.

Subscribe to EDS RSS Feeds

I would like to receive the EDS Newsletter