42

Seeing that so many of my friends are unemployed, some of my frinds and I are planning to create a small software company.

What are the basic things we should know and do? Are there things specific to running a software company that we'd need to be aware of?

2

4 Answers 4

78

I'll try to list a few things¹ I wish I thought about when creating my company.

The essential thing to know is that either you have to hire people (lawyers, accountants, salesmen, project managers), or you have to learn lots of stuff yourself, given that trial and error technique would often cost you a lot of money.

  • Be aware of the local laws. When you're a small company and you're sued by your customer for thousands of dollars because some mandatory sentence is missing from your invoice, it's not obvious to handle.

    In the same way, when a customer doesn't pay you for months, when you go to a lawyer and learn that the contract you signed doesn't force your customer to pay you, you wish you had consulted a lawyer before signing anything. I spent four years in law college; I'm always surprised by the poor quality of contracts written by people with no knowledge in law. Most of the contracts I've seen clearly say that the developer may never be payed, or that the customer can request any change at no cost.

    Remember, some customers will spend a huge amount of time trying not to pay or to pay less. They will invoke the fact that your product does't match their expectations, or that they always thought that the changes you made at their request were for free, or that they don't need the product any longer. Make sure to see F*ck You. Pay Me. by Mike Monteiro which discusses such situations.

    This is a job of a lawyer. Lawyers are expensive, but they save you money.

  • Be sure that the taxes will not be higher than your income. In France, for example, when you start you can easily be in the situation where multiple semi-governmental organizations (such as the mandatory insurance company) will claim thousands of dollars per year, yet your income is several hundreds of dollars per year.

    Nobody cares by such nonsense, because it's a way for those organizations to make a lot of money. Even when you don't have any income, you still have to pay. Given that some of them are managed as insurance companies and benefit from their monopoly, you find yourself in front of an entity which behaves much like mafia (i.e. no matter what's your situation, you'll have to pay), but sometimes without the cover benefits.

    Seeing taxmen arrive at your company and asking to check the accounts, then finding a few mistakes which will cost you a few thousands of dollars is not a nice thing neither.

    This is a job of an accountant: avoiding accounting errors which usually cost too much, and defend the money of your company from the intentional errors of powerful entities.

  • What makes you better than all the freelance developers? What makes you better than all the larger software development companies? How do you explain to the customers that you're better?

    I had a few discussions with my colleagues who wanted to create their own companies. "What do you have that others don't?", I asked every time. Either they can't answer, or they answer something like "I'll ask for a lower price", but they are unable to explain how would they do the cost savings.

    Be sure you know the aspects in which you are better than the competitors. Be sure you are able to market yourself, explaining not only what's better, but also why.

    • Example: a company A ships software at a lower cost, because they use lean management, removing the waste related to tasks which are not needed in order to deliver the product.

    • Another example: a company B ships high-quality software by using intensive formal code reviews, testing, formal proof, and other techniques used in companies writing live-critical software.

    • Last example: a company C delights its customers by using radical management and Agile.

    More importantly, how you will find your customers? Do you advertise? Where? How? How much would it cost?

    Are you ready to answer customers' questions? For example, if somebody asks for the names of companies you worked before in order to ask those companies for feedback, or if somebody asks to show the software products or web apps you've done, do you have an answer?

    This is a job of a salesman: somebody who knows your business, knows your strong points, and can quickly, easily and honestly explain why your company is the best.

  • How do you avoid shipping the project late, when the customer constantly asks for changes in the features you just delivered?

    How do you calculate the price the customer has to pay? If you're paid per hour of work, how can the customer be sure that you don't ask to be payed for 213 hours when in fact you worked 186 hours?

    How do you keep track of a project? How do you know that the project is about to fail, and when you know it, how do you prevent it?

    This is a job of a project manager. Leading a project from "I have a great idea, it's in my head now" to the fully-featured product requires more than knowing how to write programming code.

  • Are you sure you're ready to deal with customers? What will happen when a customer is not polite? What if a customer says that your product sucks or does not conform to the requirements when in fact it follows them exactly? What if a customer, after two months of development of a three months project tells you that you must rewrite your ASP.NET project in PHP? What if the customer doesn't even know what her project is about?

    This, again, is a task of the project manager, the salesman or the support. Dealing with customers after you signed the contract requires a lot of tact, patience, professionalism and, often, anger-management.


