views:

1587

answers:

16

Myself and a friend have created a startup, but we are both software developers. We are quickly realizing that we are going to have to deal with, and understand, all of the intricacies of business.

Are there any resources that can help us avoid common problems encountered by the non-business-savvy? How do you balance creating your product with maintaining realistic goals to reduce time-to-market.

It's like you need to take off your programmer hat and put on the business hat, and vice versa.

Any advice is welcomed.

+31  A: 
  • Creating a product because the technology is cool, rather than because there's a market.

  • Creating a product because you want it, rather than because there's a market.

  • Creating a website that lists the features of your product, rather than the benefits.

  • Assuming that advertising on Google AdWords will work for you.

  • "Build it and they will come."

RichieHindle
+1 Good answer.
cletus
+5  A: 

Do your homework. If you are in the US, the small business association is a good place to find resources.

Andrew Sledge
+15  A: 

The #1 rule of StartUp Club: Every startup should have both nerds and businessmen.

Most computer nerds don't know anything about how to run a business or market and sell a product. There should be at least one businessman at your top level (but watch them like a hawk, lest they steal away with the fruits of your labor :-).

paxdiablo
From my Google quotes last week "Every business needs a dreamer, a businessman and a son of a bitch"
Nathan Koop
Amen! That's solid advice.
Lazarus
@Nathan, sometimes you can find those last two in the same person :-) Saves on payroll costs.
paxdiablo
Thomas Edison was all three!
jiggy
+4  A: 

Here's a common pitfall, but it's not restricted to just small companies: Lack of diversity in the management. The kind of diversity that's important is diversity of experience. I've seen a couple small companies that suffered from this pitfall. They can often go along for a while making good decisions. The problem is that it's almost impossible for them to tell when they're making bad decisions. This doesn't necessarily mean that they'll fail, it just weakens them to varying degrees.

Don Branson
+4  A: 

Company Development - in the software industry you can make a lot of money (respectively to other trades) in a very short-time. most people tend to get greedy and want more money so the accept more projects and hire lots of people - but they don't develop their infrastructure, their communication-lines, their responsibilities, their developers etc. Because it costs money and you don't have a direct benefit from it and you lose your cool "flat-hierarchy-everyone-is-a-boss"-image (which is not the case anyhow) I myself witnessed two promising start-ups fail because the grew way too fast. So keep an eye on that one.

Gambrinus
+3  A: 

Make sure you know your target users and their needs.

I worked in a really cool startup where we thought we had a great product, but we were unable to generate that great user story to really demonstrate how our product filled some need for them. This shortcoming prevented them from "connecting" with our product in an exciting way.

In my opinion, the disconnect was due to the fact that we didn't know our target users and understand their problems as well as we should have.

Vinnie
+5  A: 

Trying to be all things to all people.

Often in trying to create a product that appeals the everyone, the product becomes so general that really no one can get excited about it.

In my opinion, it's better to target your product to a niche community of people with a very specific need and then fill that need better than anyone else.

Vinnie
+39  A: 

My software business was in a very, very small niche market centered on computer aided design of the magnetic layer in hard disk drives (www.micromagnetica.com - please note that I am in the process of closing down my business as the number of potential customers has shrunk to the point of making the business not viable. The web site reflects this point). I have been in business for 10 years and have done pretty well. My competition was a series of commercial and open source programs (mostly university or government sponsored), so, although the market was small, I was able to create a unique product that sold well.

Pitfalls:

1) Putting your needs above the customer - Customer comes first - always listen to your customer's needs and make sure your development follows their needs rather than yours. Every programmer has a list of things they want to learn or do. Don't use this list a guide for your development unless it solves an issue or helps create functionality that the customer wants/needs. This one point can make or break your company.

2) Not clarifying your business idea - Put together a business plan - it will help clarify what you are doing. Read the book, "The Art of the Start", by Guy Kawasaki to get the business perspective of starting a business. If you need money then you can use this to help secure financing from either angel investors or venture capitalists. Otherwise, it will help clarify what you are doing.

3) Not marketing yourself - Do this the following:

a) Find a good name for your company and secure your domain name. Even though a bad choice for company name won't kill you (my first company was called "Euxine Technologies" and it doesn't get much worse than that), but my product sold itself and was not encumbered by the name.

b) Put together a web site as soon as possible with a good description of your product. Google will eventually find you and traffic will start flowing to your site.

c) As soon as you have a working prototype create a mechanism where potential enthusiastic customers can download it and start helping you find bugs. You can make this the full version with a limited time or a limited version with no time limit. I have done both and both work. Make sure that users know it is a beta (or alpha) version of the software. The most important part of creating the beta user relationship is they will ask for features that you did not think about and this could take development along an otherwise unforeseen (and lucrative) path. This will also give you a way to keep your hand on the pulse of potential users.

d) If your product is applicable to a particular industry go to relevant conferences
(either get a booth or make contact with potential customers) and sell your product through demonstrations, flyers, and the distribution of free limited versions of your software on CD.

