Image credit: http://www.smartsheet.com/
Recently I’ve moderated many conversations on managing engineering development work. How do we set goals and objectives? How do we stay on track with timelines and milestones? How do we coordinate work?
Many brilliant technical people can get a massive amount of work done by themselves. However, many feel a bit underprepared when they transition from an individual contributor role to a team lead role. While they might still be doing a lot of technical work, a core part of their role now involves project management. This is a new skill they have to learn. Mastering this skill is the first step to scaling any technical organization.
Here are five steps to successful project management, that might help people who are new to this activity.
1. Set clear goals and objectives
The first thing to do with any project is to define the project. What are you trying to achieve? Here are some goals and objectives for three fictional projects:
- Customer development project for a wearable device: To develop a deep understanding of the role of activity measurement on training regimens for amateur athletes
- Website MVP development: To develop a prototype educational website to help parents of children studying Suzuki violin support their children’s learning process
- Technology feasibility study: To explore the feasibility of developing a novel 3D machine vision sensor for use in a bin-picking application for reflective metal parts.
A good goal will let you infer the nature of the project and the type of activities immediately. In the above examples, the first goal indicates a primary market research project with persona development as the deliverable. The second goal will produce a minimum viable product for an educational website for hypothesis testing. The third goal will produce an assessment of the viability of a set of technologies (3D sensors) to solve an application problem (bin picking) under difficult conditions (reflective metal parts).
2. Form the team
Once the goals are clear, it should be straightforward to decide who needs to work on the project.
- A customer development project would involve primary market research. Who can design the research protocol? Who is good at listening? Who can document with notes, pictures and video footage? The team will probably end up comprising 3 or 4 people just from a practical standpoint – since interviews are time consuming and interviewers need to go in teams of 2 or 3.
- A web development project would need someone to define the content strategy and write the design brief, someone to design the information architecture and interactive design, someone to take care of graphics, and someone to code it all up. In this case it could be the same person, although a team of 2 would make the project go much faster.
- A technology project will require people with expertise in the areas being explored. Who is a machine learning expert? Is that person a machine vision expert, or do you need a second expert? Who is deeply knowledgeable about the application and the reflective metal parts? This will likely be a team of 3 at a minimum.
3. Create a program plan with the team
The next step is to get together with the team and come up with a program plan. There are some key tricks to creating a good program plan:
- Break down the work into tasks: do a thought experiment of how the project can play out, and write out the major tasks involved. For instance, the website MVP project might yield 20 or 30 distinct tasks.
- Group the tasks: look for patterns in the tasks, and group them together – this really helps keep things in context, and also helps you plan out the order in which things should happen.
- Identify and deal with cross dependencies: Who needs the output from whom in order to proceed? For instance, the coding of the website cannot be completed until the graphical assets are delivered. That and other cross dependencies need to be noted, so the work across all team members can be coordinated to minimize elapsed time.
- Set and publish milestones and deliverables: For better or for worse, technical teams work much better when there is a tangible deadline to shoot for. Work with the team to define intermediate milestones and determine their timing. These are mile markers on the marathon that will help you keep pace.
4. Publish the plan, and start managing against it
Now that the plan is created, publish the plan for all stake holders, and start managing against the plan.
- Create a recurring meeting to coordinate work. Create a recurring meeting to get the whole team together for updates and to raise issues and concerns. It can be a sit-down meeting, stand-up meeting or a virtual group chat – different projects have different cadence needs. The important thing is to have some forum to keep the team coordinated. I personally like to have weekly meetings for overall context, and very short daily stand-up scrums for rapid issue resolution. See my post on meetings for details.
- Manage cross dependencies aggressively. Where there are many cross dependencies, make sure all parties involved are constantly reminded about who needs what from whom. If there are any lags or delays, raise the issue immediately and discuss mitigation measures to catch up from those delays.
- Communicate, communicate, communicate. The more you communicate, the better informed the team members, and the better they are able to work in a pack to meet the goals of the project. Push information about the big picture to the team constantly. Wander around and talk to team members to see how things are going. Keep the lines of communications free and clear.
- Resist the urge to micromanage. The need for over-communication should not be confused with the desire to get into every gory details. People need to have the space to do their own work. You will need to find your own balance between getting out of people’s hair and pushing information their way.
How do you keep track of the program plan? What tools are available to help? Project management tools are a topic for another day, but really, anything that works for you would do. If you don’t have experience with project management software, a basic spreadsheet is better than nothing. If you have experience with Gantt charts, that’s a marvelous way to communicate overall project plan and status at a macro level. Tasks can be managed in multiple ways, and depending on the type of project, some tools work better than others. Stay tuned for another post focused solely on tools available to help manage work.
5. Celebrate successes
One thing that new project managers don’t do enough of is to celebrate successes. Sometimes they may feel self conscious praising team members for seemingly small achievements. Do it anyways! Do it early and often. The team needs it from you, as much as they need you to keep them accountable for meeting milestones and figuring out why things didn’t work as planned. Praise the team early and often – it’s very important that the team feels good about what they have achieved.