views:

97

answers:

4

Being a seasoned in-house developer, I have many times had epiphanies of software products that would be viable in the wild, but I'm having a hard time to get started and never manage to finish the product and release it.

So I'm asking you, do you have any advice as to how to get started rolling your own product, where to find motivation, what's good to think about, what are the common mistakes etc?

Edit: This is not about how to run a startup, getting finance, or how to market it. It's about the development of software, how to keep yourself motivated, how to structure the development so you're not wasting time and get bored or sidetracked.

+3  A: 

Few points - off the top of my head:

  1. Research the market for your product idea. What's out there? What is your product's added value? Does it solve a common problem?
  2. Find people/friends etc. who can test early versions (alpha, beta) of the product, so you get proper feedback.
  3. Release it! Your product is never finished. Make sure to get it out there. You can always add cool features later. The danger is to always keep developing thinking it's not finished yet and you'll never release it. One of the best motivators is to have actual users using your product and requesting new features.
  4. Market your product. Find out about your demographic and target them using things like Google Adsense or ads on community sites.
Wim Hollebrandse
A: 

A good idea is make your software open source. If it is good or has a niche you will get feedback and that is one of the best motivation push.

When your product grows and get mature you may decide for a non open source license later. Don't worry about this now. The open source community gives you (for free) a very good tool to estimate how far your product may go.

PeterMmm
+1  A: 

Well few things which you need to keep in mind before you dive down on full product development.

  1. What is the product you are trying to build? Is there already an existing software available? If yes, then how different would your product be or how better?
  2. Are you going to work alone on this product? If you have few people who are working along, then are they motivated enough to work insync with you? If you are lone developer, what is the problem you are going to address by making the software.
  3. Have you done analysis of market as to how your product will land up once its complete?
  4. Have you set the realistic timeliness for the development? If you working alone that too partime (assuming you are working full time on a job) how long will it take before you complete the project.
  5. Are you doing it for financial needs or just for learning. Money is one big motivation however for a product to sell, again you need some marketting work to be done? Who is going to do?
  6. One way to remain motivated throughtout the project is knowing what you doing will eventually benefit you even if you dont come out with the product. (though this can backfire of not coming out with product at all). If you building on something which you have done lot of times you will eventually lose interest and abandon it.
  7. If you working alone or in team, how would you make people accountable for slipping on the timelines? Deadlines drive the product. With no products deadline, its never going to complete.
  8. Too many people in team can lead to chaos and you may need more people management skills than just programming. So you need to have small team to begin with and come out with a baseline code where you can add people at later stage.

EDIT: Adding few more

  1. If your developers are geographically located away how is it you going to coordinate? Is it through email or phone (voip). If its voice calls, then who is going to pay for it? Gtalk/Yahoo provides free voice chat but internet charges is what you pay.
  2. If you going to give up your full time existing job, how are you going to pay your rent/bills etc till your product breaks even and you earn some decent money out of it.
  3. Also what are the tools required to develop your applications? For example: MS-SQL server provided developer license which is just $50 (approx). But when you deploy your application you would need proper license for end customer (customer pays) in some $xxx. Customer may not wanna spend so much money and might ask you to opt for cheaper versions like postgresql or mysql. So getting some idea on end customers will be helpful.
  4. Some have pointed to make it open source. If yes, then who will control the ownership of the code. Not in terms of intellectual property but you dont want some 100 developers to check-in/check out and create a hell in source code. My suggestion is to shortlist few developers who own the code and rest of people can view it and inform about bugs etc via email.
  5. Have a bugzilla type software to track all the bugs and pending issues. Have a source control like cvs/svn/git to manage source code.
  6. Dont worry too much of licensing at the intial stage. Remember, if your software is good, its going to have pirated copies. Learn to live with it, rather be glad people think its worth cracking. Genuine users who will be happy seeing your application will surely buy it no matter what. So spend less time and money having activation modules etc embedded in your application. Simple serial numbers for genuine users should be enough.
  7. Once you have initial build ready or a prototype publish it on websites for people to test it. This will also serve as marketing your product.
  8. Be responsive to customers or potential customers. Nothing more annoying to get a query answered after 1 or 2 weeks for a customer.
  9. Be prepared to give some free licenses to institutions to obtains good will which can be used for marketing your product.
  10. When the product is getting into release mode to public, ensure you have a dedicated site or webpages telling customers what to expect and how to get help if needed.
  11. Also have a backup plan incase things dont materialize into a finished product. Since you mentioned some of the projects intiated had been abondened. You may want to have a checklist to shortlist what were the reasons for that.
  12. I repeat point 7 again, How will you make people and yourself accountable. You can fire every developer if they miss deadline, but you cant live with them if they miss it too often.
  13. If say you going to manage a team of developers, who is going to pay them? Are you paying from your pocket or you have some venture capitalist funding it or rest of the developers pool the money. If developers are paying to the project in some way or the other. Two things can happens, they stay till the end and remain motivated because they have invested money in this project or they will leave at intial stages thinking its not worth it. Having former one surely is a great motivation.
Kavitesh Singh
excellent list of checks
namespaceform
A: 

Many things. Some here:

  1. Are you learning something from this exercise?
  2. Will this be useful to people? Do you like to do such projects?
  3. Will this solve some real problem so that you may get deserved credit for being the first guy to take a risk on it - Note that most successful projects NEVER mention on the front page the kind of heartaches, headaches and other difficulties they had when deciding to jump in and take a gamble. They make it sound very rosy by saying "the rest is history" and stuff like that.
  4. If money is not your motivation, then see what is your motivation and see if that can be linked to this epiphany of yours. If it cannot, it wont work out well. Everyone here gets great ideas, but the guys cut out to actually implement it are much fewer in number.
  5. If you're lucky you will get a good developer to work with you.
  6. If you want to make money, keep it closed source.
  7. If you want the world to benefit from it, and you're good at social skills, make it an open-development model with a free-software license.
  8. If you want the world to benefit, but you don't like people messing in the development process, or you prefer to code alone, you can develop a significant amount of it and then release it under a free-software license.

My personal opinion: you get great rewards for making a really useful product and open-sourcing it. Among other things: good reputation, contacts, friends, learning from better coders, developers, hackers, and of course, since it is opensource, heaps of experience in handling noisy customers and so you get a thick skin.

Disclaimer: I don't like the noisy customer / thick skin part. So I don't participate much.

namespaceform

related questions