Yesterday I had meetings from the start of my day until the end, and by the time I finished it was clear I was going to get nothing done. So I went to join Chris' Mozilla class to see how their builds were going. Various networking issues and broken tests were the order of the day, but having it work the first time isn't really fair--you need some pain to get you into the spirit.
While we watched build output flash across the screens, I started asking about project selections. Our list of Potential Projects has grown to a fantastic size, thanks in no small part to people like Mike Shaver, Mark Finkle, Ted, Rob Helmer, Ben Hearsum, and others. However, as much as I love where it's at, I was looking at it yesterday from the stand-point of someone totally new to all this madness.
Chris and I were discussing some of the projects we thought people should take, and many of the responses went like this: "I have no idea how you'd do that." I've watched enough students go through this process now--starting at this same point and getting to success--to know that your first task is to let go of the idea of needing to know how to do something. What you need to replace that with is a determination to make a small step. Give up the need to make an important, innovative first step. Your first step is to figure out what you're doing, get something existing working for you. Don't discount "learning what you're doing" as a major and important step to be attempted first.
The thing about working on something real and of value is that it won't be clear to anyone exactly what you're supposed to do. This is going to seem like cold comfort at first. What I'm saying is that even people in Mozilla won't necessarily know the answers. Remember that what you're doing is figuring out what you're doing.
For those of you reading this who are just picking projects, let me prove to you what I mean. Take a look at some recent blog posts by my most experienced Mozilla development students--students who are still faced with "what now?" but have learned how to get over this seemingly impossible wall:
- Armen on learning to hack unit testing into the buildbot try server
- Lukas on fixing problems with a patch that's not well understood, even by its author
- Cesar on figuring out what on earth Active Directory is, and then teaching Firefox how to speak it natively
A good part of what Chris and I want to do with these projects is to teach you how to overcome your fear of doing something new/big/scary, and help give you the confidence to, as Cesar puts it, "take a leap of faith".
I left the class yesterday with my usual feeling of hope and excitement about what's going to happen this term. Chris (tryzo) was already getting that look in his eye about getting plug-in throttle working. Where there's smoke there's fire...