A New Development Process

For the solo programmer/designer entrepreneur

I’ve created a new development process with my most recent project that I’ve taken quite the liking to, not only because I feel so much more productive in its implementation, but also because of how much time it’s saved me in the form of rework. To preface, by no means do I claim this is a revolutionary process or one that hasn’t already been stated or outlined by another professional. I just feel this was worth sharing mostly because of how productive I’ve been in my own interpretation of this process.

1. Prototype

Create a prototype in the form of a rough if not medium fidelity mock. Download a free prototyping program like [Figma](https://www.figma.com/). I prefer using [InVision Studio](https://www.invisionapp.com/studio), which I used for this project. Create a few designs that put your ideas on a screen. Even if you aren’t a great designer, I think it’s best to try your hand at visualizing your design, otherwise ask a friend to help out.

If your basic structure seems too complex to express with the tools available, you might want to think about pairing back your feature set to keep your MVP slim. Remember that your prototype should resemble the minimum functionality necessary to express the value you’re providing to your target users.

Once you have a rough prototype and a well defined pitch, something that’s concise (2–3 sentences), workshop the idea with some friends. It would be better to seek out some people who would fit into your target audience and ask a few questions about what you have so far and get that critical initial feedback.

Don’t worry about someone stealing your idea. If you have a good product or service, it will be successful because of the vision you have for it and the work you put in. Iterate on this rough prototype in the same manner until you have a set of features that satisfies the underlying problem the project is trying to solving.

“Think about it this way: If you had to launch your business in two weeks, what would you cut out?”― Jason Fried, David Heinemeier Hansson, *ReWork*

2. Design your UX and find your design language

The one thing that has made my most recent project so smooth is the time I took creating my user interface in InVision Studio. It was a laborious and iterative task, but the payoff was invaluable in development time.

Much like the previous step, take the time to try your hand at flushing out the design to the fullest extent. This will at least serve as a good starting point if you end up hiring someone or having a friend finish the designs for you.

Make sure these designs get seen by a few people. It’s probably better that you ask someone who is less savvy with technology, so that you can confirm if your design informs them on how it should be used. Less “techie” individuals will help you pinpoint the parts of your design that make the least intuitive sense.

Also, this step is really critical because it is here that you are creating the design language for your product. If your UI/UX is clunky, then no one will use it, and if someone does they won’t make it past your login screen. Not to mention, it makes it harder to structure the internal logic of your app if you don’t know exactly how it’s going to be used.

3. Code your UI

For the software developers among us, this will be the easy and more enjoyable part. Start by programming just the ui elements, screens/pages, and routing between your views. If you need to display data, stub that data in way that allows you to substitute it with database data while refraining from architecting stateful logic. Focus on the layout and UI.

4. Add your app logic

Time to program the guts of your app. Fetch your data, add state, and update your models with that precious user input. Much like test driven development, if you’ve done the previous steps, the UI you’ve programmed should easily inform the logic you need to add to make your app function as you intended.

Another important thing to remember, you spent the time creating designs for your MVP and workshopping it with potential users, don’t be tempted to let scope creep stall you from reaching the finish line. Focus on the logic you need and think of “lacking” functionality as your next version’s features.

“Find a judo solution, one that delivers maximum efficiency with minimum effort. When good enough gets the job done, go for it.”― Jason Fried, *Rework*

5. Launch and iterate

Now I admit, my most recent project hasn’t reached this point yet, but there’s no reason you can’t use the previous steps to proof the next feature in a mock, design it, get user feedback, implement, and repeat.

Final Thoughts

Get started now. Do something. When you’re up and running with your product, iterate and test good ideas. Also, don’t be afraid to pivot or abandon your project. It’s not worth your time if it takes all of yours and gives you nothing in return.

“Reading is good, action is better.”― Eric Ries, *The Lean Startup*