Here’s a second post from Rachel Morris with great advice and suggestions for both project managers and the team volunteers to make the most effective use of time and resources at GiveCamp.
Project Managers (almost as rare as the elusive Designer unicorn), enable GiveCamp programs to provide for the sheer number of non-profits they do with so few people, in such a short time. We are the facilitators that keep projects focused and moving, with responsibilities to both the non-profit side and the volunteer coders.
To begin with, we are the interpreters. Non-profits rarely have the luxury of having full time tech people on staff and as a result, may not have anyone tech knowledgeable at GiveCamp. Conversely, not all tech geeks can speak human!
Priority one is to do a good job of translating what they’re asking for into tangibles for your dev team. This may mean anything from sitting down with colored pencils and paper to mock up a web page with your Non-Profit representative, to creating a written Project Dictionary for both the dev team and the end users. We tech types use far too many acronyms that mean nothing to non-techs. Don’t assume that just saying “a CMS is a Content Management System” will do the trick. Judge the end users’ level of technical understanding and moderate it accordingly, perhaps adding “that’s the tool we’re setting up to allow you and your people to be able to edit event listings, add new web pages, and generally have control over any information your website shows to the public.” The translation goes both ways – you may have to translate “We want it to handle our widget giveaway program” to “Create an inventory management and tracking system which stores the following data and limits recipients to X widgets per month.”
Be Aware of Time Constraints
Before getting started (ideally through emails to your team members), check what people’s schedules are for the weekend. Some of your team may be staying off site, others may have plans that take them away mid-day, or may be leaving early. Plan your resource usage accordingly, including time to transition work to someone else if it’s not complete. Don’t forget to include the non-profit team members in this planning – you may need their input for critical aspects of the task.
Balance Skillsets with Interests
You may have multiple people on a team who can do the same kind of work – make sure that each person is not only working well for the project, making the most of their skills, but also that they are doing things they enjoy. Person A may be slightly slower at creating a file reader than Person B, but Person A may have been looking forward to the challenge and may get more out of it. If the file reader creation would hold up the rest of the project, perhaps A and B can work on it together, but if its delay just means it gets incorporated at a later stage, put Person B on tasks more suited to challenge someone who’s already done fifty file reader projects. Make use of your non-profit representatives, too – even if they aren’t technically savvy, they can do data entry/cleanup, they can answer questions regarding style and feel of the organization, and they can get in touch with other people in their organization if the answers aren’t immediately to hand.
Most of us are here because we want to help give back to the community and don’t always have the luxury of a longer stretch of time to do so. Working at GiveCamp pace is a kind of 48 hour long adrenaline rush, too. That we come out the other side having accomplished amazing things for an appreciative group of people provides a high unlike any we’ll get at everyday work.
As PMs at GiveCamp, we need to make sure we help our teams make the most of that feeling – we set the bar high enough that it’s a stretch, but not so high that failure is an option. (In fact, if we’re on the path to failure by mid-day Saturday, we need to regroup with the facilitators to get additional resources or redirect the project.)
One of the best ways to create a challenge environment is to split your project’s requirements up into the “must haves” list and the “wouldn’t it be nice” wish list items. Make sure everyone’s aware of both lists, posting them boldly in your work area, but assign the must haves, first. As team members complete their portions of that list, have them take ownership of a wish list item and fulfill it.
As items are completed on either list, don’t erase them – just cross through them. That way, anyone caught up in the intensity of their own work can, at a glance, see how the project’s doing. It also creates a friendly, competitive environment to keep up with your teammates’ pace. Vital to the challenge is that if you run through all must haves and are well on your way to your wish list items, add to it!
Don’t Micro Manage
As much as you have responsibility to the Non-Profit Client, you also have responsibilities towards your team. Just as you have talents as a PM, and may also have tech talents, they bring a wide array of experiences and skill levels to the table, too. Listen. Provide challenges and allow your people to rise to them by finding the solutions they are capable of in the time available. Suggest, don’t require. If you have experience, you may want to share how you achieved a similar outcome, and perhaps give code guidance if they want it, but the development crew needs chances to shine, too. You don’t have to do it all.
Don’t let your team get interrupted by distractions or sidebars – you should be the team’s gofer. If a developer pops his or her head up from a problem and says “I can’t do this until we know the IP address of their website!” then you, not the developer, should be the one chasing that down. Let your team know that they can ask you for things so they can go back to the hard work of high speed development.
Do Touch Base
Plan on periodic “check-ins” with your team to ensure the project is still on point and on target, time wise. Review the elements each person is responsible for and how they’re progressing. Let people show off their achievements. While it’s a team effort, your people need credit for their hard work. For incomplete items, ask if anyone needs additional resource. Determine how to fulfill the needs (whether it’s teaming up two people or grabbing a specialist who’s free from another team).
Encourage Real Breaks
While the time pressure is intense at GiveCamp, it’s important to remember that we need to let loose and give ourselves perspective. By late evening, Saturday, our team was wound up pretty tightly, hunched over computers, necks aching, eyes bloodshot…we decided to go for a brief walk around MIT. One member of the team knew the area well and took us on a tour and, half an hour of fresh air later, we came back revitalized and ready for another long night of coding.
Most Importantly – Plan for Handoff
You may have the most perfect team and the most amazing results at the end of 48 hours, but if your GiveCamp recipient can’t take the next steps and actually use it, the time has been wasted and the team will feel like failures. From moment one, plan for your handoff – what are the takeaways you’ll provide the customer? Is it a DVD with files? A live website? Who needs to know what to keep things moving, come Monday? What passwords will they need?
You can help transition the project back to your client by keeping an ongoing file of these items as you go. If the team develops a custom tool, make sure screen shots of the relevant windows are taken and incorporated into the documentation with at least rudimentary (bullet point) how-to notes. Be sure to include a list of languages and/or tools in which their product has been developed. This will help them find additional development where necessary. Spend an hour or so towards the end of day two working with the team to make sure nothing’s been forgotten. All these steps lead to a fun, albeit intense, weekend with talented colleagues, and improve the likelihood of project success once the client is back home without GiveCamp support.