¹ Note: my company is in France, so some points may not apply or be less important in other countries.

2
  • Just to build on some of these points, anyone looking to start a company should make sure they're ready to handle a scenario like that described here. Given the nature of the site, it's likely that story is exaggerated some, but it's still plausible, and demonstrates a number of the points that @MainMa raised.
    – Bobson
    Commented May 14, 2013 at 14:03
  • This is all great advice. By far my greatest hurdle is going to be tact. I have a really hard time dealing with difficult people but I know I'm capable of being tactful when I actively think about it. I'm just going to have to be very conscious about how I come off. Thanks for the tips!
    – ChevCast
    Commented Dec 22, 2015 at 2:38
14

One very important point that many software startups seem to miss is this:

Find a problem, and solve it. Don't build a solution and find problems that could fit, and don't solve problems that are solved already.

This seems obvious, but there are many examples of companies whose products failed (or who went under entirely) because they couldn't convince people that they actually needed the thing.

For example, don't make a to-do list app. Don't build a social networking anything; if I had a penny for every "I'm going to make the next Facebook" claim from projects that failed completely, I'd have enough cash to buy Facebook. I'd probably avoid music-discovery apps as well; Grooveshark, Pandora, Spotify, Last.fm and the rest have that market covered. As a general rule, when you get an idea, Google about a bit and see what already exists. Consider testing out whatever solutions you find. If you can't see anything wrong or lacking with them, then you probably won't be able to break into that market unless you've found some shiny new way of doing things that makes it better (or you can match their functionality for greatly reduced prices, perhaps).

I once heard someone say that you should be able to tell a stranger what your product is for without saying "it's like [other product]", and I think that's pretty good advice. If it's like some other product, that might be ok, but don't focus on that. For example, you're not building "something like Mint", you're building "an app to track and manage your finances by doing X, Y and Z". The difference is that you're focusing on the features that you want, and not the features that your competitors have. Of course, you'll want to look at your competitors to work out what features the market wants, but you don't want to fall into the trap of being a copy of an existing product. If you're the same as an older product, then people who use that product might as well stay there, and people who don't might as well choose that product over yours because it's more mature and has all the advantages that brings - they've had longer to fix it, to build up a support base, etc.

6

To start a business, we should have a basic idea about what we gonna do. Laws and other things are secondary which we can hire proper lawyers and resources.

In India, there are two type of business running.

Services & Products

but the products seems not getting wide popularity and attention as the startups in U.S. Also the angel investors are not so plenty as you can see abroad. But the platforms like iOS and Android helps you to market your products without much hassles.

If you're going for service business, it's tough market where you should be able to get projects by demonstrating/gaining trust from the customer. One of my friends are running a software company.The growth in terms of project and resources was exponential but it's yet to find a good name and financial stability. It can be slow pace depends on how aggressive and serious you're about your company and how you pitch it.

There are several other domains other than what we're seeing day to day. It's really strong. Like platform services, enterprise solutions, large softwares like SCADA systems etc. It depends on your taste and bandwidth for you to find the right industry.

It's better to start something than being idle. At least you can try to create some products yourself in your free time and try to market it. Slowly you can turn it be a company. Wishing you all the best. One more thing, don't be reluctant to "reinvent" something. People may hesitate to take a step if some bigshots are already having services similar to yours. Without infringement, you can make things in your own view. Sometimes it will be a great hit!!!

3

Put the advice you get from various sources based on their relationship with their market/customers. Unless you're going to sell to other programmers, you can't do it the way Fog Creek and Balsamiq does it. There's a reason 37signals avoids the Fortune 500. The less your market is 'like you' the more you're going to need to get outside help.

It sounds crazy, but at times you'll have to decide if you want to make money or own a software company. Decide how you're going to stick with it. Having too little or too much money can make it tougher to keep going. You're going to be tempted with job openings and undesirable projects, because you need the money now (Or you're rich and don't care.). This could get in the way of actually owning a software company. You have to have that ultimate goal so you're more likely to persevere.

Not the answer you're looking for? Browse other questions tagged or ask your own question.