Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was in an interview recently and was asked if I use any tools to ensure a clients expectations for a project are met. I couldn't really think of any actual tools apart from stuff like JIRA to ensure bugs/feature requests are kept track off.

Has anyone else been asked this? What would have been a good answer to give?

Thanks!

share|improve this question

closed as off-topic by gnat, GlenH7, MichaelT, Dan Pichelman, Bart van Ingen Schenau Nov 23 at 10:01

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – GlenH7, MichaelT, Dan Pichelman
If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers 5

up vote 2 down vote accepted

At one end is the requirements management process. You cannot know if you have met the clients expectations if you do not know their requirements. Given Requirements is always high up on the list for causes of project failure, tracking them is essential. I know of Req-Pro and Doors as heavy weight tools for this, but I am sure there are many others. Many people use Word and/or Excel, often with limited success.

The other end is verification and acceptance. Here is where it get interesting - if you track user requirements and cross reference them to test requirements, your requirements tool successfully ensures that you and your customer know what you need to do, and have shown that you have done it.

The stuff in the middle is just that - a way to achieve the above. It's nice for you if they all tie in, but ultimately, you customer would not normally care. Waterfall, agile - your problem, not his, Jira, Bugzilla, a spreadsheet - he does not care. SVN, GIT ditto.

As far as I am aware, Jira is a change tracking tool, so helps manage changes, it is not a requirements management tool.

share|improve this answer

They may have been looking for some kind of executable specifications, for example Fit (or Fitnesse), where the customer's expectations are actually recorded in code which then passes when all the expectations are met.

share|improve this answer

I would probably answer this question by talking about tools for acceptance testing, set to execute on some trigger (e.g., a commit into master when using git), periodically, or just whenever a human presses the button to run them.

For example, using FitNesse or something like Selenium to easily write tests against the interface.

If you have a good interface between your components without a lot of business logic in your GUI, you can also test against that interface to ensure that the GUI is receiving the calls that it expects. I've written tools for that in Python and Java before, and we have discussed a tool here that would use scala's actor model to good effect here.

share|improve this answer

We provide a Cross reference between the Technical design doc (TSD) and the Business Requirement Doc (BRD).

Each requirement in the BRD is assigned an ID and that id MUST be referenced in the TSD. The TDS has an appendix will Requirements that fell out of scope or no longer apply.

The BRD was signed off by the client as being complete, The TSD was signed off by the client as being complete. Now we just need to show that everything in the TSD was coded. (and works)

(In this case your tool is a process)

share|improve this answer

tools to ensure a clients expectations for a project are met.

validation ensures that the product actually meets the user's needs, and that the specifications were correct in the first place, while verification is ensuring that the product has been built according to the requirements and design specifications. wiki/Verification_and_validation

During analysis phases, you use different tools to ensure that you have gathered the correct requirements such as Use Case diagrams, Activity Diagrams, Class Diagrams, ERDs, Truth tables, flow charts and other business rules documents. The customer should review and approve most of these documents to ensure specification correctness.

During Design, you could use use-cases and prototyping tools/techniques to ensure the user acceptance of GUI, forms and usability aspects.

During UAT, you could use automated testing tools as well as manual testing together with use cases, test case scenarios to verify that the system fits the requirements. You could also make use of Requirements Tractability Matrix

Eventually, one could say that when functional and non-functional requirements are met the process ends (which might extend beyond the development project life time).

In addition to the above mentioned tools, Word Processors, Spreadsheets and formal requirements management tools such as DOORS may be used. If you are seeking quality measurement then some statistical tools may be require as well.

Note:

I disagree with the above mentioned reference (wiki/Verification_and_validation) at the point where the reference says, when talking about validation: "This is done through dynamic testing and other forms of review." . My understanding is that it should be "verification" instead.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.