Building A Product In 32 Hours

Things we learned locking our team in an office for 32 hours.

A few weeks ago, we launched lists.io. With an awesome team of five, and the catalyst of a hackathon, we took an idea and launched a full working version in 32 hours of furious hackathon-ing. How, you may ask? Well, here are a few things we learned. Oh…and go signup at lists.io.

To set the stage, Lists is a simple and fun way to create and share lists of your favorite things.

Now, lets get down to business:

1. Simplify your idea

Every great product starts out with a big dream, and as soon as that dream is shared, it snowballs into a million features. When we first started with the idea for Lists, it quickly escalated as well. Luckily, we are all aware of feature creep and have gotten really good at just saying no. So we started cutting, backlogging, and by the end, our list of secondary features was much much larger than our list of core features.

We had less than two full days to launch a complete web app, so, in order to get something manageable we:

simplified Lists down to three views (Signup/Login, Profile, and List) and
four core features (Signup/Login, Create a List, View a List, Share a list)

Our goal was simple: finish. Narrowing our scope gave us an attainable target for our challenge. You’ll notice many basic features are missing: Delete Lists, Settings, Forgot Password, Reorder Lists, and many more. But the reality is unless people like the idea of using your core features, any secondary features are useless. If you ever want to ship your product, you need to start saying no, cutting back, and simplifying your idea.

2. Put together a well-rounded team

You need a little bit of everything to get off the ground. We were lucky to have just that in our small but mighty team of five. Jesse Rosato handled the backend engineering, Garrett Boatman the front-end engineering, Ben De Rienzo the design and pitch crafting, Josh Reeder-Esparza the front end, grunt work, and anything else we needed, and I (Jake Elia) filled in with product and some attempts at front-end help. We made an awesome team—a dream team, if you will. The necessary pieces to execute. Even better, we had all worked together and get along really well. Pick your team wisely. You need the right skill sets to get a product launched, but you also need the right chemistry. A bad apple can spoil the whole bunch.

3. Get a communication tool other than email

Email is where things go to die. We knew we needed to be in constant communication, pass files, share logins, share scripts, circulate ideas, and get updates. Email was going to fail us at some of these tasks. Luckily, we gave Slack a try and it turned out to be super awesome. We were able to communicate lightning fast, pass stuff around, and integrate with GitHub (bonus!) which let everyone know when commits were made and code was ready. This kept us all in the loop and made collaboration a breeze. For simple user stories, task lists, and wireframes, we used a whiteboard—we haven’t abandoned all old-school systems.

4. Use Frameworks

We used Symphony, Twig, and Bootstrap. These gave us great starting points to build from and made getting up and going super quick. Despite the stigma, there is no shame in using frameworks. Again, until you can prove people want what you have, don’t get caught up in needing to one-off some amazing technical feat. As Jesse likes to say:

Stand on the shoulders of giants.

5. Divide, Conquer, and Trust Trust your team to execute.

Once the plan is in motion and heads are down working, don’t worry about the result. As soon as the clock started, we were all able to focus on separate tasks and trust that the pieces would match up. At this point we had a simple idea, an awesome team, great communication, and solid frameworks. All that was left was to put those pieces together. Don’t over analyze, don’t put your hands in other peoples’ cookie jars—just knock your stuff out and know that your teammates will do the same. If you can’t trust your team to execute on a shared vision then you shouldn’t be building this product with this team. Find something else to do or graciously go your separate ways.

6. Don’t waste time thinking about:

  • Competition
  • Monetization
  • Pixel-Perfection
  • Secondary Features (if they come up, backlog them and move on)
  • Marketing
  • Getting rich
  • If people will like it or not (you’ll find out soon enough)

Lists is by no means a perfect product. It is not anywhere near finished and as I type this, we are pushing even the most basic improvements. But it is launched. And actually launching something is not easy. Some people never get there. So I am incredibly proud of the team that did it. And I hope some of the things we learned along the way will help you do it, too.

Oh…and go signup at lists.io.