As my CEO has said, it’s ok to fail as long as you learn from it. So I’m analyzing this gigantic failure to try to get as much knowledge from it as possible. I don’t want to fail this hard again…
Let me start from the beginning of this wonderful lesson. I was asked to lead a project team for Ann Arbor GiveCamp. In case you haven’t read all of my posts on GiveCamp, it’s a weekend-long event where technical volunteers come together to help non-profit organizations. Generally the volunteers give just their weekend and walk away from the event with no obligations.
I hadn’t lead a project team before, but someone had to step up so we could help more non-profits. So I stepped up.
Failure 1: I didn’t ask anyone for advice on handling a project at GiveCamp. I know plenty of folks that have run successful projects at past GiveCamps, but I figured “I’ve got this, I’ve done enough GiveCamps.”
Lesson 1: Nope, you don’t “got this”. Ask for advice, ask for lessons learned. Ask folks that have lead teams before what do they wish they had done differently.
I got my project prior to GiveCamp like most leaders, read through what the non-profit wanted, and had a phone meeting with the non-profit rep. I had a good general idea of what needed to be done.
Failure 2: I didn’t get specific enough.
Lesson 2: Get specific details. Get the Trello board set up prior to GiveCamp. Lay out all of the work that needs to be done – Every. Single. Bit of work. Lay out the must-haves and the nice-to-haves and make sure that the non-profit agrees with everything.
I met my team on the first day of GiveCamp. After the opening ceremonies (I was trying to help as an organizer at this point, getting people to the ceremony location, etc.), my team gathered. I had us all say our names, and what we do.
Failure 3: I didn’t know my team well enough. There just isn’t enough time to get to know everyone – their strengths, weaknesses, what they can and can’t do, what they will and won’t do.
Lesson 3: Try to glean as much from each person as you can. Not just what they do for a living, but all of the above – what they can/can’t/will/won’t do. Express the importance of honesty and openness on the team – if you can’t do something (or don’t want to), let us all know so that someone can. Also, understand everyone’s schedule – some folks are only there for the first night, and rather than finding that out just when they’re about to leave and they could have been doing something much more important or helpful, get everyone’s schedule out in the open at the beginning.
Underline the importance of all of the work getting done – no room for laziness. This is for the non-profit, not for your resume.
We had a trello board with a general list of things that needed doing – each card had a checklist on it of the various things that each item needed to be done to make that thing “done”.
Failure 4: Oh man the disorganization. Not everything was on the board. Not everything was in each card. Not everyone was using it properly.
Lesson 4: Definitely need a better way to track work. Getting the board up and populated before GiveCamp would have been helpful here. Rather than having checklists, have a card for *everything* that needed to be done, including testing. And make sure everyone is using it! Check in every hour to see what’s in the Done column, what’s assigned to who, make sure we’re not spinning our wheels. Hell, maybe have a team standup every hour or so.
We find out, late Saturday, that there’s a bug in the checkout page of the store on the site we’re working on.
It’s a critical bug, we can’t go live with it.
Failure 5: It took far too long to find the bug. Why?
Lesson 5: Work, and more importantly testing, wasn’t defined properly. The site was being tested but from a user that was already logged in to WordPress – but most of the end-users of this site won’t be. And that’s where the bug was.
The person who was responsible for it said they were too lazy to set up a PayPal developer account in order to test checkout and donation (or to find out if someone else had one and ask them to test it). I didn’t flip out on this person, smacking them and telling them that if they want to be lazy get the fuck out of GiveCamp, this isn’t for lazy people this is to help a fucking charity, stop being an asshole and help for fuck’s sake. I didn’t flip out on them, but I should have. It’s inexcusable, and as a leader I shouldn’t just roll my eyes and try to pick up the slack, which is what I did. Part of that is my social anxiety/not wanting conflict thing.
We keep getting the rest of the stuff done, still trying to find the cause of the bug and trying to fix it off and on.
Failure 6: We needed a plan B sooner. But we kept spinning our wheels. And subequently, myself and one of the members of the team (who volunteered to do this) kept trying, off and on, to fix it for several weeks after. It was determined that the theme was the cause of the bug, so this other person rebuilt the theme from the ground up. For several more weeks, off and on, we tried to get this new site back to the non profit’s specifications.
Lesson 6: Be more agile – if it’s not working, fucking fix it. Ask for help during the standups. I let it get drawn out for weeks and weeks and weeks. I had suggested we go live with the site without the store, while we try to fix that bug. The non-profit didn’t want to do that. The store was integral.
Finally, months later, the non-profit asks for all of the files we have. They have to pay for someone to finish it, they can’t wait for us anymore. They need the store up and running to generate revenue.
When I get this email, I’m devastated. I knew this was coming – how could it not? We couldn’t keep spinning our wheels forever. I should be relieved, that this isn’t on me anymore. But I’m not. I’m angry with myself for leading the project so poorly. For failing so hard.
I thought that writing this out, walking through all of the lessons I’ve learned in this, would help me to work through the pain of failure. To put a positive spin on it – “hey, look, I’ve gotten better through this!”
I’m not sure that it’s helped me work through the pain of failure, but at least I know what I can do better next time, and how to not fail at GiveCamp again.