How to do anything
Many people, when faced with doing something new that they know nothing about, won’t ever get started. The project seems too daunting and they don’t have any context for even where to begin. In fact, in the very beginning, Justin.tv was exactly this type of problem.
When we first conceived of Justin.tv, it was simple to explain: we’d have a live streaming video feed of our exploits in San Francisco broadcast from a camera in real time to many viewers simultaneously watching on the web. It wasn’t as simple to figure out how to make this a reality, in fact, Emmett and I (it was just us at first) didn’t know the first thing about online video protocols, servers or infrastructure, cameras, or mobile network connections. At that point, we were simply two web developers with a year of experience building an AJAX calendar app. To us, the whole project appeared to be one big black box:
- Build Justin.tv
However, we could break this down:
- Figure out how to build a mobile camera that streamed video to one server
- Figure out how to ingest a video and stream to multiple viewers from our server
- Talk to an expert in hardware devices
- Research available mobile data transmission technologies
- Talk to a startup we’d recently met who was doing live streaming (to figure out what tech they were using)
- Investigate using a Content Delivery Network for streaming
I’ve found that when faced with a set of seemingly insurmountable challenges, the first step towards making it easier is to break things down into as large a set of small individual tasks as possible. In this case, our list of to-dos was broken down further many times. #1 lead us to Kyle, who became a cofounder and built the first streaming device (a computer that encoded video data from an analog camera). We learned that EVDO Rev A was coming to San Francisco, enabling us to send data at reasonable speeds over the cell networks (#2). Following up with #3 lead us to learn about streaming server options, and eventually choose #4 (paying someone else to stream our video for us). Six months after we first began working on the Justin.tv project full time, starting from a place with zero knowledge, we had a mobile streaming hardware device that sent video to multiple viewers, and launched our show.
This process is simple to apply to any set of challenges, from the fantastic to the mundane. Make yourself a list of what must be done and go through that list. For example, if you need to graduate from university and get a job so you can take care of your family, that probably entails a large set of smaller, more manageable things: getting decent grades in each of a set of credits, creating a resume, applying to jobs, practicing interviewing, etc. In turn, each of these things can be reduced to a set of smaller tasks that will seem more accomplishable: getting a decent grade in a class turns into a set of tasks including studying, writing term papers, and preparing for an exam. Often times, the first step in accomplishing your goals might be as simple as buying the assigned books for a class.
I recall a disagreement I had with a friend many years ago. My claim was that anything I set my mind to was achievable; he thought this idea was ridiculous. The point came up because he thought the idea of private spaceflight orchestrated by individuals would never work. Looks like I was right. You can achieve anything you set your mind to; doing so is just process of reduction.
If you are of a like-minded attitude, come build things at Exec.