Home > Software Quality Tips > > How to deliver, implement testable software requirements
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 


How to deliver, implement testable software requirements


James F. York
08.04.2009
Rating: -3.62- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Requirements: The word says it all. Software requirements are must haves. What is required for the applications to run properly? What is necessary in order to make the application successful? Do all the participating people understand what the client's expectations are? Or do we just assume we know what they want and proceed with that misunderstanding?

This tip provides insights into developing and implementing software requirements that are cohesive, on target and testable. It outlines a step-by-step requirements building process, looking at issues and practices in needs analysis, walkthroughs, reverse presentations and business analysis.

Analyzing clients' needs

Does the client really understand what they need? Do they have a clear understanding of what the final product should do? Not always. If developers don't get a clear understanding of clients' true need, creeping scope often results. To prevent scope creep, or constantly changing and expanding requirements, your team must unmask the client needs that are really necessary to make the project successful. The Need Analysis is a good way to do this.

The purpose of a Needs Analysis is to separate the "needs" from the "wants." The client may want more than what is available, have the money for, can be done within the time frame, etc. The business analyst is chartered with interfacing with the client and discussing the client's needs. This discussion will lead to the specification which summarizes the results of those discussions.

Often the specification is written in the client's language, so the client will sign off on the document. That's where a problem can begin, because how many other people in the organization speak the client's language? Usually, the answer is few, if any. Thus there must be a process in place to clarify for each participant exactly what their roles will be in the project. That is done during the Needs Analysis.and walkthroughs. The Needs Analy...


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Software Requirements Documentation
VisibleThread aims to boost IT documentation quality, improve processes
When it comes to requirements, what is 'just enough'?
Blueprint rolls out Requirements Center 2010
Writing a software requirements specification (SRS) for a portal app
Should QA check changes from outside the requirements document?
Agile software development tutorial: Agile requirements gathering
Defining requirements during software project feasibility analysis
Template for requirements use cases
What should a business analyst's requirements document include?
Determining software testing deliverables for a small project

Software requirements techniques (Prototyping, Storyboards, Modeling, State transitions)
Requirements practices evolving, but organizations still struggle
Why business analysts are application development key players today
Defining report requirements with use cases
When it comes to requirements, what is 'just enough'?
How requirements use cases facilitate the SDLC
GatherSpace beefs up cloud-based requirements management
Software development life cycle phases, iterations, explained step by step
Excelling in the art and science of requirements elicitation
Software requirements: Moving beyond use cases
Mastering key requirements phases

Software requirements tools
Requirements practices evolving, but organizations still struggle
GatherSpace beefs up cloud-based requirements management
ThoughtWorks Studios moves from agile tools vendor to ALM market
Excelling in the art and science of requirements elicitation
Software requirements: Moving beyond use cases
Mastering key requirements phases
Blueprint rolls out Requirements Center 2010
Borland releases requirements definition simulation tool for teams
New requirements definition tools focus on chronic flaws
Agile software development tutorial: Agile requirements gathering

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
functional specification  (SearchSoftwareQuality.com)
requirements analysis  (SearchSoftwareQuality.com)
Software Engineering Institute (SEI)  (SearchSoftwareQuality.com)
software requirements specification  (SearchSoftwareQuality.com)
Wirth's Law  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


sis and walkthroughs go hand in hand, since the requirements may change as a result of the walkthroughs.

Who should attend a Needs Analysis/walkthrough session?

The best practice is including anyone who plays a role in the software project's success: project managers, business analysts, programmers, testers, quality assurance (QA) managers, clients, and so on. This meeting of many minds will result in a specification, so no design, code or anything should be started until the Needs Analysis and the walk-through – discussed in the sidebar -- is finished.

Now, some people on a software team will complain, saying: "This takes time and we don't have the time." Sound familiar? Yet, what makes more sense: knowing what needs to be done before starting, or fixing things later because the development team didn't fully understand what the client meant in the first place?

Speaking programmers', testers' languages

Since the specification is written in the client's language, there's a need to convert the client's language into the language of the development group and the testing group. Programmers, for instance, must understand how make the application run on the system. Then there are testers, who have to understand how they will prove that the application meets the user's needs. Testers don't care what language the program was written in, only whether it meet the user's needs. They must know the user expectations and how users use the application.

Two entirely different needs, yet are they? The overall objective is always to deliver a product that is going to satisfy the client.

Once you've translated your specifications, do a walkthrough. If, after the first walkthrough, you find that people are still confused, it's time to draw a picture thus we need graphics.

Requirements walkthroughs a must

Many development subgroups do walkthroughs on design, code, etc. It's not as common, however, for them to walk through the specification or requirements. Yet, software projects can fail because of miscommunications about what a client meant versus what he said and these misunderstandings can lead to wrong assumptions. Since the specification is written in the client's language, a requirement walkthrough can help make that language clearly understood by the development group and the test group.

(For more details on how to handle this process, check out Tony Higgins' advice in making requirements walkthroughs effective and fun.)

Doing a reverse presentation

Once you've got your team on the same wavelength, do a reverse presentation. In a reverse presentation, the development team explains back to the client their understanding of what the client said in the development team's own words. They don't repeat what the client said, they paraphrase, i.e. put in their own words what they think the client said to ensure correct understanding.

In the reverse presentation, using graphics to complement the requirements text documentation is a good practice. Most people can understand graphics more easily than trying to interpret written language. Images reinforce the understanding between the two parties, ensuring that everyone is in sync.

Do the reverse presentation – with graphics -- prior to design. It could take many walkthroughs to reach consensus, and it is probable that we will need to change the specification to match the requirements. So, no design or coding should be done till the walkthroughs are completed. If any design had been done earlier, it may have to be redone to match the new understanding of the requirements. And this will increase the cost of the project.

After following these steps, everyone should be on the same page. The programmers know what the clients expect, and how they will use the application. The testers know enough to design and develop scripts and test cases to emulate the client's environment. The application should be designed, coded and tested in accordance with the user's expectations. Creeping scope should be eliminated or at least reduced. Rework should be kept to a minimum. Time and resources will be maximized.

Since all team members now have a better and clearer understanding of what the client needs, the process for making it happen will be easier to implement. These processes should be designed so they are repeatable and maintainable. The process will stay the same, only the needs may change. Templates can be designed and reused on subsequent projects. This should result in saving time and resources in the future. Everyone can benefit from lessons learned.


About the author: James F. York is president of the software development and IT consulting firm, C/J System Solutions Inc., based in Nashua, N.H.


Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.




DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts