Blog
Web Application Development Blog @ Armia Systems, Inc

How to Write Good Requirements for Your Startup

Posted by: Beth George | On: 1st Aug, 2019 | Startup

An excerpt from the upcoming book by Jon Skulemowski, Startup and DRIVE: How to take your startup across the finish line, a must read for all who are interested in startup consulting

Request a free consultation

Developers are never on autopilot

When it comes to organizing their feature set, many clients overlook the level of detail required to communicate them to a development team. This is especially true when it comes to explaining some of the finer details about what to build and how it should work.

two programming developersMany clients are satisfied with providing a “high-level” overview of their concept to a development team. This is basically a slightly more detailed version of the same thing that you would tell a neighbor or friend when talking about your business idea in casual conversation. To explain this to a developer as the only explanation of your expectations is very problematic, to say the least.

Sometimes people even ask for a cost of development with only a few minutes of explanation. Yikes! This is the same as asking “how much is it for a 3 bedroom house?” A realtor can give them a figure if they really want, but I’m willing to bet that the house the realtor has in mind won’t meet the client’s needs. The same goes for building an online platform. Without more detail on the requirements and layout of the site, neither party is going to be satisfied.

To be honest, a lot of people don’t really understand or appreciate the amount of time required to duplicate some of the most popular websites. When looking for a quote, many will just point to another website and hope that their chosen team can copy it, not realizing that it may take hundreds or thousands of working man-hours to do so.

For example, I often hear the request for PayPal.com or eBay.com to be duplicated. Those are monster web properties, expansive platforms not built by a single team alone and certainly not without millions of dollars in investor funding. Asking for a site based on this type of example is wildly expensive and impractical. Web sites of that complexity are a lot like icebergs: what you see and interact with is only a small portion of the site’s features. There are loads of things happening behind the scenes, both automatically and manually, to keep them organized and running smoothly.

Here’s the rub: the amount of time needed to create PayPal.com, with all of the features that it has today, is exactly the same amount that it took to create the PayPal.com that you see today. There are no shortcuts. There’s no magic tool for Xeroxing a website. No mystery cloning tool will allow a developer to cut corners and bypass the work that went into that gargantuan website. Only breaking into their servers and stealing the code will allow someone to do that. Quality programming takes time!

These first-time clients don’t realize that they are asking for an unethical developer to come in, nod their head a few times and never deliver anything near the client’s expectations. They’re walking into a situation where someone without any responsibility, commitment to workmanship or basic ethical center, will tell them what they want to hear and abscond with their money!

Draw it out

Personally, I find this part to be the most fun. This is the part where you take a printout of an existing website, or a professional mockup tool such as Balsamiq, or even a piece of paper and a pencil, and begin to diagram how the website will work. It sounds scary, but if you follow my suggestions, you will have a better idea of the finer details of your user experience and have a complete understanding of how someone will use your site. You will also have a full understanding of what you are expecting to receive at the end of your development process.

You’ll need three basic parts, all well thought out before you approach any professional development company:

  • A flowchart
  • Wireframes or rough drawings of individual pages
  • A priority list of features that your web platform will have.

Don’t Be Lazy!

The idea here is that you want to try and be as specific as possible. Do not be lazy.

I will say this again: do not be lazy.

No development team will complain that their clients were too detailed in their requests. You will not be offending anyone if you provide extra detail. The best day for a developer is when he or she knows exactly what to do and simply has to put his or her fingers on a keyboard and build it. The worst day for developers is when they have to put their fingers on a keyboard and build something in addition to having to figure out what it is they are supposed to build. Really, that is a lot harder–which means that the person building your site now has to change his or her focus from making the best possible code to trying to understand just what the client wants.

Don’t waste your time and money; be specific in what your website will need. You definitely want your development team to be making the best possible code, without any distractions. The worst thing you can do is assume that a development team, from any part of the world, understands your idea as well as you do unless you have fully explained it to them.

Flowchart

flowchartThe flowchart of your site is extremely important, because it allows you, step by step, to show how the platform needs to work and which pages need to be shown to the end user. You should be able to do this fairly easily with a pencil and paper or a whiteboard. The idea here is to have a diagram of every single page that your new website will have, in order to help your development team understand how things connect.

If your developers are experienced, they will understand that the home page will have several links to areas that are commonly found on many websites. Areas such as a registration process, generic pages for About Us, Contact Us and so on. They will also expect basic features such as “forgot password”, but you will never go wrong if you err on the side of detail.

