Generally speaking, one of two things happen when I tell people that I’m a project manager for a software development company: 1) their eyes glaze over, and they politely say: “Ohhh, good for you!” or 2) their eyes glaze over, and they politely ask: “But what do you actually… do?” And you know what? I don’t blame them. The idea of project management applied to the complex and sometimes-insular world of software development can be hard to grok for someone not already steeped in our ways. So pull up a chair and I’ll explain what it is that I do, how I add value to projects, and along the way hopefully demystify some of the tools and concepts that we leverage here at BRS in order to help our clients be as successful as possible.
THE JOYS OF BUILDING PROCESS
As I approach each day, I try to remind myself that my core responsibility as a project manager (PM) is to promote three things: communication, efficiency, and transparency. (Good PMs are also concerned with other important factors which all conspicuously start with the letter M, like minimizing risk, mitigating technical debt, and managing expectations, but for the sake of this primer, let's keep things straightforward.) Everything that I do on a day to day basis is ideally done in service of this trifecta. “But Aidan,” you rightfully ask, “how do you actually do that?” The answer: I build process! By building and maintaining processes that everyone subscribes to, I help ensure that teams do their jobs to the best of their ability, while sidestepping endemic roadblocks like ambiguity, miscommunication, misaligned expectations, and scope creep.
Now, I wish I could take credit for redesigning the wheel for each new project in order to build said process, but the reality is that BRS relies heavily on a few institutions for software development teams: Agile, Scrum, and Kanban.
A PHILOSOPHY AND TWO METHODOLOGIES WALK INTO A BAR...
Terminology is often a barrier to entry, so let's take this opportunity to quickly break down these concepts before I talk about how we use them at BRS to set projects up for success:
Agile is a philosophy that was collaboratively established in 2001 as a rebuttal to traditional project management practices (collectively referred to as ‘waterfall’). The simplest way to differentiate the two is that Agile privileges constant iteration and collaboration rather than a rigid process with one final deliverable handoff. The fundamental principles behind Agile are incredibly succinct, and I highly encourage you to read through them. Kanban and Scrum, described below, are methodologies that give us the tools to put Agile principles into practice.
Kanban, Japanese for the card at the heart of the Kanban board, gives us a way to visualize, prioritize, and track all of the work for a given project. Staying organized using Kanban boards helps us control in-progress work to keep things manageable and productive for dev teams, and it promotes transparency by making it very easy to understand where different features are in the development pipeline. At BRS, we use Trello to manage our boards.
Lastly we have perhaps the most well-known Agile methodology: Scrum. Scrum is another framework that empowers development & product teams by structuring their meetings, defining roles, and introducing other core concepts like the product backlog, where a prioritized ‘wishlist’ of yet-to-be-developed features live, and sprints, which are increments of work within which the development team has clearly defined goals.
I LOVE IT WHEN A PLAN COMES TOGETHER
Alrighty, now that we’ve discussed my goal as a PM (build process to promote communication, efficiency, and transparency), and introduced some concepts to help facilitate said goal, it’s time to talk about how we put all of this in motion. As we move forward, it’s important to understand that our clients are our product owners - that is, they are the ones with the vision of what we’re building - and as such take a crucial and active role during every project. Ensuring that clients understand this role, and their responsibilities throughout the project, is a very important piece to the PM puzzle. At BRS, we boil the project lifecycle down into granular phases, but my day-to-day areas of focus remain consistent: educate, coordinate, document, and help maintain momentum. Let's dig in a bit further.
Many of our clients don’t have a background in software development, so it’s important for me to be an evangelist and advocate. Clients will be sitting in on demos, sprint reviews, managing a backlog, and regularly adding clarity around design and definition, and we love this constant communication. It’s what makes us so successful! Heading into a new project, I’m the go-to resource for questions regarding process, implementation, or simply: “I don’t know who to ask, but here we go...”
The other half of process education is its actual design and execution. We’ll work together to determine sprint length, set cadences for sprint reviews, retrospectives, and demos. We’ll define workflows and communication paths for managing our Kanban boards, so you can see exactly what’s being worked on and when it’s ready for testing. I’m here to make sure all of this happens in a way that makes practical sense for both teams, and to ensure that we’re agile when we need to be, and tweaking our process as necessary.
I know mentioning ‘documentation’ conjures up images of court stenographers and technical manuals, but in the software development world, good documentation means that our teams have everything at their disposal to create the best products. Actionable info, is how we refer to it. In practice, good documentation means well-defined user stories, up-to-date Kanban boards, and a frosty backlog filled with regularly defined/prioritized work. This is good documentation, and the resultant ‘everything in its right place’ feeling is one of the best parts of my job. And don’t get me wrong - BRS will still build more traditional documentation as deliverables during different stages of our projects, but using our tools to their fullest potential to stay organized is a core part of process-based documentation.
In Scrum, one of the primary responsibilities of the ScrumMaster role (yes, that exists) is to remove roadblocks for team members. I think about this often, as it’s also a core component of my role as a PM. Now, this doesn’t necessarily mean actually solving problems on behalf of team members, but rather ensuring that everyone has access to the appropriate resources, meetings, time, and problem-solving tools in order to to successfully detangle issues as they arise. “Maintaining momentum,” in this context, can mean many things: it might mean helping a product owner define a particularly challenging feature. It might mean facilitating an internal meeting with resources from another team who have important institutional knowledge to bring to the table. Maybe it means doing an organizational pass on a development board to ensure that we have traction on all in-progress work. Perhaps it’s reviewing sprint reports and burn-down charts so that we have an eye on our team’s velocity. Part of the fun of PMing is finding new and effective ways to make sure teams are rocking and rolling.
And there you have it! A breakdown of some of my responsibilities as a project manager for a software company, and some tools that we bring in to ensure success. This is certainly not a soup-to-nuts comprehensive breakdown, and you still may be wondering exactly what a sprint is, or why keeping a backlog organized is so important to the success of a project, and that’s okay! There are plenty of fantastic resources out there if I’ve piqued your interest, and hopefully in the meantime you’re able to walk away with a better understanding of the role I play as a project manager at BRS.