What are common mistakes for novice software developers?

My friend and I created a startup, but we are both software developers. We quickly realize that we will have to deal and understand all the complexities of the business.

Are there any resources that can help us avoid common problems that non-business people face? How do you balance the creation of your product while maintaining realistic goals to reduce time to market.

As if you need to take off the hat of a programmer and put on a hat for business, and vice versa.

+44
startup
Apr 28 '09 at 12:21
source share
16 answers

My software business was in a very, very small market, focused on the automated design of the magnetic layer on hard drives (www.micromagnetica.com - note that in the process of closing my business, the number of potential customers was reduced to such an extent that the business became unviable. The website reflects this point). I have been doing business for 10 years and did a pretty good job. My competition was a series of commercial and open source programs (mainly university or government sponsors), so although the market was small, I managed to create a unique product that sold well.

Traps:

  • Put your needs above the customer . The customer comes first - always listen to your customer needs and make sure that your development matches their needs, not yours. Every programmer has a list of things that they want to learn or do. Do not use this list as a guide for your development if it does not solve the problem or does not help to create the functionality that the client wants / needs. This item can make or break your company.

  • Do not refine your business idea . Make a business plan - this will help clarify what you are doing. Read the book, The Art of Getting Started , by Guy Kawasaki , for a commercial perspective on starting a business. If you need money, you can use this to secure financing from angel investors or venture capitalists. Otherwise, it will help clarify what you are doing.

  • Do not advertise yourself . Do the following:

    • (a) Find a good name for your company and secure your domain name. Despite the fact that a bad choice for a company name will not kill you (my first company was called "Euxine Technologies", and this is not much worse than this), but my product sold itself and was not burdened with a name.

    • (b) Connect your website with a good description of your product as soon as possible. Google will eventually find you, and traffic will begin to flow to your site.

    • (c) Once you have a working prototype, create a mechanism where potential enthusiasts can download it and start helping you find bugs. You can make it a full version with a limited time or a limited version with no time limit. I did both, and both work. Make sure users know that this is a beta or alpha version of the software. The most important part of creating beta user relationships is that they will request features that you have not thought about, and this can take a development along an unforeseen (and profitable) path. It will also give you the opportunity to keep abreast of potential users.

    • (d) If your product is applicable to a specific industry, go to the appropriate conferences
      (either get a stand, or contact potential customers), and sell your product through demonstrations, leaflets, and the distribution of free versions of your software on a CD.

  • Do not brand yourself - come up with a logo that you will use to identify you and your product. This logo will be displayed on your website, in your business, in stationary and business cards.

  • Not managing your money - initially there will be a long spell before the money starts. Be very modest with your initial money. Money will not start appearing at the moment when you consider that the software is ready for sale. There may be a temporary lag of at least a couple of months between when people show interest in your software and when a sale comes. It will depend on how much your software costs. The more expensive the software, the longer the wait time.

    Once you start selling, there will be seasonal variations in how much money comes in. Always try to keep money in the bank for at least 6 months to cover salaries and operating expenses.

  • Not knowing who your customers are — Once you start selling software, be sure to know who your customers are — they may be different from what you thought. When I started my software company, I thought that my clients would be all the R&D engineers who are involved in magnetic layer research. After some time, it became clear that most of my users were a subset of this group who could not program, but understood the physics of software.

  • Do not act professionally . When communication with clients will be professional - act and dress professionally.

+46
Apr 28 '09 at 15:01
source share
  • Creating a product because the technology is cool, not because there is a market.

  • Creating a product because you want it, and not because there is a market.

  • Create a website listing your product’s features, not benefits.

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

  • "Build it, and they will come."

+32
Apr 28 '09 at 12:25
source share

Rule number 1 of StartUp club: every startup should have both nerds and businessmen.

Most computer nerds know nothing about how to run a business or sell and sell a product. There must be at least one businessman at your top level (but watch them like a hawk so that they do not steal the fruits of your labor :-).

+16
Apr 28 '09 at 12:27
source share
  • I don’t understand / knowing who you are competing with.
  • Misunderstanding / knowledge of your target market.
  • Not including your customers at the design stage.
  • Do not spend enough time collecting product requirements.
  • Too much time gathers product requirements (analysis paralysis).
  • Not enough marketing.
  • Have a strong team so you can trust the people you hire to do your job.
  • Be prepared to do everything you can to succeed (ethically, of course).
  • Lack of direction (business plan).
  • Lack of goals or achievement of unattainable goals.
  • Misunderstanding cash flow. There are a huge number of profitable enterprises that do not succeed due to conflict problems. Just because you sold 1,000 units does not mean that you can afford to pay your staff and / or other expenses. As I heard before "Cash is King!"

