Getting an Independent Project Started?
nightgeometry writes "Just as everyone has a book in them, as the saying goes, maybe everyone has a software project in them. I have an idea for a project; it is something I would want, but googling doesn't find me anything similar. My programming skills are not amazing, to say the least, but I can design and QA. I'd happily learn to code, but lets face it — getting to a good standard would take me years, by which time I would be bored of the project. So, my question is: in this situation, should I set up a project on SourceForge and hope to attract some developers there? (And if so, how do I attract developers?) Should I try a rent-a-coder type of site and outsource the work, or perhaps attempt to approach developers personally and share the idea, or something else entirely? I think the project could be worth something, but I'd certainly open source the idea if it got me the app I want. Then again, I am happy to invest some cash in the idea, and thus cover said outsource costs — it isn't a huge project that I am considering, and I really think a competent developer could probably get the thing done in a week or less (I'm not in cloud cuckoo land here; I've worked in the software industry for over ten years, and I'm confident that it's a fairly simple idea). To me, the question is interesting in two ways. Once I have a specific idea, what are next steps? Then, in general, what do people do at this stage (and this isn't specifically a software question; it would apply just as well if I thought I had a good design for a new engine or a new type of beer)?"
Use Functional Programming!
Tell people the idea. Starting here, today...
No sig today...
The problem is that ideas are cheap; it's high-quality implementation that's difficult to achieve. That means that starting a SourceForge idea will never work if all you have is the idea. All the competent programmers who may even like your idea are already working on something else.
If you think this can be implemented by a wizard in under a week, it shouldn't take you more than a few months if you start learning now. Why not take this as an opportunity to expand your skill set. You may indeed get bored with the idea during the implementation, but the ability to force yourself to push through those times is another important thing to learn.
People do not instantly jump onboard a project without seeing some benefit themselves.
If you cannot code, discuss it with some of your coder friends, write a blog about it, ask slashdot (you could have told us what it was about).
GET PEOPLE INTERESTED.
I also have lots of ideas and have spent the last 6 months picking up my c skills and learning about Linux. I did not sit down waiting for someone else to write the code, I got off my ass and learnt how to do it.
Its been a hard slog and often I've wondered whether its worth it, but lots of nice things are starting to become possible with my code.
If you do not put in the hard work you cannot expect others to.
Additionally, if you think you will get bored of a project partway through then is it really such a good idea?
Think about most of the successful products over the years: :)
they exist for a long time and I would hope the original visionary was still there to guide the process for a long time
liqbase
As a project founder of a successful project on SourceForge (EJBCA), I can at least give this advice - do NOT start an empty project and hope to attract any developer. No-one will be interested in an empty project.
First of it's a slim chance anyone will find your project amongst the thousands of other project, your project will be bottom rated since nothing is released.
Second, as a developer, even if I agree completely with your ideas I might just start my own project, since you have nothing to build on.
There are thousands of projects started as "good ideas" that never released anything. The right way to start a new project on SourceForge is to make code first, and then register the project and make the initial release right away.
I have relatives / friends / acquaintances come to me several times a year with "the next great idea in software" and "all they need is someone to build it."
It's
a) Rarely a brand new idea.
b) Never fully thought out
c) Never has a business plan behind it
d) Not really funded.
e) not something I'm interested in.
Software is really hard to get right. Writing code is only a small part of it. If you partner up with a great coder, the project is probably still a failure.
1. Get people interested in your ideas.
2. Get them to subscribe to your newsletter.
3. ???
4. Profit!
I will respond to your meme with another meme:
I am interested in your ideas, where can I sign up for your newsletter.
Well, back to rejecting software patent applications.
How to not get a project started:
(1) Get on the front page of Slashot in front of tens of thousands of programmers
(2) Not say what the project is
(3) ???
(4) No profit!
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
I've been in IT for close to twenty years. You know what I've heard a hundred times?? It's this:
"I have this great idea. You do the work. We'll split the profits."
Of course the don't quite say it the same way. It's usually something like, "I can't pay you right now, but the profits will be huge. When it succeeds I can give you 10%."
This is invariably followed by something like, "Oh, it's very easy for someone like you. Maybe a week or so of work."
So I'm a little jaded.
Here's my suggestion. Show that you are investing your *time* and *money* (though I am being redundant since time *is* money). It should be an equal investment from the beginning. I think you're willing to do this, so attracting others should not be as difficult.
I have so many non-programmer friends that have goofy ideas for projects that they run by me on a weekly basis, so let me save you some trouble. Nobody is interested in your "unique" spin on:
1. A dating site
2. A social networking site
3. A clone of Digg
4. A recipe tracker
5. Or anything else
If only an idea was all it took. Instead, we have to suffer through contributions of time, money, determination and skill.
I'm a big tall mofo.
...start off with creator pouring himself into the work. Alienate your friends, put another 40 hours a week into it, etc.
It sounds like you have a good idea, but it doesn't seem as though you have the necessary level of obsession to pull it off.
I've been in the software development business for 25 years and I'm one of those Rentacoder contractors (top 200). I use the site to make initial contacts -- kinda 'get to know you' projects. If I get along with the buyer, then we move the relationship outside of RAC.
I'll tell you this from my experience... I don't deal with people who hide their idea behind NDAs. I don't have the time to spend teasing the idea out of you before I can evaluate it and calculate an expected effort/cost. Unless you have something that's patentable (but I guess what isn't these days) AND are willing to spend the cash to get it patented, just post your idea out in plain view. You'll get responses and an idea of how much it will cost -- or no responses and an idea that it isn't as easy as you think.
Nobody will steal your idea and do it themselves for two reasons. First, we're all too busy with what we're already doing. And second, making money at packaged software requires marketing, a support infrastructure, and a commitment to the product. I'm not set up for that. I'm just writing code.
Once you get a finished product out of a RAC coder, its yours. You can do whatever you want with it, including posting it on SourceForge. That gets your project off the ground and now you've got a second audience that will decide if it is worthwhile.
code and the process of coding. OK, code is like air, you got nothing without it, obviously. And bad code is certainly a minus for a project, but less of a minus than no code at all...
What I mean is if you go to SourceForge and poke around you'll find that there are a really large number of nascent projects that are basically no more than a name, a description of an idea, and nothing else. Rare is the instance where such a project attracts any attention. People are usually looking for solutions, not so much ideas. If I need something those empty projects really don't offer me anything. There is precious little motive for OSS developers to 'join' such a project, they can simply set up their own project, one that DOES have whatever code they came up with, and at least that project will offer some sort of technical starting point.
You'll also find that the process of implementation itself often serves to help focus and refine a raw idea. Even more valuable in that regard is the input of other people who are actually working on the implementation and the idea with you.
Projects succeed or fail for a wide variety of reasons, most of which, especially at the beginning, are not really technical in nature. Just as in the commercial world. For every Linux Kernel, or Apache, or whatever there are or were probably a 100 people who set out to build a POSIX compliant OS kernel or a high performance web server. Again the same sort of examples can be drawn from the commercial software world. Success comes from timeliness, luck, savvy promotion, political/managerial skill, determination, quality, technical excellence, and probably many other factors.
To focus more on the question at hand, I would say that producing a mediocre initial implementation of an idea yourself is not necessarily a bad idea. If, as you say, it is not really a highly difficult idea to implement then chances are you CAN produce something yourself. Maybe it isn't great code, and maybe your prototype won't much resemble the eventual mature project down the road, but it will provide some kind of starting point. Something people can look at and play with and improve on, and something they can use to get a handle on the concept and understand what it is you ultimately want to do.
I don't know what your idea is, and I don't know how fully formed it is. Thus I can't really say whether or not it would make sense to pay someone to work on it. Very few software projects are successful when the customer has less than a precise idea of what they want code to do. If you can articulate the goals of the project, what the code needs to do, and some vision of what it should look like from the perspective of various stakeholders (users/admins/developers/business/etc) then it might be worth paying someone to do it. But if you go that route really make sure you go through the process of articulating all these things, write them down, try to discuss them with others who might be interested.
If you can't articulate things at that level, then chances are anyone you hire to work on the thing will at best end up spending a lot of extra effort, time, and money, and chances are slim that the results will be satisfactory.
The other issue with say using a 'rent-a-coder' is that you really have little idea of the sort of quality of person you will get. They may well not be any more skilled at coding than you are yourself. Maybe worse. Sure, you can check their past work history and talk to them and maybe look at samples of their work, but if it were simple to pick out the good developers from that crowd then everyone would have crackerjack dev teams. Also I think you'll find the really good people you CAN find that way are either booked solid, or they quickly end up permanently attached to some team someplace and what is left in rent-a-coder land are the ones that aren't so great. Plus a lot of those type guys ARE good in the sense that they are quite skilled at quickly knocking off bits of code that do some little task, but they mostly aren't good
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
1. Sell the idea to a big corporation like Microsoft.
2. Have disgruntled Linux users see said idea in implementation without a free alternative.
3. Your problem will solve itself.
I'm not sure you'll read this but I hope so.
I'm about to start to learn how to program on my own, just for fun. For me it's to become better at certain computer challenges and to see if I'd like it enough to change career and start a B.Sc in computer science next year. That being said...
I read a lot on the subject and there are languages that are powerful and yet easy enough to learn. I'm especially thinking about Python since this is the language I decided to pick up.
In order to decide if this language is for you, read the foreword and the preface of "How to Think Like a Computer Scientist, 2nd edition". This open source textbook can be found here: http://openbookproject.net//thinkCSpy/
I also found a lot of info on the Python wiki: http://wiki.python.org/moin/BeginnersGuide
I hope this helps you decide.
Here is the quote from "How to Think Like a Computer Scientist, 2nd edition" that explains why to pick up Python.
How and why I came to use Python
In 1999, the College Board's Advanced Placement (AP) Computer Science exam was given in C++ for the first time. As in many high schools throughout the country, the decision to change languages had a direct impact on the computer science curriculum at Yorktown High School in Arlington, Virginia, where I teach. Up to this point, Pascal was the language of instruction in both our first-year and AP courses. In keeping with past practice of giving students two years of exposure to the same language, we made the decision to switch to C++ in the first-year course for the 1997-98 school year so that we would be in step with the College Board's change for the AP course the following year.
Two years later, I was convinced that C++ was a poor choice to use for introducing students to computer science. While it is certainly a very powerful programming language, it is also an extremely difficult language to learn and teach. I found myself constantly fighting with C++'s difficult syntax and multiple ways of doing things, and I was losing many students unnecessarily as a result. Convinced there had to be a better language choice for our first-year class, I went looking for an alternative to C++.
I needed a language that would run on the machines in our GNU/Linux lab as well as on the Windows and Macintosh platforms most students have at home. I wanted it to be free software, so that students could use it at home regardless of their income. I wanted a language that was used by professional programmers, and one that had an active developer community around it. It had to support both procedural and object-oriented programming. And most importantly, it had to be easy to learn and teach. When I investigated the choices with these goals in mind, Python stood out as the best candidate for the job.
I asked one of Yorktown's talented students, Matt Ahrens, to give Python a try. In two months he not only learned the language but wrote an application called pyTicket that enabled our staff to report technology problems via the Web. I knew that Matt could not have finished an application of that scale in so short a time in C++, and this accomplishment, combined with Matt's positive assessment of Python, suggested that Python was the solution I was looking for.
And then what? Your post is one of the many that suggest that he's going to need to pay a programmer. Ideas are cheap, but it takes skills, bla bla...
Well, this is slashdot, many of us are involved in open source projects as a hobby and/or professional applications to earn a living. I'm sure some are even really good programmers.
Yet how many of our incredible projects or ideas are succesful, even once they are functional?
I think this guy needs a lot more than a programmer:
- A good business plan, if he intends to make money at some point.
- If he doesn't really expect this to make money he doesn't need a programmer - he needs a marketing guru that can get a programmer excited about the idea. He also needs to understand that a programmer working for free does whatever the fuck he wants to do. So the OP can forget about 'designing' shit.
- Assuming his stuff needs an internet connection, there are other costs. How's going to pay for the server(s), bandwidth, etc? The free programmer that is already working for free?
Honesty, what the OP needs is not a programmer, is Santa's email address.
PS. While we are at it, here's a damn good open source project that needs a decent marketing guy.
Ideas are cheap, and frankly if Google finds *nothing* there are two possibilities:
1. you are a genius
-or-
2. your idea stinks, makes no sense, is infeasible, or there is a better solution that solves the problem in a more efficient way.
As a programmer, I get extremely cynical whenever someone says "I have an idea, and all I need is a programmer". They almost always follow it up with "it'll only take a week to build".
The best thing to do at this point is to flesh out the idea:
1. what does it do (in 3 sentences or less)
2. who will use it
3. how will it make money (or not)
4. flowchart its high-level functions
5. sketch out a rough interface if possible
Once you have all of that, you can show it to a competent programmer, and they should be able to tell you almost instantly if your idea holds water, as well as highlight any weaknesses or failure points. If you do a good enough job of writing your plan, the programmer(s) will be much more interested in joining the project. More importantly, having a plan will make it 10 times more likely the project will come to fruition.
-Billco, Fnarg.com
So Ideas are like ***holes. Which means I have a lot of useless ***holes. I've set up a lot of sites that I thought were "great ideas". Set it up and they will come! Here's the development cycle so you can try it too:
1) Light bulb happens.
2) Register domain name.
3) Brush up on MySQL/PHP again - pay particular attention to new functions needed but never used.
3a) Drag out old projects with useful bits of reusable classes/functions.
4) Spend a few weeks hacking around.
5) Rewrite early sections of code that look bad after learning some new functions/technique.
6) Upload the site to the "production server".
6a) Make sure things are search engine friendly!
7) Buy some adwords.
8) Profit!
This model works great up till 7). Costs about $0.25-1.00 per clickthrough so budget accordingly. Used to be $0.25 bought you the fist page of search results - no longer the case.
I abandoned that model for another one:
1) Use my and/or family/friends education + experience to develop an idea to address "mundane" needs.
Boring needs are needs everyone has. i.e. the potential pool of customers is much much larger for mundane ideas than an idea that is an "agent of change" or "cutting edge" or "disruptive". Not saying you can't address mundane needs with disruptive tech - its just that the need had to have a broad potential customer base.
2) Find someone to help me.
This is where you get stuck - and the topic of the OP. Frankly I don't want an "outsider" working on the idea since once its done whats to keep you contractor from selling the idea/software himself? NDA/Non-compete agreements are useless - are you really going to invest your startup funds in suing a contractor? In many states they are unenforceable anyway.
I had one proposal to develop a basic piece of HR software using a family members 30 years experience in HR. Posted a note on craigslist (I know not the best place) to see who might respond. I actually got a response from a really experienced IT professional and he and I were quite excited about the potential collaboration. We started to sketch out some code and immediately ran into a few road-bumps, mainly time-related issues. Anyway - the lesson is that as some posters have stated - execution is the problem - and generally the downfall of many small businesses. Ideas and talk are easy - finding an energetic partner that can coordinate his/her time and energy with yours is much harder. I don't have an answer really, but wanted to relate my experience. If I come up with a good way to solve this problem I'll repost it. . .
I thought it was a good idea
If you don't know a better way to do something when you have finished it that proves is that you have stopped learning.
In rare trivial cases that might mean you have learned all there is to learn. If that happens more then once you should seek out more challenging work.
I say that with 20 years+ as a professional programmer and engineer (with a couple of genuine engineering degrees).
Everybody who slings code worth anything once started a project they were in no way equipped to complete. If nothing else the 'learning' project done by the barely competent will help clarify the final apps design. It will also possibly show the original poster that his 'great idea' isn't so great after all and in fact may not be implementable. Being truly over your head at least once is also invaluable. You ether sink or swim. If you are a sinker better to know it sooner rather then later and plan accordingly.
I don't expect that 10 years in software but no coding at all amounts to sufficient experience to write a tight application spec or reasonable time estimate (anybody else have experience with PHBs and their 1 week projects?). I could be wrong. I don't know the original poster. In my experience the only people that can write really tight specs and truly grind the analysis to the fine points have strong coding backgrounds on similar projects. Analysts with strong business understanding are needed for a team working complicated problems, but if they personally don't have appropriate technical skills (coding, database, network etc) they always need lots of help to get to a tight spec.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
1) Any software project which can be written in a week by "any competent developer" is not going to be worth anything, so you may as well spill the beans on your idea.
2) No competent developer is going to blindly agree to a project that falls into (1) above.
3) Any project that falls into (1) has probably already been done a billion times, so you may as well spill the beans so someone can tell you where to get the software that already implements your idea. It will save you a lot of time.
To quote Calvin Coolidge -
'Nothing in this world can take the place of persistence. Talent will not, nothing is more common than unsuccessful people with talent. Genius will not, unrewarded genius is almost a proverb. Education will not, the world is full of educated derelicts. Persistence and determination alone are omnipotent. The slogan 'press on' has solved and always will solve the problems of the human race.'
"I am Rich" app - $5,600. ;)
Less than a week of work
Worth a lot more if apple didn't pull it.
Great, original ideas can be worth money and take very little work to produce.
It's just extremely rare.