As a bonus, you also want to provide a few notes for emails that will come out of the system at certain points. If the user completes the registration process, should they get an email thanking them? If they complete a purchase, should they get a receipt? Spare no detail.

Riff off of other people’s platforms

Feel free to look at other websites that have a similar flow or user experience. You should be able to get some ideas from related sites that will help you fill in the generic parts of your concept.

If you plan on selling something on your site, have a look at a popular shopping site to see how a visitor navigates from the initial page to check out. If you want to start a new social network, study how Facebook or Ning.com manages some of the features you want to include.

If you want to want to start a site that provides printed goods, it would definitely be worth your time to visit CustomInk or Vistaprint. The business term for this approach is “competitive analysis”. Musicians refer to this as “being influenced by” or “sampling” (if they’re bold). I call this repurposing; (I promise, this is not stealing).

Everyone does it. Do you think Mark Zuckerberg invented the profile page? No. There is no point in trying to reinvent the wheel, for what numerous smart people have created and made successful. Your job is to take their ideas to the next level for your target market.

Diagrams

When you have a flowchart of how your website will work, you need to have a minimum of five important pages of your website diagrammed in detail. Which are the five most important pages? That depends completely on how your site is intended to work.

If you have a dating site, I would definitely consider the profile pages as extremely important – both in how the user sees his or her page and how others see the member pages. The signup process page is also of utmost importance.

For most sites, with a few exceptions, the homepage is the most important page. Identify the critical pages for your site, by categorizing the ones that provide the solution you outlined in step one. [Discover your business idea and Refine exactly what you want to provide in terms of value to your new market.]

Typically, the homepage is not a specific part of the solution. It is generally only the first page people see in order to get to the specific solution you offer. Before you discount it completely, remember this: the reason people are on your site is because they want your solution, so give it greater focus.

Balsamiq is my favorite software for wireframing. It creates the most basic black-and-white images that you can line up next to each other; groups and aligns images to design the website you envision without the added detail of color or other distractions.

The idea of wireframing is that you don’t want to do a graphic designer’s work. Graphic designers and user interface experts do nothing but figure out how to make websites easy to use and attractive. This is not the goal of wireframing.

All you need to do, at this point, is to show your development team where you think things should go and on which pages. Once your development team begins working on the project, your user interface specialist can polish up the design for you.

Balsamiq is a great solution, but I also like to use a pencil and paper to just draw what I want. If you feel that using an online tool or a piece of software might be too difficult for you, feel free to draw by hand and make notes. The whole purpose of this is to get what is in your head onto paper for others to see. In other words, create a visual aid for the most important part of your site.

This process is similar to hiring an interior decorator. Yes, you know that a couch goes in the living room along with the TV. You know that the bed does not belong in the kitchen. An interior decorator knows these things too, but will also be able to tell you which way the couch should be facing, what pattern the couch should be in, what tables and lamps would work best with that pattern and what lighting would accent it best. Likewise, with your website, don’t stress about the details; let the professional(s) handle that.  

Feature Descriptions

list of items checkedOnce you have a flow chart of your site and some mock-ups for the important pages, it’s time to make a list of the features your website will have, starting with the most important to the least important feature of your website. What is a feature? A feature is an explanation of an item and where it exists in your project. Let’s use the Google.com homepage as an example.

There are four basic parts of Google’s homepage:

  1. the Google banner (which changes daily)
  2. the search field
  3. the button labeled Google search
  4. the button labeled “I’m feeling lucky”

If I want to write a requirement for the banner, I would say that the dimensions are 272 pixels long by 92 pixels high, and centered about one-third from the top of the page. As you can see, I listed both what I wanted the thing to be as well as where it would go on the page.

Many people approach requirements as only the first part, the “what.” However, the “how” or “where”, is also extremely important. Without the second part, the development team will not know how to build what you want.

If I had said, “the Google logo needs to go on the homepage”, it would never end up in the exact area that I want, unless I specify how it should be placed. Make sure that all the things that you want to be built, have both the “what” and the “where” in the description. Otherwise, you will cause yourself a lot of headaches and the expense of additional development time required, to correct your team.

By having a combination of the flowchart, page diagrams, and written description, you will have a very thorough explanation of your web platform that can be referred back to later on.

