How to Get Your Project Moving, or My Ego is Massive and You Should Listen to Me.
So someone asks how they should go about getting a group of people together to work on a software project. I, with a massive ego propped up by very little talent, ability or experience, decided to answer it. Many of these ideas have been said elsewhere in various forms, but this seems to be a nice compaction of them.
How To Get People To Work On Your Project
Start writing it. No, really. Go start coding. Upload the notes, the sketches, whatever. Put it up on Google Code, Rubyforge or something similar. Haunt the IRC channels and mailing lists for the tools you are using and post news everytime you put out a new release. Be sure not to post in places that won’t care, and don’t post too much. Talk about it with friends. Even friends that have no idea what a compiler is.
The nerds will come to you but you’ve got to work your ass off first. No one, absolutely no one, who is any fucking good will come near your project if its nothing more than a few airy ideas. Excepting, of course, those close friends that you’ve already had long discussions with. But if you had friends with a clue, you wouldn’t need to ask this question.
I understand. I, too, have a group of friends who don’t share my peccadilloes. And it can be a strength. It teaches you to hone your description of what you are doing down to its simplest core. It teaches you how to tell yourself what you are doing. Clarity of thought is essential.
Most of your friends won’t understand it. Some will love it for terrible reasons. The rest will think its dumb. If you have a couple of shitty “friends” you only hang around with for historical reasons (like I do) you will invariably have the conversation swiped from you 20 seconds into your 30 second pitch because.. well.. because they are fucking assholes. Almost all of the opinions you hear will be worthless, even from friends with half a clue or more.
Cling to the positive responses. You and I know they mean nothing in relation to the project, but they mean everything in relation to you. It means they think you have good ideas in the areas they understand, and believe in you enough to have good ideas in the areas they don’t. Knowing that can ride you along when you’re coming back from another day at some shitty job to code for 10 more hours before crashing, or, at least, wishing you could crash as you pace your hallway thinking about what needs to be done.
Insomnia, more than likely, will be ever present.
You don’t have to code everyday, if it’s just a side project, but you’ve got to do it damn near. If you aren’t blowing off your friends to work on it at least once a month or more, you aren’t working hard enough on it. If this is really to be a start up, you need to be blowing them off all the time. It sucks. Get used to it. You’ve got a world to change. (Note: I have experience with side projects and have second-hand experience with startups)
But don’t overwork. Insight comes from your brain hashing together your work and your knowledge and your experiences from elsewhere. That mashup club that you heard about? Go check it out. Read some philosophy. Read some comic books. Read something you sort-of-know-about-but-not-really.
Read a shit ton about programming. programming.reddit and Planet Intertwingly are good places to start. The first for what all the cool kids are talking about and the latter for intelligent debate, and odd viewpoints all mixed together. (Er, I should mention I was recently added on to the blog roll there, but I was a huge fan of it way, way before that. In other words, I’m not a self-promoting jerk, just a regular old jerk.)
Write good code. Go back over older code and rewrite it. Then come back later and rewrite it again. Make it better. But don’t stop coding because you can’t “get it right”. If its ugly or sucks or doesn’t pass the tests, put in some placeholder code with a FIXME comment above it. This can be a good place for others to help fill in the gaps but never, ever leave something like that if all you have is the hope that someone will fix it. Ask them, or do it yourself later.
Test. Test a lot. Write tools or use already established tools to make it easier for you. I suggest the latter, though I’ve had to adapt other’s work to test my current “big project“. If your project is different enough or big enough, there’s a chance you’ll be adapting the work of others, too. Testing is what will remind you that you put all of those shitty FIXME comments in your code.
If you stop coding for a couple of days, get pissed at yourself and code angry. Code real fucking angry.
You might break a keyboard, but it’ll be worth it. This is one you have to experience to believe. There is little like coding through your frustration, aggravation and even constipation and finally, finally getting it right.
Anger and love and frustration and elation and sadness and comfort, each of these you will feel when you are coding. Some you’ll feel more than others. All of them will, at some point, make you want to stop. Don’t.
Remember: coding isn’t just putting characters in a text editor, but all those hours you spent thinking don’t count until you punch the fucking keys. Time isn’t your enemy as much as your will to continue on is. And time is a big fucking enemy in a startup.
Go. Go fucking hard. That’s how you get people to come in. Oh, and you’ll probably fail. But it’ll be a good failure. It’ll be the kind of failure that you can turn into a victory later.
People say failure “builds character” or “helps you grow”. That’s pretty much just a bullshit short way of saying this:
You don’t know how you’ll fuck up until you do. The next time you’re about to fuck up, you might see how to not fuck up. You might see a new opportunity because of the way things fucked up, or the state your fuck up left you. Also, some other people with experience or money might see your fuck up and realize that a) you’ve actually got some chops or b) you could have some chops with some help. They will help you. Maybe. Fucking up will be easier next time, except when it doesn’t but if you’ve got chops it all starts coming together. Eventually.
Fail hard. Fail with motherfucking gusto. Succeeding, like flying, is throwing yourself to the ground and missing.
Good luck.
August 6th, 2007 at 7:38 pm PDT
[...] “Fail hard. Fail with motherfucking gusto. Succeeding, like flying, is throwing yourself to the ground and missing.” — Jeff Hodges, offering advice on how get people to hack on your project [...]
August 6th, 2007 at 9:57 pm PDT
Great article.
I must say, I’m coding hard since two years now, on different projects, and I’m always trying to get friends on it :-)
Always it felt. What you are talking about is so true, and it’s really nice to see your conclusion on this.
I hope it will help me for the future, when working on bigger project or maybe building a start-up, who knows.
August 6th, 2007 at 10:24 pm PDT
Thanks. I hope your search goes well. :)
August 7th, 2007 at 1:47 am PDT
You make awesome points but your post is extremely difficult to read because of the profanity.
August 7th, 2007 at 12:30 pm PDT
Your post is easier to read because of the profanity.
Thanks for being a real-live human being who gives a shit.
August 7th, 2007 at 6:09 pm PDT
Thanks, guys. Glad you enjoyed it.
August 7th, 2007 at 6:38 pm PDT
Awesome post. :)
August 9th, 2007 at 5:47 pm PDT
[...] “Fail hard. Fail with motherfucking gusto. Succeeding, like flying, is throwing yourself to the ground and missing.” — Jeff Hodges, offering advice on how to get people to hack on your project [...]
August 10th, 2007 at 12:53 am PDT
I feel honored to be given the opportunity to read this, I found it by chance or actually this post found me, by fate, by luck, or by whatever the fuck ever, I don’t know, but I now know what it takes and what I must do in order to fulfill my goals, satisfy my ambitions and live my dreams.
I will revolutionize the way people interact with computers. I just never wanted to do the work, I felt like coming up with all the innovative ideas, designs and concepts was the proof of my commitment, especially since I would spend hours upon hours of drawing, witting, trashing, re-designing, re-collecting new ideas, and countless hours of research, and then some and even more. I am already an insomniac.
After that I would put as much of the similar ideas together as I could and then wrap them up in loads of marketing hype and tell everyone who cared enough to read my posts that I was a prodigy, a genius in both software and hardware design and innovation, but most importantly implementation. I even came up with a company name “cubytes” search for it and you will find me.
I also would come up with ad campaigns and totally attractive names to call my ideas and concepts, but as you put it, I am basically wasting time until I start laying down code, to prove to everyone that I know what I am talking about I must first do it myself, I guess I am not the next steve jobs after all.
NOW I HAVE TO BE STEVE AND FUCKING WOZ.
August 12th, 2007 at 5:38 pm PDT
Thank you, Jeff. Great post. This is the first blog post I have ever bookmarked :)
Very enlightening.
August 12th, 2007 at 9:49 pm PDT
Wow. Thanks again, everyone.
August 15th, 2007 at 8:03 pm PDT
I loved the last line. Douglas Adams did spell it ALL out for us, didn’t he ?
August 15th, 2007 at 10:33 pm PDT
[...] “Start writing it.” (Jeff Hodges) [...]
August 16th, 2007 at 1:12 am PDT
I am going to go out on a limb here
I need help
So I have some ideas So I have some designs and concepts So I have all kinds of open projects
so what
what do I do with them?
Ever since I can remember I was always a dreamer free from structure and conformity free from meaninglessness
I have an agenda I have a plan and I have the ambition to overcome anything that stands in my way
I just can’t do it all by myself
I have a wandering mind wandering from idea to idea thought from thought project to project with the hope that I might in some way make an impact on the future of technology I have so much creative potential
I don’t know how programmers do what they do but I do know that it takes determination will-power and unyielding effort
However being a rebel without a cause never achieves anything
I can give you a cause I can give you a reason I can give you concepts, ideas, and designs that may literally revolutionize the way people interact with computers
I have nothing conclusive or final I have no code to show you I have no mock-ups
I do have pages and pages of notes and details pages and pages of sketches and storyboards
That I have spent hours upon hours of brainstorming with tons and tons of research and consideration put into almost every little detail
I am going to warn you the projects that I propose will not be easy they are not simple cookie-cutter solutions but rather a whole new beast a whole new take and most importantly a whole new approach
if you are interested then drop me a line and I will tell you just exactly what I have in mind thank you for you time
August 16th, 2007 at 1:13 am PDT
do a google for “cubytes”
you will find me
August 16th, 2007 at 4:46 am PDT
Derik: Thanks, but I’ve got my own things to work on, right now. Good luck, however.
Raseel: Absolutely. :)
May 4th, 2008 at 7:13 pm PDT
[...] snooty about it, but if the framework turns out well (or, at all, really), I probably will be. Like I’ve said before, my ego knows no bounds. But, remember! It’s just for fun. Really. [...]
June 18th, 2008 at 5:33 pm PDT
new backseat bangers clips…
new backseat bangers clips…