Thursday, 16 April 2009

Start-up tips

I came across Gideon Greenspan some months ago (http://www.gidgreen.com) and he's done some very interesting things. On his website he offers some very useful tips to start-ups:

How Do I Find Good Ideas?

Here are three common approaches to coming up with new ideas, with some of my own examples listed alongside:

  • Solve your own problem (Google Alert, Email Merge). If you need something which doesn't exist yet, you're probably not alone. Just make sure you're not too focused on a tiny niche you happen to be in. For example, the world of people who research online is big enough, but the world of Web 2.0 developers is probably not.
  • Listen to user feedback (Copyscape, NameCleaner). If you offer one product for a particular market, its users will often suggest the need for something related. This will only happen if the first product works well and invites user feedback. If you don't yet have a product, create something simple and see where its users take it.
  • Spot emerging markets (Web Sudoku, Carbon Catalog). New markets lack hefty established players, so there's a lower barrier to entry. You can learn about breaking trends from tons of free online sources. But it's also worth subscribing to top international publications such as The Economist, BusinessWeek and The Wall Street Journal.
The key is to listen carefully and objectively to what the market and your users are telling you.

Where is the Real Money Online?

If you look at web startups building real businesses, and not just praying for an "exit", three models appear time after time:

  • Vertical-specific aggregation. Collect information from multiple sources relating to a topic, then re-present it to users in a more useful way. This will attract highly targeted traffic, to which you can advertise and sell products or services. In some cases, you can sell the content itself. You'll probably need to build a data mining and content analysis system which is tailored for your needs. In some cases you can leverage a community of people which is willing to help. Some examples: Farecast (flights), Fixya (tech support), Mint (personal finance), Octopart (parts), RetailMeNot (coupons), Retrevo (electronics), Seeking Alpha (markets), Trulia (real estate).
  • Tools for website owners. Create something that makes life easier for site owners, or helps them earn money. You can then upsell a subscription-based premium version, or take a cut of money changing hands. These products are automatically viral, since sites which use your tool advertise it to their visitors. Some examples: Conduit (toolbars), Copyscape (plagiarism), JotSpot (wikis), Ning (social networks), OpenX (ad serving), WuFoo (forms).
  • Peer-to-peer e-commerce. Create a platform and marketplace for direct buying and selling of a certain type of good. Take a percentage of transactions and/or charge for advertising or premium listings. Once you've tapped in to a community, word will spread fast. A key challenge is building trust via appropriate reputation mechanisms. Some examples: Associated Content (content), Betfair (bets), Etsy (handmade), Prosper (loans), StubHub (tickets),

Naturally there are many amazing companies, like SmugMug and LinkedIn, which don't fit in to these groups. But I wouldn't go building yet another social network, and hoping that the people and profits will come. Even the mighty Facebook is struggling to make money from its users.

Combining 2 or 3 of these categories can make for an amazing business. For example, Google aims to aggregate "all the world's information", the largest vertical of them all. Google also offers dozens of tools for website owners. One such tool is Adsense, which facilitates peer-to-peer commerce in traffic between sites.

Does my Startup have "Technology"?

The world of software and web startups has become brutally competitive. Ideas on their own are worthless - if you've had a great idea, you should expect that many other people are working on it already.

Technology isn't enough to make your startup succeed. But it's a great way to gain an edge over the competition. Having technology means you have solved a difficult problem. This makes your product hard for others to reproduce.

Most startups claim to have technology, but few actually do. A ton of code is not technology, no matter how well-designed and bug-free. It only becomes technology once it solves a tricky, sticky problem.

Below are some common types of problems that can be solved with technology: (technical terms ahead...)

  1. Complexity. It's not easy to represent the complexities of the human sphere in the binary world of computers. How do you identify a spammy email? Recognize the faces in an image? Create an enjoyable Sudoku puzzle? Identify the most relevant content on a web page? This stuff is deep, and goes beyond undergraduate Computer Science. Common approaches include Bayesian Networks, neural nets, Markov models, clustering, heuristics and support vector machines. You can get started with Programming Collective Intelligence (book).
  2. Scalability. Many tasks are easy to perform for small cases, but become dramatically harder at large scales. Storing and retrieving 100 small images is easy. Providing random access to satellite imagery for the entire Earth is not. The same goes for routing messages between millions of IM users, or keeping a record of billions of cellphone calls. Common methods include data partitioning (horizontal and vertical), replication, synchronization, indexing, failovers and load balancing. For a detailed example, check out Inside LiveJournal's Backend (PDF).
  3. Performance. This is about making a system more efficient, without altering its fundamental design. The goal is often to reduce the response time for a task. The motivation may also be economic - to save on memory, disk space and CPUs. Optimizing performance is an incremental process of identifying and removing bottlenecks. Common techniques include profiling and rewriting code, compression, caching and preloading. Leveraging multiple platforms can also help, e.g. by replacing a critical section of PHP with some C++ code which uses bits and pointers. For an extreme example, read chapters 17-18 of the Graphics Programming Black Book (online).
  4. Compatibility. Most mature products interface with pre-existing data and systems, and support diverse groups of users. An instant messaging service connects to AIM, ICQ, MSN, Yahoo Chat and Google Talk. A word processor checks spelling in dozens of languages. Websites are viewed in multiple versions of Explorer, Firefox, Safari and Opera. A price aggregation website scrapes content from hundreds of other sites. In each of these cases, a lot of work goes into supporting all the variations. The deeper challenge is to find an appropriate abstraction to minimize the work required. For a concrete example, read Joel Spolsky on Where there's muck, there's brass.
Different skill sets are needed for different types of technology. Solving complexity problems is about finding mathematical models, then making inferences from them. You want PhD grads and professors working on this stuff. Scalability also relies on research chops, plus an intuitive feel for computer and network architecture.

At the other end of the scale, compatibility is about dealing with piecemeal, nitty gritty issues, so programming experience really counts. As for performance, look for hacker whizz kids who have a deep understanding of processors and operating systems, and who know how to think in assembly language.

Some examples of the technological issues solved in some well-known products:

Product Complexity Scalability Performance Compatibility
Amazon personal product recommendations stock millions of products serve complex pages fast integrate with diverse suppliers
Google spam-free page ranking store billions of web pages provide instant search results support hundreds of languages
Photoshop photo-realistic image filtering edit images larger than memory support SIMD processors import/export dozens of formats
Skype efficient voice compression handle millions of concurrent users keep down CPU usage work under any network setup

You don't need to start out with all four types of technology. If your product succeeds, the others will probably spring up along the way. But if your startup has nothing that would fit into this table, I would start to worry. If you're a technology company, but not solving something difficult, competition is rapidly on its way.

What's the Point of Investors?

So you've had a great idea for a real business, and have hooked up with a co-founder. Time to seek out investment, right?

Wrong.

Unless you have a strong track record, or personal connections with investors, you'll get nothing at this stage. You'll spend months making the rounds, and have nothing to show for it at the end.

Instead, spend this time working on your product. Create a prototype, gain some exposure, and learn about the need you're trying to address. If you're a student, take advantage of your freedom. Otherwise, work in the evenings or at the weekend. Keep improving and working at it until you can honestly say you've achieved something real.

At that point, and only at that point, consider seeking investment. You'll already have proven three important things:

  • Execution. You are capable of building a good product.
  • Market. There are people in the world who are interested in it.
  • Frugality. You are able to get by on limited resources.

You should still avoid raising money for as long as you can. Finding investors is a long hard slog. In a good case, it will take around 6 months. During this period you'll be distracted from building your business.

But what if your idea needs lots of money, just to get off the ground? What if you want to hire developers, buy equipment, and fly around the world to meet potential partners? In this case the solution is simple: change the idea. Barring extraordinary circumstances, investors won't be willing to bankroll your expensive dreams.

There is however one good reason to take investment: to accelerate your company's growth. If you have a small but profitable business, an investor with deep pockets can help you take it to the next level. In this case, you have an opportunity, rather than a need. This changes the dynamics, and gives you a stronger position when negotiating terms.

Tips for Killer Websites

Many successful websites, from Google to Wikipedia, have applied these principles to build an empire.

  • Instant gratification. Give visitors value within 5 seconds of arriving at your site.
  • The Web is about words. Write good copy, check spelling, label fields and buttons clearly.
  • Users hate waiting. Optimize, compress, cache. Do whatever it takes to achieve speed.
  • Build for search. Search rankings will make or break any new website.
  • Content is king. You can't fake good content. Create it, buy it, or automate its production.
  • Remove barriers. Visitors are selfish and goal-oriented. Give them no reason to leave.
  • Feedback is gold. Collect it, analyze it, act on it. Be humble. You don't know best.
  • Measure everything. Integrate deep analytics. Constantly test alternatives.

One last thing: Great engineering is integral and crucial to your success. If you're coming from the non-web world, these O'Reilly books on back-end and front-end development will help you get started. But if you're not a developer, and can't get one on board, think of something else to do. Outsourcing is not an option when you're scrambling to scale.



© Gideon Greenspan 2009

No comments:

Post a Comment