Writing a development spec.

I taught myself to code before I originally started my company because I wanted to have the freedom to create an application without having to wait on someone to do it. I also didn’t have any money to pay to get it done. While I am glad I learned the basics, this was short-term thinking. Coding is different than engineering software capable of being used by large companies and thousands of people. I was in over my head, and decided I needed help. I found a co-founder who knew what he was doing.

After building the prototype we needed to show proof of concept and raise seed money, we decided to outsource our early development to a domain expert because we wanted to get it right. Hiring a freelance developer is overwhelming when you are non-technical the same way trusting a mechanic is difficult when you don’t know how to fix a car. I am grateful for my co-founder because together, we were able to do planning work that saved us lots of time and money once we handed the project over to our developer.

These are the three things you must do before hiring a developer to build your application.

Plan how the software will work.

The best place to start with making software is to make rough sketches of how things will work. Pick a feature, and draw what the first screen will look like. Then draw what a new screen will look like if a certain action is taken. Keep going until you have a hand drawn prototype of your application.

You can use an iOS app called Marvel to take photos of your drawings and link them together. This allows you you interact with your drawings like an app. Don’t get caught up with making sure everything is perfect. These are rough sketches.

Finally, if you know how to write front-end code, create a prototype in HTML. This will be very helpful to your developer later on when they are writing your application.

Write the logic for your software.

Now that you know how your first version will work, write it out in words. Each process or work flow needs two things: a user story and a login outline.

The user story describes how someone will interact with the process or feature. Write it the same way you would tell a story. Be sure to describe what happens based on the input. Most of programming deals with conditions: if this happens, do this, otherwise, do that. These can get complex depending on what your software does.

The outline is the same thing but is written in outline form instead of sentences. It looks like this.

  • User does this
    • If this happens
      • do this
      • and this
    • Otherwise
      • do this

This needs to fully describe the process or workflow, so make sure you spend time here. Do this for every process and workflow.

Assemble your development specifications.

Combine your drawings, user story, and outlines into an organized document. This becomes your development spec which you will use as your scope of work to get pricing and manage your software development project. Be prepared that your developer will have questions. As many times as my co-founder and I have done this process, we have overlooked details that our freelance developers have needed to create our project.

Spend as much time and necessary. Think about the features you need for the first version of your software. Make sure your instructions are clear. In the end, you will save money on paying someone to do this for you, you will have a clear set of plans your developer can work from to get the job done, and you will have knowledge about how everything works in your app.