Free Online Articles Directory
18.11.2008 Sign In Register Hello Guest
Email:
Password:
Remember Me 
forgot your password?


Understanding the Specifications Puzzle

Author: Tim Bryce Author Ranking Gold | Posted: 21-02-2008 | Comments: 0 | Views: 20 | Rating:  (51) Article Popularity - Blue (?) Got a Question? Ask.
Sign Up Now!

"You like potato and I like potahto
You like tomato and I like tomahto
Potato, potahto, Tomato, tomahto."
Let's call the whole thing off."

- Lyrics by Ira Gershwin; Music by George Gershwin

Defining specifications for the design and development of systems and software is a lot like this classic Gershwin song and what I personally regard as the biggest cause of confusion in the Information Technology field for as long as I can remember, which is over 30 years in the industry. Some people say specifications should be based on the inherent properties of information, others believe it is based on a screen/report or file layout, yet others adamantly believe it should be based on process and data specifications. Interestingly, all are absolutely correct. The difference lies in the perspective of the person and the work to be performed. For example, how we define specifications for the design of an automobile is certainly different than how we specify a skyscraper. The same is true in the I.T. field where we have different things to be produced by different people; for example:

1. THE PROGRAMMER (aka, Software Engineer) requires precise specifications in order to develop program code (source and object). This normally takes the form of processing requirements (e.g., hardware configuration, types of transactions to be processed, volume, timing, messages, etc.) and physical data requirements (input/output/file layouts).

2. DBA (Data Base Administrator) requires precise specifications in order to select a suitable file management technique (e.g., DBMS) and produce the necessary Data Definition Language (DDL) for it. This normally takes the form of a logical data base model representing relationships between data entities.

3. THE ANALYST (aka, Systems Analyst, Systems Engineer, Systems Architect, Business Analyst) - requires specifications about the end-User's information requirements in order to design a system solution. This is normally based on a definition of the user's business actions and/or decisions to be supported. Following the system design, the Analyst produces the specifications required by the Programmer and DBA to fulfill their part of the puzzle. From this perspective, the Analyst is the translator between the end-User and the Programmers and DBAs.

Each party has his own unique perspective of the puzzle and, as such, requires different "specifications." To compound the problem though, the role of the Analyst sharply diminished over the years, leaving it to the Programmers to try and determine what the end-User needs, a skill they are typically not trained or suited for. To illustrate, I am reminded of the story of the IT Director at a shoe manufacturing company who received a call from the corporate Sales Manager asking for some help on a pressing problem. The IT Director sent over one of his programmers to meet with the Sales Manager and discuss the problem. Basically, the manager wanted a printout of all shoe sales sorted by model, volume, type, color, etc. The programmer immediately knew how to access the necessary data and sorted it accordingly thereby producing a voluminous printout (three feet high) which he dutifully delivered to the user.

The IT Director stopped by the Sales Manager's office a few days later to inquire if the programmer had adequately serviced the user. The sales manager afforded the programmer accolades on his performance and proudly pointed at the impressively thick printout sitting on his desk. The IT Director then asked how the manager used the printout. He explained he took it home over the weekend, slowly sifted through the data, and built a report from it showing sales trends.

"Did you explain to the programmer you were going to do this?" asked the IT Director.

"No," replied the Sales Manager.

"Aren't you aware we could have produced your report for you and saved you a lot of time and effort?"

"No."

This is a classic example of the blind leading the blind. The user did not know how to adequately describe the business problem, and the programmer asked the wrong questions. Remarkably, both the Sales Manager and programmer were delighted with the results. The IT Director simply shook his head in disbelief.

There are substantial differences between specifying information requirements and specifying software. Both have their place, but both serve different purposes. Whereas a true Analyst investigates the underlying business rationale of the information, the Programmer lives in the physical world and is only concerned with how the software will work.

It is not uncommon to hear programmers lament, "Users do not know what they want." They may not know how it should physically look or how it should best be delivered, but Users most definitely know what they want from an information point of view. Most programmers simply are not asking the right questions. Then again, they were not trained for this and are trying to compensate for the lack of true Analysts.

Remarkably, the Analyst function is experiencing a resurgence in the industry as companies are realizing that a higher level person is needed to understand the business and have a more global perspective of a company's systems and software. To illustrate, the process should fundamentally work like this:

1. Working with the User, the Analyst studies the business and helps the User specify information requirements.

2. From the requirements, the Analyst produces a system design which includes either a new system and/or modification of an existing system. As part of the design, the Analyst defines:

* The logical processing of data in terms of how it is to be collected, stored, and retrieved.
* The business processes affected, including the parts implemented by the computer.
* The design of the inputs and outputs.
* The design of the logical data base model.

In considering the computer processing, the Analyst determines which portions can be implemented by a commercial package or requires programming.

