Zack Wilson

Getting Started on Your Startup - Idea to Realization: Part 1

May. 5, 2016

i·de·a - a thought or suggestion as to a possible course of action.

Ideas get thrown around a lot these days, but there's no clear protocol for talking about them. You hear it all the time, you’ve probably even said it yourself; “I have a million dollar app/startup idea.” Now this is just an expression people use because it sounds more exciting than "I have a good idea," but it also promotes the misunderstanding that ideas in themselves can be worth something. An idea only has value when combined with proper execution.

The purpose of this guide is to help hopeful entrepreneurs identify what "phase" their idea is in, and provide basic steps to add value through execution.

Phase 1 - Ideation

An experience, conversation, or some creative thinking brings a problem to light, and you think, “this [problem] sucks, it would suck a lot less if…” and boom! The idea hits you. It might have been a more eloquent revelation than that, but you get it. At this point you're not sure how good the idea is...but let’s assume that you like it enough to find out. So what now?

Talk to people about it

Your friends, family, coworkers, professors, etc. First explain the problem and how it led you to the idea, then you can discuss the possibilities. Many polite friends will say "it sounds great," so try to be objective in your conversations to incite some productive feedback and collaboration. Some won’t like or understand it though; develop a tough skin and take note of the holes they poke.

Do some research.

Go Google crazy to find out whatever you can. Mainly, does this already exist? If it doesn’t exist yet, why not? It helps to be a domain expert yourself, this step will be much easier. If you're not, get comfy because you've got a lot of studying to do. That, or get a trusted expert to help out.

Stop to re-envision the product.

Its very unlikely that your original idea made it through research and feedback unscathed; use your new understanding to shape the new and improved version. If you struggle with capturing the vision, Phase 2 will help.

Phase 2 - Conception

You've identified the problem and found that your idea for a solution is unique (or better than existing solutions by at least 10x). After spending some time explaining it to your friends and getting feedback, you can picture it in your head. Phase 2 is all about collecting your thoughts and getting them down "on paper." Writing it out forces you to think through the details, and will serve as a rough beginning for your business plan.

Expand your why.

Start by writing out every why you can think of. You might have an overarching problem, but what are all the reasons that problem sucks so much?

List out the who.

Identify your customers/users and other stakeholders. Ideally you yourself are the target user, or at least you understand the target user very well. Who thinks this problem sucks? Who else benefits from this problem being solved? Also, who is your competition? Be as specific as you can with these, "this helps everyone" won't fly...unless you can prove it. On the other end, having a very limited and specific who can be dangerous as well.

Identify the how.

Think, how can my idea help the who with their why? By assigning a how to each why and who, you’ll effectively be building a list of features/functionality. Brainstorm the hell out of this, exhaust yourself with how's. Don’t worry if some of what you come up sounds crazy/impossible, write them all down and then go through to prioritize.

Wrapping it all together

Now that you’ve got all that down, you should now be able to say what this really is! You don’t have to name it or anything yet, but you know enough to give the clearest possible answer to, “what is your idea?” You’re going to validation next, which means talking to people about it, which means you need to know what it is.

Cover it all with where and when? Sure. You should identify where the best place(s) to test/launch (preferably wherever you live), and where you could go next. This is a bit of a stretch, but when could help shape marketing strategy. If you can identify when your who experiences the problem, you’ll get an idea of potential avenues to promote your solution.
Sketch it out, and don’t worry about it being pretty, for now. The idea is to map out the general flow of how the who’s will use what-ever you’re building.

To be continued...

Part 2 of this guide will be coming soon - get ready because it only gets harder from here.

Hungry for more? Here's some stuff to keep you busy and prepare you for Part 2:

  • Wireframes- The rough sketches you made serve as a good foundation, but you'll need something more official from here on out. Phase 3 is all about validation, and its hard to sell someone on notebook doodles. Wireframe creation is a whole practice in itself, but you can find enough tips and tools online to get you started.
  • Pitch decks- If wireframes represent your product, a pitch deck will represent the business. You're going to start testing/selling/pitching soon and you'll want to have something to point to. You can find tons of resources online for this as well, but you're essentially laying out your 5 W's + 1 H in an organized, professional, and convincing presentation.
  • Team- As mentioned, the next couple phases are a doozy, especially if you're a team of one. Identify your own strengths and weaknesses, and seek out others that compliment your skill set. The right co-founders can make a world of difference, but can be hard to find. That doesn't mean you have to give all your ownership away though; advisors and mentors are great. We'll cover 'building a team' another time.

Zack Wilson

What People Are Reading



Good Founders Make Good Clients - 5 Traits We Look For

“Ideas are easy. Implementation is hard.” – Guy Kawasaki

As a development agency that primarily works with early stage startups, we hear all kinds of business ideas. You could even say that we're in the business of building business ideas; but only one's we believe will succeed, and not on our own. We know that, without a good founder to drive implementation, even the best ideas will surely fail. In fact, most give up at the first sign of real challenge, and their ideas never see the light of day. So while we spend time evaluating the viability of the idea, we must also consider if the founder has what it takes. Here are the 5 traits we look for:

1. Tenacious belief. Some traits can be learned or honed; this is not one of them. Startups are inherently difficult, demanding, and full of unknowns and disappointment. To make it through, a founder needs confidence, determination, passion, and the like - things you can't have without first believing. We're not talking about simply believing you have a good idea. We're also not talking about blind belief to the point of delusion. This is believing strongly enough in your vision that, despite the uncertainties and inevitable struggles in your path, you will do whatever it takes to see it through.