Admin Panel

One part that is very important, and often forgotten, is the administration panel. This is the unseen part that controls the entire website. Generally, you will be running your business exclusively from this area.

Do you need to be able to see user’s login information, reset the password or otherwise edit their account?

Would you like to see daily sales?

Would you like to edit the home page text or videos?

Do you want to create a new page or blog post? Do you want to be able to edit customer testimonials?

All of these major functions are controlled from the administration area. If you do not specify a tool to control a section of your website, please assume that you will not be able to control it.

Rank ‘Em

Remember, the R in the DRIVE plan stands for “rank”. Take your numbered list of features and order them from most to least important. Then, break these features up into three main sections. They do not have to be exact thirds, but as close as possible.  

Pretend for a second that we are making a birthday cake and there are three sections of the feature list: the cake ingredients, the baked cake and the frosting and decorations. In the first section, you want to identify the cake itself.

Without the cake, nothing that has to do with the cake really make sense. No one is going to eat a pile of frosting and candles, regardless of how good it looks, because there isn’t really anything to eat with that combination. On the other hand, no one really wants to eat a cake with candles stuck in, without any frosting. Although this combination is edible, it is boring and really disappointing.

Finally, who makes a celebratory cake without some sort of decoration? It might be baked and frosted, but without some sort of writing, candles or sprinkles, it just isn’t the same.

The phases of making a cake (or your website)

The first section will be called Phase 1. In Phase 1, only the features that will be required to solve the end users’ problems, will be included. Consider this the least amount of work needed that will still make your site usable.

Many times, the first phase will make up 50 percent of your list if it is detailed/focused. That is fine, as long as the features listed are 100% required. Under no circumstances, should secondary features be included, such as:

  • social media
  • fancy animation
  • anything that adds to the experience, but is not required to complete the main process of the site

There should be no enhancements listed here; only features that the website cannot live without. The industry refers to this as the “must haves”.

The second section will be called Phase 2. In Phase 2, features that improve the service will be completed. These are items that are not critical, but make the biggest difference to your customers. They either help your customers or make time spent at your website more pleasurable.

The sort of features that belong in this area are secondary to the site’s main goal but are still important to the overall site experience. Some examples are:

  • animated menus or videos
  • social media tools that help communicate to the major social networks
  • a complete user profile that allows users to list additional details about themselves

These things are actually important to your site; don’t minimize them, but decipher which parts are critical to achieving the site’s main project goal and which can be put on hold until that goal is achieved.  

The third section, Phase 3, is reserved for your “decorations”. This area is generally where the big ideas live. These features or ideas will make a huge impact on the site, but not before numerous project processes and elements are put in place first. Again, it’s really important to outline these, or else, you may quickly find yourself revisiting them if your development team is able to achieve the first two phases quickly.

However, the majority of the time, these “moonshot” type of ideas, simply need to wait until the most important items are finished. Usually, features that comprise this area are game changers for the business model or general scope of the site. They usually expand the site so much, that it greatly impacts the development of the first two phases.

I almost always recommend that these features are double confirmed by an existing market before they are built. Many times, even though they seem like a good idea at inception, the target market isn’t really enthusiastic about using them. Don’t take my word for it; ask them yourself (“test the existing market”)!

Why?

So why did we bother to rank all of our features? Having these three distinct sections will make it very easy for your development team to quickly understand what they are supposed to build. These three sections also identify which features you need to be completed immediately and which can wait. By breaking features up into three distinct parts, you can work with your development team to determine how long each individual area will take to complete. You can get a separate price for phase three and Phases 1 and 2, so you can budget appropriately.

In the past, I have worked with other clients who have given me one large list, without any priorities, and asked me to quote the entire list as one project. However, those moonshots I mentioned in Phase 3, greatly affect the entire cost of the project. Since many of those features are usually reconsidered somewhere in the process, either before or directly after launching the website, I have no choice but to give them a wildly inaccurate price compared to how the process would have naturally worked out by just asking for a price based on the most critical features.

This is a bit like building a custom home and asking the architect the price if your three bed, two bath home could be built with an Olympic-sized pool, an underground parking garage and a rocket launch pad. Chances are, you don’t really need these now to enjoy the main house. Also, if your architect will include these types of additional features when pricing your project, you may be disappointed by the answer your development team gives you as well.

LEAVE A COMMENT

-->