“What would you like?” Software Requirements Specification.

Posted by on Sep 10, 2012 in Blog | No Comments

“If you don’t understand the user’s requirements, it doesn’t matter how you code it.” Ed Yourdon.

Working as a freelance I realized my potential customers usually have problems regarding software specification. Most of them are regarding the specifications of their projects. Professional customers don’t have these problems. Not professional customers very often tell me:
“Hey I want an app to bla bla bla with bla bla bla. How much does it cost and how long will it take?”
And when I say “bla bla bla”, I really mean these exact three words.

Of course I have absolutely no idea about the price and timeframe for an app that has not been specified and I don’t know (well, I know 3 words). And even if you specify it, I can only tell you an estimation, never an exact price or timeframe. Neither I, nor can anybody. So there are three possibilities:

  • Write a software specification document, with main features or functionalities, with mockups/wireframes and a scene flow diagram. With this information I can understand the scope of the project and tell you some estimations about cost and size (remember, estimation, not exact price or timeframe). If you need help with this task, I can help you. You can write Use Cases, just a list of requirements or follow one of the many templates you can find on the net. There are websites where you can draw mockups or wireframes. There are templates for Keynote, PowerPoint or Photoshop with iOS common controls. There are templates to write requirement documents.
    Look for IEEE 830 Requirements specification template, in DOC or PDF format.
    My projects Tap-Track and WordLayer have requirements documents as well as mockups and scene flow diagrams uploaded in their portfolio pages. Use them as you see fit.
    Here some interesting links to create mockups online:
  • You don’t have clear specifications and you don’t want them. You prefer to follow a try and error approach, which sometimes is ok when deploying new business models, websites or start-ups. In this case, the question “How much does it cost and what is the timeframe?” doesn’t make any sense, so you have to pay my services using a fixed hourly rate. But be careful, there are a few dangers you have to know. Scope can degenerate and cost can sky rocket. Read these two important pages to understand what I mean:
    In this case, risk and responsibility only belongs to you, that’s the reason why if you chose this approach, I will only work at a fixed hourly rate.
  • A combination of these two approaches, trying to take the best of them. Defining a project entirely from the beginning is complex and there are many unknowns, and perhaps you want to try some features before implementing them fully. So, try to define as much as you can and then start developing it. And while the project progress, try to define all the unknowns. In this case, an estimation is also complex but your budget will be more controlled than if you have no idea about your requirements. This is a very practical approach and it’s what my customers usually follow. Use the resources as you need them described in the first point.

Apart from those three possibilities, there are also other domains that require different techniques, for instance, when developing a game, a GDD (Game Design Document) is very important. You can to write a Game Design Document, where you talk about game mechanics, elements, enemies, logic, physic, characters, actions, scene flow, scope…
Look for “Game Design Document Template” in DOC or PDF format on the net.
Here you have the Grim Fandango Game Desing Document:

That’s all.
Do you have now a better idea of what you want?
I hope so!

If you have any questions, write a comment or use the contact form.

Leave a Reply