Senin, 20 April 2009

Importance of Proper Specifications

A specification (or "spec" for short) in the web and software development world, is a detailed plan describing the desired website or software program in detail, in such a manner that anyone reading the specification would be able to envisage to a high degree what the final product would be like.

Although specifications can come in numerous flavors, we will use the above description and definition as it is critical to understand the final product from the spec and be able to imagine it in its completeness.

One of the often-times over-looked purposes of a spec is for feasibility studies and marketing analysis. With the spec in hand, you can determine to some degree of accuracy whether the project will succeed or not, and/or whether there will be a market or not. This is wise to do before a lot of money is spent on development.

The main objective of a specifications document is to describe the project in detail. Who will interact with the program, and how? What will the website do? Are there any special reporting requirements? What won't the program do? Which actions can a person interacting with the site perform at any given point?

A good spec is in enough detail so that, if given to 10 different programmers, will give you 10 very similar products, and given to 10 potential vendors, will return 10 similar price quotes. If a spec is vague, you can expect to get vastly different end results and pricing structures due to different interpretations of the spec.

The more pictures in a spec illustrating the desired end result, the better. As they say, a picture paints a thousand words.

One of the most important financial implications of a good spec is scope safeguard. A loosely-worded description of a requirement is easy to add onto later. One party's interpretation could be different to another's, recollection of the past could be vague, etc. However, a spec with pictures of the end interface labelling every button, makes it very difficult for someone to add on a function later with the excuse that they didn't realize this part was missing earlier.

Once programming starts on a project, changes become exponentially more expensive and time-consuming as changes get introduced later in the development.

It really is difficult to stress enough how important good specifications are. Most people who understand this, had to learn the lesson the hard way in the school of hard knocks. A perceived 10% saving in skipping the planning phase of a project is not worth a potential 500% mushroom in unexpected changes and costs down the road due to scope creep or unanticipated issues.

There's an old but appropriate saying that goes: if you fail to plan, you plan to fail.

Andreas Huttenrauch
Internet Strategy Consultant / Web Architect
http://www.theworkingweb.com
"The Specification is Mightier than the Code"

Article Source: http://EzineArticles.com/?expert=Andreas_Huttenrauch

Andreas Huttenrauch - EzineArticles Expert Author