Successfully managing Web and application development in today's fast-paced and complex digital world requires a special kind of leader. It's not enough to simply be organized or a skilled multitasker able to manage the numerous moving parts that go into building digital experiences.
Producers also need the quick wits to know how to play off each developer's unique personality and ego, when to involve the appropriate team members (creative, UX, analytics, quality assurance), and perhaps most importantly, how to best manage client expectations.
It's certainly a juggling act, but one that flows much smoother with certain guidelines and procedures in place. It took me many years of Web development experience - first in client implementation and training, then on to quality assurance (QA) testing, through the treacherous world of being a technical support lead and now an interactive producer - to feel comfortable managing the "controlled chaos" that is inherent in digital production.
Here is some guidance borne out of many late nights and weekends full of virtual blood, sweat and tears that should help you successfully manage a digital project and maintain your personal sanity.
Understand the Overall Roadmap
Have a comprehensive plan that takes you from A to Z (a.ka. the completed project) and know it inside and out. This starts with a statement of work (SOW), which is the backbone for what is being promised to the client at an agreed upon budget. Then create a schedule that outlines the earliest stages of planning, all the way through final testing and delivery. It's important to keep this schedule updated and continually share it with the client to keep them up to speed. Scheduling software such as Merlin can help you accomplish this task. A realistic schedule is also crucial to creating task assignments that allow you to segment work properly and prevent an overlap of duties.
When it comes to tracking and managing the overall project per the roadmap, forget spreadsheets. Use a central online project management and bug tracking system where everyone on the team can see the statuses of what's being worked on, who's handling each task and where each step stands for being QA'ed and signed off. There are many free project management tools available online, as well as those for purchase such as activeCollab.
"Sprints" and "Scrums"
Run the project as an iterative process, with planned weekly and monthly deliverables. Having tasks planned out will provide the producer with a queue of work items to assign. These can include a mix of legitimate bugs, client requests, and actual work items and tasks from the overall roadmap. Then determine the goals for that given time, and execute and deliver on those for that period.
Short bursts of planned activity, known as "sprints", will set realistic expectations to get the team to a point of comfort and keep the workflow on course.
Beware of the dreaded "scope creep", where features not originally referenced in the SOW are added to the queue. These new requests, which can come from your team or the client, are sometimes necessary as project circumstances change and need to be tightly managed. For every action, there is a reaction, and for every new element added to a project, there should be something else that's dropped. For each addition, the producer must be the decider on new priorities for the given sprint delivery.
Have morning "scrums", which are daily 10- 15 minute standup meetings where all members of your team state what they worked on yesterday, what they plan to do today and give a heads up on any potential roadblocks preventing progress. These brief meetings help set expectations for all parties and enable the producer to manage deliverable better. Clarity is king.
Manage Client Expectations
Mid-project is not the time for surprises. Have frequent and fluid conversations with the client so everyone is on the same page and up to date on status and issues. Establish a working relationship where everyone is on the same team, and the goals for both sides are unified in delivering a finished product that makes everyone happy. Have weekly client status meetings, typically around a delivered product, and keep the schedule current and visible to the client.
While not always possible, make an effort to be friends with the client and not just a hired hand. It always helps if there's a level of comfort between the two parties, allowing for communication to be open and honest.
Manage your team
Properly managing your own team is just as critical as managing the client. A typical development team always consists of varying personality types, each of whom require a specific approach for managing. Some people need more hand holding while others perform best when allowed to run with it. Either way, managing the personalities is a challenge requiring tact and patience. It's nice to all be friends, but you all also have a job to do.
As with dealing with clients, I typically take the friendly route. When your team knows you care about them, it creates an environment where everyone believes in the end goal and bonds throughout that process to get to the desired result. It usually also makes everyone happier and more productive. However, the producer is the captain of the ship and ultimately must decide the approaches that work best in given situations. Sometimes the nice guy has to be less nice, and it's important to know when to get strict and not let friendships take advantage of you.
One last note: All the rules in the world won't prepare you for every situation and solve every problem. Just as the creative process involves a certain amount of improvisation to accommodate better ideas that sometimes come out of left field (often at inopportune times), so too does a digital development team's need to remain agile and flexible enough to make decisions and changes on the fly.
Everything is a process, and the more planning and ongoing communication you bring to the project, the greater likelihood you'll have a fighting chance of completing the work on time and within budget, and with your sanity intact.