3. The design specifications are conveyed to the Programmer and the DBA for implementation.

4. From the logical data base model, the DBA designs a physical solution and produces the necessary Data Definition Language. The DBA passes on the physical file layouts to the Programmer for implementation.

5. The Programmer studies the software specifications and determines a suitable method of implementation, e.g., languages to be used, along with suitable tools and techniques for design.

For graphic, see:

http://www.phmainstreet.com/mba/blog/ss080225.jpg

The real beneficiary of such an approach is the programmer as the "guess work" has been eliminated for him. This may be an oversimplification of the overall process, but it is intended to show the vital role the Analyst plays and how it contrasts with the other participants. In the absence of such a person, the Programmer inevitably defaults to the role of Analyst and here is where specification problems begin to emerge.

This also hints at the limitations of "agile" methods. To their credit, the proponents of such methodologies recognize they are limited to software and, in particular, a single program. In doing so, they are trying to expedite the overall process of specification gathering in order to get to the job of programming.

In addition to defining the relationships between the various development functions, there is also the problem of developing a standard and consistent approach for recording specifications. This can be performed orally, but more likely it is recorded using a documentation technique to communicate the work to be performed and as a means to check the finished product to see if it does indeed satisfy the specifications. In the fields of engineering and construction, standards have been developed over the years to record specifications, such as blueprinting. But in the I.T. field, a myriad of techniques have been introduced with little or no standardization. For example, there are several different types of graphical and textural techniques, as well as repositories and data dictionaries to record and track specifications. Regardless, very few companies have adopted standards for recording specifications.

CONCLUSION

The problem with specifications in the design and development of systems and software is primarily due to a lack of standardization in the industry. There are a lack of standards in the areas of:

* Different types of deliverables resulting from the development process and how to format them (including specifications).

* Different development functions participating in the process, along with their interrelationships, and duties and responsibilities.

* Different perspectives of development in terms of the inherent properties of systems and software.

* Different methods, tools and techniques for performing design and development.

As long as there remains a lack of standardization in the I.T. industry, there will always remain a different interpretation of what specifications are and how to best document them. In other words, we'll go on saying "You like tomato and I like tomahto." So when do we call the whole thing off?

If you would like to discuss this with me in more depth, please do not hesitate to send me an e-mail.

"Good specifications will always improve programmer productivity far better than any programming tool or technique."
- Bryce's Law

Rate this Article: Current: 0 / 5 stars - 0 vote(s).

Article Source: http://www.articlesbase.com/programming-articles/understanding-the-specifications-puzzle-338839.html

Print this Article Print article   Email to a Friend Send to friend   Publish this Article on your Website Publish this Article   Send Author Feedback Author feedback  
Tim BryceAbout the Author:

Tim Bryce is a writer and management consultant located in Palm Harbor, Florida.
http://www.phmainstreet.com/timbryce.htm

He can be contacted at: timb001@phmainstreet.com

Copyright © 2008 Tim Bryce. All rights reserved.

Submitting articles has become one of the most popular means to drive traffic to your website and promote yourself and your business. Join us today - It's Free!

Article Comments

Comment on this article Comment on this article
Your Name
Your Email:
Comment Body
Enter Validation Code: Captcha


Related Articles

Screamers
By: Tim Bryce | 24/08/2007 | Home & Family
Discusses children in public places.

Understanding Effectiveness
By: Tim Bryce | 01/04/2008 | Management
Discusses the use of worker time and how it impacts estimating and scheduling in Project Management.

Recognizing the Peter Principle
By: Tim Bryce | 16/07/2008 | Management
Describes how to identify the attributes of the Peter Principle.

Apathy & Bonus - Today's Writing Habits
By: Tim Bryce | 31/08/2007 | Business
Here I describe how apathy affects us and how we are being conditioned to be so. Also, I have a Bonus section on "Today's Writing Habits."

How Well are We Preparing the Next Generation?
By: Tim Bryce | 28/06/2007 | Human Resources
In a word: Lousy!

Is "pride" Too Rigid?
By: Tim Bryce | 16/04/2008 | Software
Discusses the implementation of a robust Systems Design Methodology.

Craftsmanship in Business Systems Analysis
By: Tim Bryce | 26/02/2008 | Programming
Discusses how craftsmanship applies specifically to Business Systems Analysis.

The Adverse Effects of Technology
By: Tim Bryce | 05/07/2007 | Information Technology
Discusses the effects of technology on our socialization skills.

Got a Question? Ask.

Ask the community a question about this article:

Frequently Asked Questions

McAfee Backup - unable to backup files and folders
By: uganda | 23-10-2008
I am not able to backup my entire folder comprising of over 9000 files and subfolders using Mcafee Backup. The software only backups 845 files. Can anyone advise me where have I gone wrong  

