Written by Kevin Nguyen, iXperience '14 (Coding), Dartmouth

From idea to app

One of the greatest feelings in the world comes from building something cool that people can use. I arrived at iXperience early June knowing virtually nothing about web app development. Of course, I had spent time building a few sites for fun but I had never dug deep into the vast amount of material out on the web to build my own full-featured app.

Here's my story and what I learned developing my first Ruby on Rails app, Noteminders. Hopefully these lessons will help you.

It starts with an idea

Figuring out what you need to build is the hardest step. After the first two weeks, one of our TA's, Francois, told me we were gonna build an app in 2 weeks, which terrified the hell of me. Mainly because I had no idea where to start. I suppose it's a natural feeling when you have no experience and have no confidence in what you're doing.

Here were some best practices which helped me generate 20+ ideas:

  • Identify your interests For e.g., anything related to language-learning, meta-learning, behavioural change, productivity, or fitness went into my idea notebook.
  • Write down every idea... even if your ideas suck. Most mental blocks come from our own form of pressure. If you allow yourself to capture all your ideas on paper without censorship then you're almost guaranteed to have a few gems and that's all that matters. It doesn't matter if you have a ton of bad ideas because you only need to have one good idea.
  • Steal like an artist Every idea out there is a remix. Take bits and pieces from existing ideas. Get inspired. I keep a swipe file of product and site designs that I can always refer back to whenever I'm brainstorming. One site filled with cool products: Product Hunt
  • Identify pain points in your life and scratch your own itch. Solve a problem for one user (you!) and you win. Chances are high that there are other people out there just like you with the same problem.

App proposal

Session 2 didn't stop at idea generation; we pitched it to each other. Imagine: You're standing in front of a group of 20 people. Your heart's racing. Your knees are shaking and 40 eyeballs are staring at you, waiting expectantly for you to say something awesome.

I didn't bomb the presentation but I felt like there was much I could have improved. Looking back I would have employed these tips, courtesy of Salman Ansari, IX's inaugural head lecturer:

  • Pick your content. Tell a story (and your motivations). Paint a picture of your product in the real world. Know your audience.
  • Less is more. Focus on the essentials.
  • Be passionate. Not monotone.
  • Make brief (but regular) eye contact with audience.
  • Embrace silence.

Building the app

User stories first. Coding second. Repeat that 10 times.

It's super tempting to jump straight into coding but I've experienced enough hair-tugging frustration to know that a week of coding can save you a couple hours of planning.

Once you have a plan and start coding, use some of these tips to boost your productivity and maintain your sanity.

  • Do your most important work whenever you feel most productive.
  • When you get stuck, go for a walk or read. Just do anything that will take your mind off the problem. Some time off could help.
  • If you're still stuck after 1-2 hours of research, ask for help. I can't tell you how nice it is to have such awesome TA's who know their stuff (Thanks Isra, Francois, and Zack!).
  • If you're working in a group, check in and push your code to Github daily.
  • Follow Parkinson's law and set an ambitious deadline. If you give yourself 1 week to build an app you might fail but you won't fail entirely. You'll probably build something within the week. Expand that 1-week deadline to a year and your work might never get done. In our case, we set a 2 day deadline to get the basic app. We didn't make the app in 2 days but we made progress.

In the end, I think the most important thing isn't to build something that will make you famous or world-changing. It's simply creating. Just because you didn't build something that will change the world doesn't mean your work isn't meaningful.

In fact, if there's one thing you take away from this article it's that it's time for you to be more than just a consumer. Become a creator.

What's next?

Noteminders is far from finished. There's a lot of functionality that's missing that could improve the app. After returning home, I'll add photo uploads, service integration, text messaging, media queries and a total redesign of the site. I think an iOS app might be handy! Of course, I'm open to feedback. Ping me at vinh.15(at)dartmouth.edu.

 

Topics
iX Alumni Stories, iX Dartmouth Alumni