views:

155

answers:

8

I currently work in a small business (15-20 employees, 5 programmers) where most projects are custom built CMS and a few web applications products.

Since I started working there, I have worked on many projects, but specifications for each project vary a lot. Sometimes we get a little detail, a Word document telling what the client wants, and what we are suggesting (suggested form fields, a short description of display, etc.). Sometimes almost nothing except "do what you think is the best approach for this project/module/request".

My question to you guys, who might work in different kind of businesses, is: How (huge pile of paper? Word docs? Visios?) and what kind of information do you get from your superiors, managers, teamates when starting a project (plenty of analysis, drawings, etc.)? How much detail do you get on this?

Hope my question is clear enough, thank you.

+5  A: 

Specs..that's kind of funny...how about never :(.

Seriously a lot of companies assume specs aren't needed, its absolutely unacceptable but this is how it is in a LOT of companies. They assume a one liner and the programmer knows what the program should do, the inputs / outputs and so on.

Unfortunately in my case I have to actually help write the specs..and Im the programmer :(.

JonH
I'm right down there in the trenches with ya, bud. I went from "everything is spec'd" during a summer internship to "spec? what's that mean" when I got hired on for my first job.
Matt G.
I feel ya. All I get is an excel sheet that I need to turn into a "database"
dotjoe
+2  A: 

I mostly get a lot of verbal direction and I use a voice recorder to record the conversation and transcribe it when I am done. I write my own specs from my customers' words.

Then, as a good consultant should, I take the writeup back to the customer and verify it, and get a signature and build it, and they live happily every after! (no they dont, they change their mind a 100 times)

Raj More
+1 for looking to work around a bad situation rather than just moaning about it.
Jon Hopkins
A: 

None - at least not from management.

Instead, as a developer (and particularly one leading a software project right now), I'm expected to contact my users/customers/etc and work directly with them to come up with our specifications and requirements. The documentation I do request from my team is only what will be useful to the team. I am lucky in that management rarely requests a document that doesn't make sense or won't provide some use to our project.

JasCav
A: 

Tell us what you do with the information no matter how small it is. I'm saying this because it sounds like you feel you are swimming around with wishy-washy requirements specs that increase your development time.

Here's a good question. Do you take those specs and create a mock solution so you can iterate with your customer to find out what they really want? Something in a different language perhaps so you and your management know they can not move forward with that as the solution. This is a good technique to use when your customer wants something but doesn't know how to communicate it back to you as a developer.

But to answer your question, very, very little. In fact, we're often told about requirements changes after we deliver the "final" product.

wheaties
+1  A: 

It can vary depending on what group the work falls under:

  1. Support request - If the change will take a short period of time and is fixing something broken, there is this group. This could be as simple as, "Add Bob to the list of authorized users for that ancient form" where the form is something written years ago and aside from adding and removing users, it isn't touched for fear of breaking things.

  2. Service Advisory Committee request - Items that are up to a few days are in this group as these are kind of like mini-projects as the request may be to create a new form or portal for a group. This could be upgrading some 3rd party software where we have some customizations that make the upgrade not necessarily a simple thing for Operations to do.

  3. Project - In this case there are usually a few Word documents and/or e-mail threads that help nail down requirements in terms of scope, budget, and time. These can take months though there is something to be said for having a prototype to change rather than creating the initial prototype to tell if requirements are really met or not. Course my current project is over a year old, still has a few more months to the timeline and already has a successor coming after it is done,i.e. there is a Phase II to go after Phase I.

  4. Uber project - These merit their own group of documentation and are the million dollar, multiple company projects that usually try to document everything up front rarely works out well here. Thus, there is some adoptioon of agile for these but there are still some growing pains to go through as how we use agile matures. Think installing a dozen modules of some off-the-shelf software that requires both internal and external developers to customize the suite for our specific needs as the software is supposed to be very robust, flexible and help save lots of time and money on how people otherwise do their jobs generally. Think ERP or CRM for a couple of examples here.

JB King
A: 

I currently have a half-dozen or so specs each 60-80 pages. One of them is 80 pages with no table of contents. Good times.

Frank Schwieterman
*sign*, moaning when there's no documentation, moaning when there is documentation... ;-)
Jon Hopkins
A: 

Our Product Managers and senior engineers prepare three planning docs for our data management software projects.

  1. High-level requirements: 1-to-3 sentence descriptions of hardware/software supported or specific feature for this project. (10-15 pages of Excel-like grids)

  2. Technical details: Engineering implementation of each high-level requirements. Up to a page for each, depending on amount of detail. (30-40 pages of filled-in feature details)

  3. Business agreement: Summary of 1 & 2 with engineering schedule and Product Mgmt's market analysis. Everyone signs off on this. (5 pages analysis, 20 technical)

I haven't seen work flows or other Visio-like details in our specs. The prioritized requirements and schedule prove critical, so we understand when to lop things off to save development and testing time.

Matthew Glidden
+1  A: 

We are a 16-person company that creates and supports customized software for small retail shop owners.

The projects we get fall into three general categories (as related to specs):

  1. "Here, automate this form." A sales person explains that our customer only wants this form to appear where they can fill it out and print it to make it look professional to their customer. Our specs is a single piece of paper that looks something like an order form or report. This is always false; they want pop-up lookups, automatic updating from other sources, and "while you're at it" add-ons that more than double the time. These, we've learned to just live in the moment and let the project take its course. By the time we're done, the program doesn't look anything like their original form.

  2. Small changes. Like a simple e-mail explaining that the background color is stale, or a request to sort a report by a different column. These, we just do as time allows.

  3. Big company integrations, where we're tasked with making our software work with some big outfit like Intuit (QuickBook) or FedEx (shipping rates). These often have well thought out documentation and sample code. We get 100's of pages in word documents or pdfs. The problem with these is when their specs are wrong. We find out about inaccuracies when we try to test or certify our integration. In these instances, we usually take longer in certification than we did to originally develop the processes.

In all cases, the real trouble is when a sales person promises a solution to the customer before even asking a programmer what it would take. As recently as 2 weeks ago, a sales person got into real trouble and had to issue a refund (that person is no longer with the company).