The first major online application I wrote was a petition for the American Friends Service Committee (AFSC) in an attempt to build support against the war in Iraq. The Iraq Peace Pledge was a success in that it gave people a place to voice their frustration and helped encourage the anti-war movement. It was a failure in the sense that the guy writing the software (me) had no idea what he was doing, MoveOn completely stole our thunder (gathering 100 times more names than we did), and it didn’t exactly prevent the war in Iraq.
What it did do was teach a small group of us that the online work was important, harder than we thought, and required skills we didn’t yet have. I could list dozens of mistakes that we made in the course of the project, most of which were totally avoidable if any one of us had known then what we know now, but it was those mistakes that caused me to learn to constantly push to be better at what I do.
The biggest mistake we made was that we allowed ourselves to repeat mistakes. We were sloppy, and allowed the same errors to get posted over and over. My colleague and friend Mark looked at me at one point and said: “Let’s always make new mistakes from here on.” And we pretty much did — for the next 10 years (although he still makes fun of me for misspelling “signatures” over and over on the peace pledge site).
“Always make new mistakes” became something of a slogan for us and the organization’s Web Team. We knew that we didn’t have the resources to having someone else teach us everything we needed to know, we were leading projects in a medium very few people had mastered, and we were human. So it was going to be impossible to avoid mistakes, but we could make sure that we learned from our mistakes, find ways to avoid them, and then push into fresh territory filled with new mistakes we didn’t know existed.
I still use the slogan for my own work, and encourage it with teams I work on. People laugh the first time they hear it. But they discover I’m very serious when I adjust my work process and products to deal with mistakes I failed to avoid during the previous project. And I expect them to do the same.
We all need to work hard to identify our mistakes and come up with ways to avoid them. Some mistakes are easy to see and fix: if you have poor spelling, make sure you have someone double checking your writing. Some mistakes are harder to see: if you use the wrong metrics you may appear to be succeeding while actually failing. And some mistakes are hard to admit: creating a web applications with no experience thinking about security meant I made just about every security blunder possible, and since I knew more about web development than anyone else around me, I resisted attempts by others to point out much I didn’t know.
Think hard about your work, look for mistakes, own them as scars you earned doing something new, and figure out how to make sure you make a different mistake next time.