Are non certified teachers allowed to teach students without a certified teacher present?
By: Bill | 23-10-2008
Cann Illinois students be taught in a classroom without a certified teacher present?

Contraband
By: James Norman Saxby | 21-10-2008
What food stuffs will not be allowed to be brought into Indonesia

Help: george mason university will not dismiss a parking ticket
By: rosie | 21-10-2008
My daughter has a handicap placard issued by the state of Virginia. While attending class at George Mason University she parked in a handicapped zone with the card hanging from her mirror as required. She was given a parking ticket by the univeristy and they refuse to dismiss the ticket which continues to grow in penalty cost. What should she do?

Is it possible for me to apply for a work permit ...
By: Carita | 20-10-2008
Is it possible for me to apply for a work permit on behalf of my fiance? Their processesing time is currently 4.5 months, so if he applies when he arrives, he won't receive it until after the 90 days are up. If I apply now and he comes in 4.5 months, he would be able to work from the time of his arrival.

Which one MA (MSc) or MBA is better for a BA (EPP) Student to become a Decision & Policy Maker at the Govt Level ?
By: Abdullah Barakzai | 19-10-2008
I have a question regarding MA (MSc) and MBA, actually I want to be a good policy and decision maker and want to work in high position in Government specially as a Director or in a Decision Making Board. So which one of the above courses are usfule and significant for me to become a policy & decision maker? Regards, Abdullah Barakzai from Afghanistan

Q&A Powered by:
Powered by Yedda 

Latest Programming Articles

Cool Desktop Wallpapers
By: Danny | 18/11/2008
Cool desktop wallpaper is accomplishments arrangement that displayed in the computer operating system. The wallpapers usually be acclimated in JPEG, BMP and GIF book formats. That wallpaper can be acclimated with Microsoft Windows, Linux and Macintosh Mac OS. Each adviser can be altered requirements, alike admitting wallpaper images advised for accepted monitors can be scaled up or bottomward to the fit size. Those are accessible on the internet for free. Some categories of wallpapers are a

Tips for Buying Software Online
By: Daniel Jowssey | 17/11/2008
Buying software online not only helps save the planet, it also has other benefits, including: * Ease and Simplicity. You can purchase software in your underwear at 4am if you really want to. Shopping online doesn’t have to be done within regular business hours, nor do you need to look your best to do it. It’s also easy to shop around for the best prices and takes less time than driving to the shops.

Mvc Design Pattern
By: TuVinhSoft .,JSC | 14/11/2008
Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (View) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface.

Advantages of Low Cost Contract Programmers in Freelance Programming
By: Joanna Gadel | 12/11/2008
It observed that web industry is getting tougher thus the necessity of freelance contract programmer is required for developing more effective website with flexible features. This article states the fruitful advantages of freelance programmers in contract programming.

A Guide to Cnc Kits
By: Martin Applebaum | 09/11/2008
CNC kits are a way in which to construct your CNC machine. This article will provide some information on these machines.

A Guide to Cnc Tube Bending Machines
By: Martin Applebaum | 08/11/2008
Are you familiar with a CNC tube bending machine? This article will shed some light on the main function and components of this machine.

Ways to Hire Dedicated Php Programmers
By: Jucick | 08/11/2008
It’s not at all easy to hire dedicated PHP programmers unless you know where and how to find them. Whether you need to fix, update or enhance your website you naturally want the job done quick and right.

Top 4 Reasons Why Addressing Web Accessibility is Important
By: Matt Cave | 05/11/2008
There are very high chances that web accessibility is more important to the performance of your web site than you realize. Article takes a look at the top 4 reasons why it would be important to address the issue of web accessibility.

More from Tim Bryce

Matrimonial Territorialism
By: Tim Bryce | 29/10/2008 | Marriage
Understanding the boundaries in a marriage.

Moral Decay
By: Tim Bryce | 14/10/2008 | Ethics
Discusses how Moral Decay affects business.

Going it Alone?
By: Tim Bryce | 26/09/2008 | Entrepreneurship
Discusses the differences in working for Big/Small businesses.

Recognizing the Peter Principle
By: Tim Bryce | 16/07/2008 | Management
Describes how to identify the attributes of the Peter Principle.

A Corporate Policy for Personal Electronic Devices
By: Tim Bryce | 09/07/2008 | Management
Describes a proposed policy for controlling personal electronic devices in the workplace.

Socialistic Management
By: Tim Bryce | 02/07/2008 | Management
Describes the problems of "flexible management."

System Design Backwards
By: Tim Bryce | 04/06/2008 | Programming
System Design technique which promotes "design correctness."

Stepwise Refinement
By: Tim Bryce | 29/05/2008 | Programming
Discusses the concept of refining a design using a blueprint-like approach.

Article Categories





Give Feedback

Sign up for our email newsletter

Receive updates, enter your email below