The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Are Functional Specs Redundant?

1 reply on 1 page. Most recent reply: Aug 9, 2006 1:13 PM by Saumil Annegiri

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Dave Churchville

Posts: 164
Nickname: dchurchv
Registered: Feb, 2005

Dave Churchville is a 15 year software industry veteran in both development and management roles
Are Functional Specs Redundant? Posted: Oct 28, 2005 6:18 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by Dave Churchville.
Original Post: Are Functional Specs Redundant?
Feed Title: Agile Project Planning
Feed URL: http://feeds2.feedburner.com/AgileProjectPlanning
Feed Description: Thoughts on agile project planning, Extreme programming, and other software development topics
Latest Agile Buzz Posts
Latest Agile Buzz Posts by Dave Churchville
Latest Posts From Agile Project Planning

Advertisement
Should an agile project team write functional specifications? What about design documents?

The drumroll please....

And the answer is a resounding "It depends!"

For most agile methods, a feature begins as a "story" as told by a customer, and captured in some format, possibly an index card, spreadsheet, or more sophisticated planning tool. This story is considered a placeholder for the detailed discussions that will take place between the developers and the customer when implementing that story.

But in a situation without an onsite customer and frequent contact, there is certainly some value in capturing a bit more details about this story. This can take the form of acceptance tests, which are basically the set of things that must be true in order for your story to be considered "done."

However, in many organizations, there is a separate QA or test team that is expected to write test cases, run regression tests, and be able to trace their tests back to a set of documented requirements. The QA team often needs formal documentation in order to keep this all up to date. Now, some people would argue that they shouldn't be doing this, but for various reasons (regulatory or contractual, primarily) this is sometimes a real world requirement.

So for this situation, a set of detailed specifications is needed before any test cases are written, and the tests must map back to requirements. This typically means that business rules, user interface nuances, and other details must be discussed in the requirements, the specifications, and the test cases.

But doesn't this violate the Don't Repeat Yourself (DRY) principle? Why can't we skip the specifications, and just write acceptance tests? And given a full set of acceptance tests, slowly work towards automating as many as possible?

Well, one way of looking at this is that you've got increasing levels of detail and rigor as you work from Requirements to Specifications to Tests.


  • Requirement: The system shall accept orders from the web
  • Specification: Web Data entry form will take the user name, credit card, address, etc.
  • Acceptance Test: Login and go to the order entry page. Enter a credit card number. The system should validate it, and save the order to the database.

So when trying to communciate with other team members, you'd pick the level of detail appropriate to the task. Acceptance tests, especially the automated kind, are great for developers to exercise the system, but the format that's useful to developers may be difficult for stakeholders to understand.

The key is to know your audience. If you've got remote customers, you may need to communicate with documents, so here a functional specification has a lot of value. Similarly, if you're using an offshore development team, it's going to be even more important to write down the specifications in detail if you hope to get close to what you want.

On the other hand, a small team with onsite customers, and a commitment to automated acceptance tests might not need as much documentation.

Rule of thumb: Before writing any document, ask yourself "Who is this for, and how does it help them?" If you can't answer, or the answer is "No one, and it doesn't", then don't write it. If you have a clear need, go ahead and create the document, but be sure to have a strategy for keeping it up to date, or discarding it when it's past it's useful lifetime.


For more on agile tools and techniques: http://www.extremeplanner.com

Read: Are Functional Specs Redundant?


Saumil Annegiri

Posts: 1
Nickname: saumster10
Registered: Aug, 2006

Re: Are Functional Specs Redundant? Posted: Aug 9, 2006 1:13 PM
Reply to this message Reply
Hi,
I am currently documenting requirements for our off-shore team. This off-shore team does not have much knowledge / training about our system.

I was wondering if you have a template that you like / recommend for such an exercise with the offshore team.

Thank you and see you soon.

-Saumil.
Email: saumster@...

Flat View: This topic has 1 reply on 1 page
Topic: Is Off the shelf always the answer? Previous Topic   Next Topic Topic: Clients Deserve Simplicity

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use