Tuesday, September 11, 2012

The Dys-Functional Specifications


So what's functional about a Functional Spec?

These blueprint docs usually wind up having almost nothing to do with the finished product. Here's why:

Functional specs are fantasies
They don't reflect reality. An app is not real until builders are building it, designers are designing it, and people are using it. Functional specs are just words on paper.

Functional specs are about appeasement
They're about making everyone feel involved and happy which, while warm and fuzzy, isn't all that helpful. They're never about making tough choices and exposing costs, things that need to happen to build a great app.

Functional specs only lead to an illusion of agreement
A bunch of people agreeing on paragraphs of text isn't a true agreement. Everyone may be reading the same thing but they're thinking something different. This inevitably comes out later on: "Wait, that's not what I had in mind." "Huh? That's not how we described it." "Yes it was and we all agreed on it — you even signed off on it." You know the drill.



Functional specs force you to make the most important decisions when you have the least information
You know the least about something when you begin to build it. The more you build it, the more you use it, the more you know it. That's when you should be making decisions — when you have more information, not less.

Functional specs lead to feature overload
There's no pushback during spec phase. There's no cost to writing something down and adding another bullet point. You can please someone who's a pain by adding their pet feature. And then you wind up designing to those bullet points, not to humans. And that's how you wind up with an overloaded site that's got 30 tabs across the top of the screen.

Functional specs don't let you evolve, change,and reassess
A feature is signed off and agreed on. Even if you realize during development that it's a bad idea, you're stuck with it. Specs don't deal with the reality that once you start building something, everything changes.

So what should you do in place of a spec? Go with a briefer alternative that moves you toward something real. Write a one page story about what the app needs to do. Use plain language and make it quick. If it takes more than a page to explain it, then it's too complex. This process shouldn't take more than one day.



Then begin building the interface — the interface will be the alternative to the functional spec. Draw some quick and simple paper sketches. Then start coding it into html. Unlike paragraphs of text that are open to alternate interpretations, interface designs are common ground that everyone can agree on.

Confusion disappears when everyone starts using the same screens. Build an interface everyone can start looking at, using, clicking through, and "feeling" before you start worrying about back-end code. Get yourself in front of the customer experience as much as possible.

Forget about locked-in specs. They force you to make big, key decisions too early in the process. Bypass the spec phase and you'll keep change cheap and stay flexible.


5 comments:

swapna sri said...

Thank You! For sharing such a great article, It’s been an amazing article. It provides lot’s of information, I really enjoyed to read this, I hope, I will get these kinds of information on a regular basis from your side.

Blockchain Development Companies
Chatbot Development Companies
Blockchain Development Company in Bangalore
React native application development companies bangalore

Naaz Aniqua said...

Hi I like your blog. There is a lot of good information on this blog, I loved reading it and I think people will get a lot of support from this blog.

app development companies in Indianapolis

iphone apps development companies Indianapolis

Blockchain Development Company in Indianapolis

iot companies Indianapolis

Rohini dubey said...
This comment has been removed by the author.
Rohini dubey said...

Thank you so much for sharing such like this content.Really helpful and its giving lots of information.keep continue like this.Good luck

Top Blockchain App Development Company in Michigan
Artificial Intelligence company in Michigan

Best Mobile App Development Companies Illinois
Best iphone App Development Companies Illinois

swapna sri said...

I would like to thank you for your nicely written post, its informative and your writing style encouraged me to read it till end. Thanks
Naukri app development cost
Online movie ticket booking app cost
Hotel booking app development cost
food delivery app cost like zomato

Post a Comment