Agile With a Lowercase ‘a’: The Art of Collaborative Project Management
The discovery phase has ended. Your client is excited. The estimate is finalized. Your team is ready to take on the project with an unstoppable ferocity. And then it happens. The lull, the drag, and the ever infamous post discovery hangover. You have the budget, you have the idea, but what next? How do you get the wheels turning to put the machine into motion? How do you keep your work unified?
Our approach to battle this ever daunting feeling is to implement a system that, once in motion, is an unstoppable, self-maintaining machine. Our goal for each project is to create a unified approach. We implement projects that satisfy client contract and budget needs while keeping collaboration a priority.
This approach is not like most agile processes. We coin it agile* *with a lowercase ‘a,’ because we use the most basic concepts of the agile manifesto as a guide without creating a rigid system. The core of the process is the same but it is more scalable and adaptable to each project and project team.
Our goal is to grab the best parts of agile and modify it to fit the needs of the project, team, and client partners.
Not every project, client, or internal team is the same, so we don’t expect success out of a one size fits all process.
Collaborative project management. Think Moneyball. You don’t need a superstar in any single role, you just need to know the positions you need to fill and help your team to play off one another’s strengths. Each team member needs to understand their role, responsibility, expectations, and how to make an impact on the project.
“The best architectures, requirements and designs emerge from self-organizing teams.” -The Twelve Principles of Agile Software
How do you set-up teams to self-manage? That’s where the beauty of the agile framework lends stability to the process. Our approach is to take the values of agile development and bend them to fit our process.
Below is our approach to a successful implementation phase based on our interpretation of the Agile Manifesto.
Meetings and communication
Individuals and interactions over processes and tools.
1. Find tools that support your workflow versus hinder your production. Predictability is a good thing when it comes to communication. You don’t want to waste 5 minutes of a 15 minute standup figuring out what the call in number is. Communication tool consistency enables communication efficiency.
2. Support your remote team members and keep consistency with your communication tools. At Elevated Third, we leverage Slack for quick communication between team members. We also use Slack call and screen share features when working with remote teams. Communication is direct and streamlined.
3. Prioritize straight talk and develop a shared understanding of expectations with the project team.
4. Only include necessary team members in the right conversations. Plan focused, short meetings with only the relevant team members maximize the effectiveness of the meeting. We use 15 minute standups to discuss what each team member is working on that day. Each team member is allowed 2 minutes, and anything outside of the 2 minutes is addressed in a separate conversation with the necessary individuals. This method keeps one issue from monopolizing the standup time and keeps the project moving forward.
5. Share a live demo of the work to keep the full team involved with the project progress. It is crucial that the team is on the same page before the client demo.
6. Review with your client team to keep them actively involved throughout the project. This gives them the opportunity to share priority level of features during each phase of the project versus all at once at the very end (which could impact the budget).
Planning and Scoping
Customer collaboration over contract negotiation.
1. Coach your clients to be a partner. It’s important to involve clients in sprint planning and feature prioritization process from the very beginning. It helps them understand how to be a partner in the project and what the expectations are from the onset.
2. Align on project feature priorities and budget with stakeholders. Internal and client teams should be aligned on feature priorities and budget before the implementation begins. Set the team and project up for success by starting on the same page with the same expectations. Don’t set sail when the boat isn’t built.
3. Use project management tools to aid in efficiency. Efficient, simple task/budget management is invaluable. The project management tools should assist in budget and sprint management. At Elevated Third, we use Mavenlink for budget and hours tracking and Asana to keep our sprints and tasks planned during implementation.
Working software over comprehensive documentation.
1. Find the right balance of shared understanding and documentation for the project. Not every project will need the same type of documentation - especially when it comes to designs. Find the level of documentation needed to keep the project moving forward.
2. Prioritize living documents that are maintained and useful over throw away deliverables. At Elevated Third, we have a set of requirements that we consistently use and scale for each project.
User Stories - prioritize functionality
Risk Mitigation - document possible impacts to budget/timeline
Build Spec - Provide accessible content architecture plan
Features Estimate - Show a full list of features with estimated ranges
Wireframes and Styleguide/Designs - Demonstrate look and feel
Balance the Big Picture and the Details
Responding to change over following a plan.
1. Keep your plan fluid, and don’t be discourage by or afraid of change. Embrace the change and focus on creating solutions that bring the team together for a better outcome. Projects evolve, and successful projects adapt.
2. Set aside time to take on specific problems. Project management is a balancing act. We are required to keep everyone moving while continuously working through blockers. When a potential blocker arises, address it with the key members and stakeholders as quickly as possible so the project can keep moving forward and stay on track.
Don’t bring an opinion to a data fight.
1. When implementation is complete, it’s critical to set aside time for testing. Take the time to ensure the system works together as intended for each user.
2. For successful testing make sure the client team and the project team are testing from the same documentation and that the testing only pertains to the functionality that was prioritized for the project.
Keep Up the Momentum
Don’t fizzle out after the site has launched.
1. Be a strategic partner post launch by tracking analytics and making recommendations based on the original project and business goals.
2. Keep track of features that were out of scope for the initial phase of the project, and prioritize them for future phases.
3. Create a maintenance release cycle to iteratively improve the website or product that was built.
The “highest priority is to satisfy the customer through early and continuous delivery of valuable software.” - The Twelve Principles of Agile Software
This blog post was adapted from a presentation at DrupalCon Baltimore 2017. You can watch the full talk here.