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.

18 Responses to “How to Get Your Project Moving, or My Ego is Massive and You Should Listen to Me.”

  1. eighty-eight miles per hour » Blog Archive » QoTD: Jeff Hodges Says:

    [...] “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 [...]

  2. Gianni Says:

    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.

  3. Jeff Says:

    Thanks. I hope your search goes well. :)

  4. Moi Says:

    You make awesome points but your post is extremely difficult to read because of the profanity.

  5. Yo Says:

    Your post is easier to read because of the profanity.

    Thanks for being a real-live human being who gives a shit.

  6. Jeff Says:

    Thanks, guys. Glad you enjoyed it.

  7. Stoffe Says:

    Awesome post. :)

  8. Jeff Waugh: QoTD: Jeff Hodges // The Linux Index Says:

    [...] “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 [...]

  9. Derik Says:

    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.

  10. Dylan McCall Says:

    Thank you, Jeff. Great post. This is the first blog post I have ever bookmarked :)

    Very enlightening.

  11. Jeff Says:

    Wow. Thanks again, everyone.

  12. Raseel Says:

    I loved the last line. Douglas Adams did spell it ALL out for us, didn’t he ?

  13. Stringybark and Greenhide » Blog Archive » how to get your project moving Says:

    [...] “Start writing it.” (Jeff Hodges) [...]

  14. Derik Says:

    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

  15. Derik Says:

    do a google for “cubytes”

    you will find me

  16. Jeff Says:

    Derik: Thanks, but I’ve got my own things to work on, right now. Good luck, however.

    Raseel: Absolutely. :)

  17. Something Similar » Blog Archive » The First Commitment Says:

    [...] 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. [...]

  18. new backseat bangers clips Says:

    new backseat bangers clips…

    new backseat bangers clips…

Leave a Reply