Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have an idea for a program that I think is a good one (Don't we all?). I am an amateur programmer and would like to recruit some more advanced programmers onto the project since there are some aspects that I am not skilled enough to do myself. Is it better to

a) Develop the software on my own as much as I can, even though it will be amateurish, and then show a demo to potential recruits

or

b) Try and recruit some more advanced programmers and seek their advice and guidance before I get started so that it is done correctly from the beginning?

I would especially love it if someone has any experience of being in a similar position, but sage speculation is welcome too.

share|improve this question
    
How open do you want your project? –  CodesInChaos Nov 27 '10 at 14:03
    
You may try to implement pieces of it for demo purposes. Nothing describes better what a finished product will look like than a working piece, even if full of bugs. –  Job Nov 27 '10 at 16:13

5 Answers 5

up vote 13 down vote accepted

Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it's more important than it is likely at that stage. Or worse - you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. It if doesn't solve some fairly immediate need, it's almost certantly over designed. And don't expect people to jump in and help you. That's not how it works. You need to get something half way first, and only then others will say "hey, that almost works for me", and get involved in the project.

Linus Torvalds

pretty much sums it...

share|improve this answer
    
Wow. That was beautiful. –  sam i am Nov 27 '10 at 4:19
    
+1 for the quote - definitely keep your project small and focused on solving the customers problem. Worry about scaling it later (just look at all the early problems with Facebook and Twitter when the herd turned up). –  Gary Rowe Nov 27 '10 at 16:09
1  
Oh, and the citation for the quote: en.wikiquote.org/wiki/Linus_Torvalds –  Gary Rowe Nov 27 '10 at 16:11
    
@Gary Rowe - Thanks Gary. Up to now I didn't know where I got it from originally. –  Rook Nov 27 '10 at 16:18
    
Glad to help –  Gary Rowe Nov 27 '10 at 16:23

Ideas are cheap.

Nobody is going to care that you have a good idea (or at least think you do).

Unless you have money to throw around, you are not going to interest an advanced developer. From my perspective, I estimate the goodness of an idea as inversely related to how good its originator thinks it is.

If your skills aren't good enough, there is only one way to improve them. Use them! Reach for the stars and try and develop the software. Even if nothing comes of it, you will have made your skills much better.

share|improve this answer
    
Thanks, but that is kind of stating the obvious. I know ideas are cheap, which is precisely why I'm in this dilemna that led me to ask the question. On one hand, it will be hard to recruit people to work on someone else's dream. On the other hand, I'm afraid of breaking the idea through poor execution. I definitely don't expect you to believe in my idea since you know nothing about it or me, but at least give me enough benefit of the doubt to accept that I believe in it enough to at least try to get others involved. If it fails horribly, then at least I tried. –  sam i am Nov 27 '10 at 4:22
1  
@sam i am, please don't take me as trying to trash your idea. (I'm cynical about it, but I'm cynical about everything) My point is that you cannot expect to be able to draw other people into the project. So: try to write it yourself. The worst that happens is that you gain experience. –  Winston Ewert Nov 27 '10 at 4:56
    
thanks. You are welcome to trash my idea, since I have done nothing to prove myself to you. I just got whiny because I felt like you were telling me to not even bother instead of answering the question. But now I see your answer is A and I'm happy with that. :-) –  sam i am Nov 27 '10 at 5:04

If you don't start, it will never be done. Best case scenario for choice B? You'll find many "advanced" programmers who are fully on board, who would like to create a domain name for the project, logos, feature lists for version 2.0, ... everything but actual coding. They'll respect the concept so much, they won't want to blemish it with anything that might go wrong.

Actions are what count. If you have a really great idea, you'll be on your own for a while. You may have troubles communicating it, because you've internalized it so much, and it will seem that people are incapable of seeing your vision. They'll comment on trivial matters and miss the big picture. Until you have something concrete, that's how it's going to be. Only in working with it for a while will you be able to get your perfect elevator pitch for it.

At this point, since you explicitly mentioned you were looking for sage words: Have a growth mindset. Programming advanced things is how you become an advanced programmer. Where you are now doesn't matter. What matters is that you reach a new personal best.

Go with A. And good luck!

share|improve this answer
1  
Thanks a lot. This was a great answer and very helpful. Unfortunately I can only choose one answer and the Linus Torvalds quote tugged at my heartstrings. –  sam i am Nov 28 '10 at 0:01

Do it yourself - a half baked, poorly coded, badly designed, dripping-from-all-sides, heavily bandaged version 0.1 for your software is far better than no software.

Also remember that you need to sell it to your customers, not your developers. If you find paying customers for software you can easily get developers to add to your team. And customers need to see SOMETHING. If you have some large customers lined up for v1 of your software whenever it is going to come out, I don't see why developers won't come onboard. Besides you are paying them aren't you?! ;)

And yeah this comes from experience. Customers can tell you much more about your product than other developers can. (not how to build, but what to build)

share|improve this answer

Can you explain why a skilled programmer would want to implement your idea for fun, when I am sure they have plenty of their own to implement?

I have been programming for around 25 years, ( I started early) but as I have explained to my employers over the years I do the programming for free. The reason why they pay me is to tell me what to program, to insist that I turn up to the office, to follow a certain dress code etc...

Now, if you put together the proof of concept demo, show it around, have someone approach you looking for an investment and then start looking for a technical architect - then you are able to pay someone to take your idea and turn it into a product.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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