views:

205

answers:

8

Let's say I have a hobby project (a web-app), which I code on during my spare time. I am doing this just for learning a new language/framework/methodology - I have not really thought about releasing it into the wild.

If I host this web app and release it for public usage, then is there any advantage to this? Can I learn something which I would not otherwise have learnt if I had not released it into the wild?

Basically, I want to know what are those things that can be learnt only when you release your program for public usage? One example would be load performance - how your code works under the strain of multiple users accessing it at the same time (assuming you did not load test your code, since this was just a hobby project).

A: 

Obviously the biggest advantage is having many more "testers" of your software. However, releasing something publicly means you will also have to ensure your security measures are up to par.

JTA
+5  A: 

You can learn a lot about what users are likely to care about, and balancing conflicting user requirements.

You'll learn a lot about usability - what seems intuitive to you isn't necessarily intuitive to your users.

You'll learn a lot about how bug-free your code is - users will turn up bugs that you've not come across.

And, hopefully, you'll learn the satisfaction of having other people using things you've written!

Dominic Rodger
+1  A: 

The very useful thing you can learn is how to write docs and make your sources readable. If you don't do it nobody will even seriously try using your program and then you'll just waste traffic uploading it.

sharptooth
+2  A: 

In addition to what http://stackoverflow.com/users/20972/dominic-rodger said, releasing your project may trigger the interest of another developer with the same problem. So this would get you free help plus the opportunity to learn how to work in a team.

Aaron Digulla
+1  A: 

You'll also learn all the hoops you have to jump through to set up a project on the likes of Google Code or Sourceforge. This will be a great timesaver when the time comes to set up a real project on one of these sites.

anon
+2  A: 

If you've written the app to solve a specific problem for you (aside from the "learning a new framework" part), then I would hazard a guess that there are other people out there who have the same problem and potentially are not in a position to code up a solution. Even if there only a few out there, they might benefit from it, plus the hopefully positive feedback you get from them will probably keep you motivated to improve said app.

Of course, if you also wrote it to gain exposure to technologies that you might be able to use at a future job, it can also become a virtual business card because you can point a potential employer or client to it, saying "I haven't used technology X as part of my day job but here is something I built with it".

So if it's an app that does something vaguely useful, I would tend to put it out there.

Timo Geusch
A: 

If your application is not ground-breaking, without promotion it will likely go completely unnoticed. To get load testing, you need to attract significant user base.

It's quite important to learn how to get your application noticed, how to create community around it, gather feedback from testers, etc. Publishing your application will give you chance to work these things out.

porneL
A: 




    1.











**

[> > ----------

> ----------
> ----------
> ----------
> ----------
> **strong text**  ##
>  1. List item
>  2. List item
>  3. List item## Heading ##
> ----------][1]

**

Eh? Sorry, I don't get the point of your answer...
Shivasubramanian A