We continue defining our product in this episode.  Our prior episodes looked at the problem to solve, the solution, and general requirements.  Now we can move on to the product specification and deciding on the environment we will use to create it.

  • Design the application structure (core, data model, methods/functions, helpers, screens/output)
  • Challenge: Create the specification from these decisions

Choices, Choices, Choices

The modern landscape provides a seemingly infinite combination of choices when we consider languages, data stores, platforms, delivery method, and the other variations available to a solution.  There are several things to consider in making this decision.

  • Languages you know (or want to learn)
  • A Suitable platform for your customers
  • The cost to you and thus customers
  • Speed and reliability
  • Maintainability

It may appear that there is no single answer to this decision.  That is correct.  The decision may make the solution better or worse to create and deliver.  However, there are many reasons you may choose a path that is not the easiest nor even the most obvious.

The Data Model

The specification can start from the data or the user experience.  In any case, at some point the data you will capture and manipulate needs to be nailed down.  When you are building out your model there are several things to consider.

  • Core data properties: What data do I need?
  • Data types: Is this a string, a number, a formatted value (phone number, zip code, street address, etc.)?
  • Data relations: How will I report on this data and do I need to link core data facets to each other?  If so, then what data will be used to make that link?
  • Lookup data: Where do I need to provide a list of values for a data value?  Common examples are state names, titles, status values, and more.
  • Seed Data: What data do I need to create in order for the application to be useful?  Do I need to seed a master account profile or type values?
  • Audit: Do I need to be able to track changes to the data?  If so, then at what level and how much detail is needed?

The User Experience

The other key piece of a specification is essentially the user experience.  This includes the look-and-feel specification.  However, that is just the tip of the iceberg.  The navigation options and locations need to be thought through.  The way that notifications and system messages are displayed is another key part of the application interface.  This also includes system level interfaces like logging to a file or database.

This is where you will specify the screens and flow of the application.  These pieces are key to the specification because they will often constrain the way it will be implemented.  When these are not properly specified it increases the risk of coding yourself into a corner.

Your Homework

Your homework this time around is to create your product specification.  You should be able to knock it out in less than an hour.  Also, you are welcome to send an email to us for feedback or suggestions to help you along.  I have been building a product along the way and you can see my product specification in the document below.  Feel free to use it as a starting point or to give you some ideas on how to approach yours.

ProductCreationWorksheet-Episode3

Rob Broadhead

Rob is a founder of, and frequent contributor to, Develpreneur. This includes the Building Better Developers podcast. He is also a lifetime learner as a developer, designer, and manager of software solutions. Rob is the founder of RB Consulting and has managed to author a book about his family experiences and a few about becoming a better developer. In his free time, he stays busy raising five children (although they have grown into adults). When he has a chance to breathe, he is on the ice playing hockey to relax or working on his ballroom dance skills.

Leave a Reply