These are just some of the things that might be in your way. I would recommend not only insulting the business side, but also worrying about the lack of software projects. There are many books on how to collect requirements, create high-quality code, test code (e.g. TDD), project methodologies (e.g. XP, Agile, ...) and many other topics.

Your launch will most likely fail if you cannot deliver the product or if you cannot deliver the product that does not solve the problem.

Finally, it is difficult to judge success unless you determine what it means to succeed. This is staying in business, doubling your income in 1 year, breaking the $ 250,000 mark, or doubling your staff. You need to determine what it means to succeed not only in your business, but also in every product that you create.

+8
Apr 28 '09 at 18:26
source share

Do your homework. If you are located in the United States, a small business association is a good place to look for resources.

+5
Apr 28 '09 at 12:25
source share

Trying to be everything to all people.

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

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

+5
Apr 28 '09 at 13:07
source share

Here is a common mistake, but it is not limited to small companies: lack of diversity in management. The diversity that matters is the diversity of experience. I saw a couple of small companies that suffered from this trap. They can often go ahead by making the right decisions. The problem is that it’s almost impossible for them to say when they make bad decisions. This does not necessarily mean that they will fail, it will just weaken them to varying degrees.

+4
Apr 28 '09 at 12:45
source share

Company development - in the software industry you can earn a lot of money (respectively for other professions) in a very short time. most people tend to crave and want more money to accept more projects and hire a lot of people - but they do not develop their infrastructure, their communication lines, their responsibilities, their developers, etc. Because it costs money, t directly benefit from it, and you lose your steep “flat hierarchy - all-is-boss” - image (which is not so) I myself witnessed two promising startups because they developed too fast. So watch out for this.

+4
Apr 28 '09 at 12:51
source share

Brilliant! Don't let developers chase the latest brilliant thing on the Internet that gets their attention. Keep developers focused on the main strategic needs of the company instead of managing their product in different directions, as their interest is captured by other things.

+4
Apr 28 '09 at 17:58
source share

There is a blog full of tips on OnStartups . A few recent topical posts: find out from the dwarfs underpants : you have a business model, and here are some marketing tips . The author is a developer-entrepreneur who sounds like your prospect.

Update: Dharmesh just set up a site with StackOverflow support just for this question: http://answers.onstartups.com/

+4
Apr 28 '09 at 18:10
source share

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 could not create this wonderful user story to really demonstrate how our product fills some of their needs. This flaw prevented them from “connecting” to our product.

In my opinion, the disconnection was due to the fact that we did not know our target users and understood their problems, as we should.

+3
Apr 28 '09 at 13:03
source share

Sales and sale. Plus readiness for release before the code is "perfect" and releases functions gradually. In fact, there are very good Hanselminutes on this topic and on this very site ( http://www.hanselminutes.com/default.aspx?showID=152 )

+2
Apr 28 '09 at 15:10
source share

Not having some people in a team with different ideas / backgrounds / personalities.

If everyone always agrees with each other all the time, and there is no friction, you will not achieve anything. Oh, you may be fine, but if everyone thinks the same when you get stuck (and you do), you stay stuck. When you're on a roll, Curveball is a distraction; when you are stuck in a rut or on a wall, Curveball can make you move in another direction. This may be the wrong direction, but at least this is direction a .

+1
Apr 28 '09 at 19:14
source share

Lack of marketing knowledge and experience. Although selling a good product is easy.

+1
Apr 30 '09 at 6:33
source share

The problem is that I call IBM OS 2 geniuses, creating a very good product, but the product does not sell well and is not intended to effectively massage the ears of customers. I despise some things about business workers, for example, about short-term thoughts, giving fast-growing developers slower but better developers and other problems, but they make money and put software in the hands of customers. If the launch does not have developers who can effectively deal with business problems, then it needs to go with someone who can. Failure to do this makes what made Windows 95 a hit and IBM OS 2 a dinosaur.

0
Sep 24 '09 at 16:14
source share

Not having a specific market in mind when developing a product. Several places where I worked tried to do anything and everything, which led to the fact that in one market there was not enough effort to make a profit first, so that the business could still work.

Micro ISV links contains some links that were shown in a secret presentation that I visited a little back, which can also be useful.

0
Oct 10 '09 at 23:27
source share



All Articles