Recently, I was asked how I turn ideas into reality. At PINCHme (my last role), we had a product/project team to take care of that for me, but when I’m on my own and I have a freelance gig to manage on my own, I do things a bit differently. I wrote quite a lengthy response, so I figured I’d share it with you.
Typically when I have a really good idea, I write it down, either on a sticky note, my notebook or evernote, just so I don’t forget my brilliant idea. Once i’m ready to turn my brilliant idea into reality, I usually draw it out, either with pen & paper, or on a whiteboard.
I usually start with a wireframe, a user story and draw out the data models. Once I think I have something that looks somewhat good, I’ll draw out some low fidelity prototypes and maybe use something like POP to draw out a site map. I find this to be the quickest way to bring my idea to life. It also helps me keep track of a bigger idea without missing important pitfalls.
Once the lo-fi is done, i’ll use something like Invision, Flinto or Sketch to start making a hi-fi prototype. I find this is most useful when discussing likes, dislikes, design and possible features. It’s better to tackle these things before you get started, otherwise you’ll end up with a lot of wasted time and money.
It’s so much simpler to go in with a plan, so I’ll take this time to review my prototype, user stories, my data models and what an MVP might look like. I’ll open up something like Jira (for larger applications) or Trello (for smaller applications) and start writing out things I need to do. I’ll typically have 4 columns, “icebox”, “todo”, “in progress” and “done”. All my cards begin in the “todo” column. I’ll write out requirements, attach necessary files, documents and descriptions. So far so good!
With all that planning done, I can simply follow the cards and use my hi-fi mockup as an example of what my app should look like. This keeps me focused on a specific task and reduces blocks in development due to lack of planning.
This is usually a good time to set up Code Climate, Travis, Hound, Code Climate, Bugsnag, honeybadger, Heroku (for new apps or toys because it doesn’t require much to setup), AWS (for larger apps) and slack integrations. I like to use the thoughtbot production checklist, no point in reinventing the wheel, especially when some really smart guys made this wheel!
While i’d like to say this is a perfect science, sometimes, things just don’t go according to plan. Sometimes I make mistakes. (╯°□°)╯︵ ┻━┻
Usually a post-mortem takes place, followed by some high-level discussions about how to resolve the unnamed issue. lo-fi, hi-fi, make some cards. back on track!
I try to make something that is deliverable as quickly as possible (MVP) and if it’s satisfactory, deploy it. I’ll start building out features and rolling out updates as quickly as possible. Once the app is finished, I celebrate. Once I have finished celebrating, I maintain the app, think of more features, build those. Hopefully I planned for scale, if I didn’t I go over the planning process all over again, into infinity.