4) Not Branding yourself - come up with a logo that you will use to identify you and your product. This logo will show up on your web, your business stationary, and business cards.

5) Not Managing your money - initially there is going to be a long spell before the money starts coming in. Be very frugal with your seed money. The money will not start coming in the moment your deem the software is ready to sell. There could be a time-lag of at least a couple of months between when people show interest in your software and when the sale comes in. This will depend on how much your software costs. The more costly the software the longer the time-lag.

Once you start making sales, there will be seasonal variations in how much money comes in. Always try and keep at least 6 months worth of money in the bank to cover salary and operating costs.

6) Not knowing who your customers are - Once you start selling software, make sure you know who your customers are - they might be different from what you thought they were. When I started my software company, I thought my customers would be all R&D engineers who were doing research in magnetic layers. After a while it became clear that most of my users were the subset of this group that couldn't program, but understood the physics behind the software.

7) Not acting in a professional manner - When interacting with customers be professional - act and dress in a professional manner.

jay
8) The code base will not be self consistent. When I started the software I was a "C" programmer. When I finished, I was a "C++" programmer. The code base reflects this transition and that is fine. Spend your coding time where it is needed and will move the product forward. Don't waste time rewriting code that doesn't need to be rewritten.
jay
Since you are starting you company up with a friend, be prepared for your friendship to be tested. To alleviate some of the pitfalls of starting a company with a friend make sure you have discussed and agree on your responsibilities within the company. You will have to come up with a way of making decisions that will not hurt the company or your relationship. With only two people in the company, how are you going to resolve conflicts 1about product development, money, etc.?
jay
+2  A: 

Sales Sales and More Sales. Plus a willingness to release before the code is "perfect" and release features incrementally. There is actually a pretty good Hanselminutes about this very topic and this very site (http://www.hanselminutes.com/default.aspx?showID=152)

yieldvs
+4  A: 

Shiny! Don't let developers chase the latest shiny thing on the internet that catches their attention. Keep developers focused on the core strategic needs of the company instead of steering your product in different directions as their interest is caught by other things.

sean riley
+4  A: 

There's a blog full of tips at OnStartups. A few recent, relevant posts: learn from the underpants gnomes: have a business model, and here are some marketing tips. The author is a developer-entrepreneur himself, which sounds like exactly your perspective.

Update: Dharmesh just set up a StackOverflow-powered site for just this sort of question: http://answers.onstartups.com/

ojrac
+7  A: 
  1. Not understand/knowing who you are competing with.
  2. Not understanding/knowing your target market.
  3. Not including your customers in the design phase.
  4. Not spending enough time gathering product requirements.
  5. Spending too much time gathering product requirements (analysis paralysis).
  6. Not enough marketing.
  7. Have a strong team so you can trust the people you hire to do their job.
  8. Be prepared to do whatever it takes to succeed (ethically of course).
  9. Not having a direction (business plan).
  10. Not having goals or having unreachable goals.
  11. Not understanding cash flow. There are a vast number of profitable businesses who do not succeed because of clash flow issues. Just because you sold a 1000 units doesn't mean you can afford to pay your staff and or other expenses. As I have heard it before "Cash is king!"

These are just some things that might get in your way. I would recommend not only worying about the business side, but worry about what are reasons software projects fail. There are numerous books about how to collect requirements, produce quality code, testing code (e.g. TDD), project methodolgies (e.g. XP, Agile, ...), and many more topics.

Your startup will likely fail if you can't deliver a product or if you can't deliver a product that doesn't solve the problem.

Finally, it is hard to judge success if you don't define what it means to succeed. Is it staying in business, doubling your revenue in 1 year, breaking the $250,000 mark, or doubling your staff size. You need to define what it means to succeed not only in your business, but with each product you create.

sgmeyer
+1  A: 

Not having some people on the team with different ideas/backgrounds/personalities.

If everyone is always agreeing with each other all the time, and there isn't any friction, you aren't going to get anything done. Oh, you might be alright for a while, but if everyone thinks the same way, when you get stuck (and you will), you will stay stuck. When you're on a roll, a curveball is a distraction; when you're stuck in a rut, or up against a wall, a curveball can get you moving in a different direction. It might be the wrong direction, but at least it's a direction.

Adam Jaskiewicz
+1  A: 

Not having enough knowledge and experience in marketing. Although selling a good product is easy.

drikoda
A: 

The problem is what I call IBM OS 2- geniuses build a very good product but the product is not marketed well nor tailored to effectively massage the ears of buyers. I despise some things about business workers like short-term thinkings, perfering quick-and-dirty developers over slow-but-great developers and other issues- but they are the ones who make money and drive software into customers' hands. If a start-up does not have developers who can function effectively work with business issues- then it need to go get someone who can. Failure to do so make is what made Windows 95 a hit and IBM's OS 2 a dinosaur.

Phil
A: 

Not having a specific market in mind when developing a product. A couple of places where I worked tried to do anything and everything which lead to not enough effort on one market to get profitable first so the business could still be running.

Micro ISV links has some links that were shown in a top secret presentation I attended a little while back that may also be useful.

JB King