Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The story

Over the last couple month I have been working on a pretty big project. It's an enterprise-level software, I designed to be used at a local gym, but I believe it can be used in other places, where things like keeping track of clients, attendances, purchases and payments are required.

The problem

Well recently, I started to think on how to mature this project from being home-made. Not just because I want my project to grow but also because I would like to have some gain from it.

The solutions?

And here I saw 2 paths:

  • License the software under some restricted license and try to sell the software to other business around. This way I can get some money for college (I am a high school junior right now)

  • License the software under some free license, publish it on GitHub or something, and try to engage other developers to participate in the project. This way I get experience of working in a team and a better chance that the project will keep growing. The latter would be a good + for my resume, when I'll trying to find a job.

So far both ways seem pretty exciting and beneficial to me. The first one offers a good college career, while the second one offers some additional experience and the project's growth.

The questions

Can anyone point to some other +/- of these 2 options? What would the better option in my situation and why? Or are there other options?

share|improve this question

closed as primarily opinion-based by MichaelT, gnat, Bart van Ingen Schenau, GlenH7, Dan Pichelman Nov 28 '13 at 16:09

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Option 3: release as free software and offer "install and maintain" service for gyms that don't have an IT department (which I guesstimate to be roughly 100% ;-)). – Joachim Sauer Jul 9 '12 at 8:10
Yes, this is what all those go-free-software sites offer for raising money :) The only bad thing I see about is that it might be difficult for me to find time during the school year. – SkyDan Jul 9 '12 at 8:19
if that's the case then I don't see how you'd be able to make a lot of money from selling the software. Custom software like that rarely works without some kind of support, and I guess you don't have a support department. Also: remember that you don't have to sell to everyone who wants to buy, sell as many support licenses as you can actually support. – Joachim Sauer Jul 9 '12 at 8:21
I'd be interested in your project if it went opensource. Please let me know when you make that decision. And btw, what language is it written in? – alex Jul 9 '12 at 14:40
@alex I will let you know. It's in Java. – SkyDan Jul 10 '12 at 5:31
up vote 4 down vote accepted

I'd suggest 3 : go open-source and provide support.

Don't fool yourself, you'll most probably not earn a dime with that unless your project is really mature, extensible and bug free. When providing support, pay attention to your commitment : 5 projects requiring "urgent" bug fixes at the same time will suck your time if you're accountable for it...

Going open-source is easy :

  • Choose a well known applicable license (think GPLv2, GPLv3, BSD, MIT) : don't invent yours, use a well-known one. Choose one applicable to your technology.
  • Comply with it (publishing code, ownership)
  • Choose how you want to build your community (publishing on GitHub won't bring any contributor unless your project is already awesome)
share|improve this answer
Thanks for answer! If publishing is not enough to attract to developers, what is the right way to do it? – SkyDan Jul 9 '12 at 9:20
Well, building a community is a lot of work. It's about people knowing this exists (and thus twitt/g+, use forum), people being convinced it can be used (build web site, ideally with "demo" or "video" section) and then make entry ticket easy (good documentation, wiki on how to dive into the project, open tickets). Going from solo to team is definitely not easy and needs some marketing and rigor (especially from someone unexperienced in project management or communication). Just think it's not about technical value but about human perception – Bruce Jul 9 '12 at 9:47

With due respect - "An Enterprise level piece of software...." written by one developer over a couple of months - I don't know if I should offer you a job or suggest a good "Product Misrepresentaiton" Lawyer.

I suggest that you software is very unlikely to be suitable for "Enterprise" level deployment at such an early stage in the SDLC. As such, it would be very unlikely to fly under your first proposal, without significant amounts of input from you over a critical time in your career. What happens when your "customers" want an improvement, or find a bug, or just can't read the manual (I assume you have one).

If you want money for college, Flipping burgers at the local is almost certainly a more profitable use of your time, they pay you for the hours you work and won't sue you if you can't put in the hours needed to get the job done. Not to deflate anyones dreams, but not all of us are destained to be Zuckerberg's and Steve Job's... Unlike Facebook most projects such as this don't end up in the front page of "Fortune 500".

That leaves you with the second option - License the software under some free license, publish it on GitH etc, and if you want - sell your services for adding features, providing installation and support and such like. As you are not selling a proprietory product, is much like Flipping burgers in terms on money, but I expect you will find it more rewarding and certainly more career advancing. If I am wrong, and your product is the next Facebook, this model can still be made to work. If I am right, you finish you studies and join the rest of us in the daily grind at the office, a bit wiser than most.

share|improve this answer
Thanks for the answer. Perhaps, you are right and I don't think quite objective. Do you have any links on the general guidelines of going free and so on? – SkyDan Jul 9 '12 at 8:55
Meh. "Enterprise" software just means "Fills the needs of a big business." It doesn't mean "good" or "scalabale", or anything else. – Sean McMillan Jul 9 '12 at 18:24
Expensive always comes to mind. – Bratch Jul 10 '12 at 0:23
@Sean: That usually means Ongoing Support, Manuals, training material, sales and marketing budgets (You can't sell to the big boys without taking out to lunch once or twice), liability and risk management etc. I doubt any individual could write an enterprise grade "Hello World" in that time frame. There is a reason IBM engineers cost $100's/hour to do the work many school leavers can achieve - this problem is the same thing in drag. – mattnz Jul 10 '12 at 0:50

It is really a strategy that needs to defined and followed to succeed in your goal. I just listed few of them that can be done right away in short run.

1) Identify your customer base and class of people who will be interested in your product.

2) First start with Free, Trial or Evaluation version

3) Look at blogs/social media where people are looking or discussing such type of a software

4) Listen to customer feed-backs. Implement most wanted/requested features asap

5) Be quick and responsive on BUG fixes and updates

6) Speak/Demo your product in open community events

7) Be presented in social media. For example: Create a Facebook Fan page and direct your user there. However, be very attentive with social media, having a serious outstanding bugs in the product may negatively effect your reputation. Think about pros and cons, and do this in a planned way.

There is a good talk series called "Startup:" with Scott Hanselman. Have a look to the archive page Technology talk that doesn't waste your time. I would suggest to listen and interview about start-up company and their product - GIBRALTAR SOFTWARE .

share|improve this answer

Creating software consumes 100% of your time until it's completed and tested. After that Marketing consumes 80% of your time. If you are also taking a full college course load, you won't have much time to devote to marketing or support.

I'm not trying to discourage you in the least. I thinks it's great that you built a complete system that works. Spend some time downloading all the software you find interesting and evaluate them. Ask yourself this question each time you try one of the products... Would I buy this? If not why?

The saying "If you build it they will come" that only works for Field of Dreams. You have to promote your stuff. Here's a good rule of thumb:

3,000 Views = 300 Downloads = 1 Sale

Here's some things I have learned over the years:

  • Don't fall in love with your own products
  • Customers will find very unique ways to use your software
  • Others will copy your ideas and make their own version
  • Ideas are plentiful, Good ideas not so much, Great ideas rare

Do it for the experience not the money... unless it's one of those rare ideas, then don't tell anyone unless you have them sign an enforceable Non-Disclosure Agreement. You will learn so much in terms of user expectations, support, problem resolution, distrubution and so much more.

share|improve this answer

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