2. Domain expertise. Serious founders need to understand their market as much as possible. Ideally, you can directly relate to the problem you're trying to solve - or - you have extensive experience that gives you insight on your target market. Even then, the best founders do everything they can to consistently learn and absorb new information.

3. Communication. The greatest entrepreneurs are masters of communication. Not all start out that way, but its something to be conscious of and constantly improve. A good founder has the ability to communicate clearly, confidently, and candidly. They can clearly explain their thoughts and ideas. They use confidence to sell themselves and their vision, as well as to lead others. They can candidly express their feelings, while maintaining control of their emotions.

4. Head in the clouds, feet on the ground. Growing a startup requires constant innovation. A good founder has vision; they dream big and consistently ask themselves, "what's next?" However, that vision will never materialize unless a founder can execute in the present. A good founder can keep their eyes to the future while practicing self awareness, focus, patience, and responsible decision making.

5. Flexibility. The survival of a business, like in nature, depends on its ability to adapt. No matter how much a founder plans, new information will arise and circumstances will change; a good founder is prepared and willing to respond. Some changes will inevitably result in failures. A founder must have the resilience to pick themselves up, learn from the failures, and push on.

6. Enjoys the ride. I know I said 5 traits, but this one's pretty important too. Yes, starting a business is difficult, risky, blah blah blah...but what's the point if you can't enjoy it? Having fun will not only make your life (feel) easier; attracting advocates, customers, employees, and investors will be easier as well.

Now these aren't the ONLY things a founder needs to build a successful business, nor do they guarantee success, but we'd bet on you. So if you have a great idea and "what it takes" (see above), we should meet.



Watch us eat our own dog food

20spokes is trying a new diet, so to speak. If you’re unfamiliar with the phrase “eating your own dog food,” it’s a common expression in the software world referring to a developer’s practice of using their own products. It’s said to have originated from 1970s television advertisements for Alpo dog food, where the owner of the company would make a point of feeding Alpo to his own dogs. So in its broader interpretation, “practice what you preach” would be an appropriate alternative. Either way, if we can help others build great products, we want to show that we can build our own great products as well.

It’s something we’ve thought about for a while, and now we’re finally taking the steps to make it happen. Client work will still always be our primary focus, but we have the team, the experience, and the aspirations; why wouldn't we work on our own ideas too? Like our clients, though, we don't want to jump into these ventures haphazardly only to end up with a well built app that nobody else wants. So we're putting these ideas through the same process of discovery, validation, and planning that we would with anyone who came into our office. In a way, by becoming clients of our own process, we’re getting our first helping of dog food!

Over the last week or so, we’ve adopted the mindset of a founder with a vision, and taken one of our ideas through the first steps of conception. Working through this process as the “founder” has already given us some great new insight, and we're excited to share this journey with you. So stay tuned for the next several weeks as we document all the steps we take and lessons we learn along the way; we're going to find out just how good our dog food tastes.

Trying to get your own product idea to market? Contact us to learn more about our process and how we can help.



React Lessons for Newcomers

At 20spokes, developers spend a roughly equal amount of time between Ruby on Rails and React. While we enjoy working in both frameworks, they are quite different in approach, and going from a Rails way of thinking to a React way of thinking can be an adjustment.

One major way in which these frameworks are different is that Rails takes care of a lot of architectural issues that React leaves open for interpretation. Coming from a Rails background, I found the openness of React to be a bit anxiety-inducing at first, but I've come to really embrace it, because it's forced me to think more carefully than ever about how other developers would approach my code.

As a team, we've also considered what our best practices should be towards React, as we all want to make our code understandable and friendly to anyone who encounters it. To that end, below is a (growing) list of our approaches to making our React projects not only maintainable, but enjoyable to work with.

Be relentless with components

The basic building block of React is the component. To those new to React, they can best be thought of as modules.

As a developer, I start to get nervous when I see large components that perform various functions. The solution to keeping your files short and sweet is to take every opportunity to break your objects into re-useable components. Having larger components may not seem like a big deal when starting a project from scratch, but if you relentlessly component-ize you'll thank yourself as your project grows.

There are some code smells to recognize when you should create new components. If you see lots of groups of markup within a single div, those groups should probably be their own component.

If we have lots of renderXXX functions within in one component that render more markup, that's usually a code-smell that whatever is being returned from those functions should be their own component.

Make components as reusable as possible by passing dynamic data as props.

Privilege functional components over class-based ones

In many cases, it's overkill to Use React's Component class for every component you create. Not all components need access to the Lifecycle Methods or local state that Component provides. Start with stateless functional components and turn them into React Component instances as needed.

Take advantage of PropTypes

We started the practice of listing out PropTypes at the bottom of every component, so other developers can quickly reference what props are needed or optional. Oftentimes, we'd investigate what data we should expect in a component by looking up examples of that component elsewhere in the codebase. This easily can be avoided by using PropTypes, which provide a quick way to see what data is being passed, and of what type that data should be. Here's an example from our reusable Button component:

Button.propTypes = {  
  text: PropTypes.string.isRequired,
  onPress: PropTypes.func.isRequired,
  disabled: PropTypes.bool,
  icon: PropTypes.string,

We're pointing this out because, while Facebook already notes it as a best practice in their documentation, it's something that's easy to skip over or forget to do. But for something that's not hard to do at all, it provides a lot of value when developing and maintaining your app.

Use Lifecycle Methods with care

Despite being incredibly powerful, lifecycle methods (like ComponentDidUpdate) can cause a lot of headaches to those new to React. Be careful when updating state or props within these methods, as it may cause infinite looping.

For this reason, I prefer to place lifecycle methods at the very top of a component declaration, so I can see all of that logic together when debugging.

Check out part 2 of this series, Redux Lessons for Newcomers.