I have been working on prosper for the last few months, I started thinking about it in early October and according to GitHub my first commit was October 22nd. This project has been great fun so far and I'm not even close to a 1.0 release yet (right now prosper is at 0.6 well on its way to 0.7). I have learned a ton on this project that I would have never guessed before I started.
- The joy of GitHub
- The terror of phpDoc
- The prodding of friends
- The camaraderie of other developers (Will Bond and Jeremiah Peschka)
- The vulnerability of releasing the project
- The drive to keep improving
I completely underestimated the amount of work prosper would be, and I don't mean coding (although coding has eaten up a large chunk of the time I normally fill with playing Borderlands). I didn't realize the amount of work it takes to manage even a small project like this. GitHub has been an amazing resource, but at the end of the day it is a tool, and you need to spend time learning how to use it and populating it with data. Writing up documentation, reading documentation, creating examples, running tests, working with collaborators, discussing technical problems, it has been a mountain of unexpected stuff. Now I'm not complaining, this was the challenge I wanted, I'm learning a ton of new stuff, making great new connections, and pushing myself in ways I never have before. One of the most important new hats I'm learning to wear is promoter
Let's say you have a great idea (like a standardized php database abstraction layer), and you decide to invest your time and energy into it. Great, you start coding like a madman and you have something working, you are working out the kinks, enjoying it, really making something worthwhile. After a while you have this project to the point where you think others might be able to use it, what do you do?
- It's too much work to do anything, just let the bits sit on your harddrive
- I need to share this with people, I'll toss it on GitHub / BitBucket / SourceForge / etc
- I want to promote it
- I'm going to get others involved
Those are the steps that I went through, and I would imagine a lot of people do, really I'm at step 2.5-ish, I created some pages within WordPress for prosper, but I plan on spinning out a standalone website for prosper at some point. The list looks easy but the problem is that you have to push yourself, because each step is costly.
To go from step 1 to step 2 you need to push past that voice in your head telling you to apply more polish. You need to push past any indecision or fear of criticism and get your code out there. The next step is to promote the crap out of your project. This step is difficult because how do you even go about it. Here are some ideas.
- Create a sample application using your project
- Give your project a home and shamelessly link to it
- Promote on reddit, Hacker News, etc.
- Get friends more famous than you to push it, if you don't have famous friends, start sending out emails, the people that I've talked to have been really great
- Submit your project for review in any pertinent technical website (like PHP5 Magazine, which may actually be defunct)
For step 3 you have to push others, push friends, and push yourself to get your project on people's radar. Now for the next step, getting others involved. You should have created some connections and hopefully some users, enlist them to make your project the best it can be. User's can submit bugs, feature requests, and patches. Other developers can polish up bits they are interested in, as my good friend Jeremiah did. Getting more eyes and ears and noses in your project let's you refine and build, spreading complexity around.
The point of everything is that you have to push. Even great ideas, great code, great projects can fall to the wayside if no one pushes. Promoting the work you do is nearly as important as the work itself, if no one ever uses your code, no one will care about the months of effort you put into making it beautiful. Get out there and be passionate, genuine, and don't stop pushing.
Tomorrow I will be picking up the gauntlet that Jeremiah Peschka threw down today in What is Your Biggest Weakness? Tune in tomorrow to see what my biggest weakness is, and see who I challenge next.
No comments:
Post a Comment