It doesn’t matter whether you’re a project manager, developer, or designer — whatever role you play in your team’s software project can feel like a huge undertaking. There are many moving parts in software development, meaning there’s a lot that can go wrong. It’s not uncommon for projects to go way over budget, take longer than expected, or conclude with an end product that users have no need or desire for.
To get you headed in the right direction, we’ve put together this short guide of preliminary things to think about as you prepare your own comprehensive plan for your upcoming software development project.
Keep reading if you want to learn:
- What software project management is and what’s so special about it;
- The framework created for software developers by software developers (hint: it’s not a traditional method!);
- The tools that project managers swear by.
Let’s dive in!
What is software project management?
Simply put, software project management is the process of overseeing the development of a software product.
Managing a software project is different from managing non-software projects. Of course, there are fundamentals that you can apply across the board for all types of projects, but there are some things that make software projects particularly unique.
According to Dmitry Nizhebetskiy, founder of Project Management Basics, software project managers must consider that:
- There are many uncertainties in software project management;
- You’re dealing with an intangible product;
- Software development isn’t “standardized”.
These are just some things that make software development a little trickier to manage than their non-software counterparts. That’s why it’s so important to set out with the right methodology.
Picking a project management methodology
First off, you want to pick out a methodology for going about your project. There are many different methods out there, but in your research, you’re likely to run into two major camps.
Hint: One of these is better suited for software projects!
The two main methodologies are:
- The waterfall method (also called the “traditional” method)
- The agile method
The waterfall approach works in a linear manner, where one phase of the project ‘flows’ into the next. On the other hand, the agile method (often referred to as ‘Agile’) is more iterative. Those in software development tend to favor Agile because of that very reason. This particular method mirrors the cycles of testing that software requires. It’s also important to distinguish that the word agile can apply to software project management and to software development itself.
One more note on choosing a method of project management: Adhering to a single framework might not work for you. That’s normal. Allow yourself to adapt your method of choice to your project’s unique needs. That being said, picking an initial framework can steer you in the right direction.
A closer look at the agile methodology
In 2001, 17 software developers came together and created what would be known as the Manifesto for Agile Software Development or the Agile Manifesto. Exasperated with how many companies approached software development, the “Snowbird 17” formulated four values that would change the industry forever.
The four values of Agile are as follows:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
To be totally clear, all of these elements — including the ones listed on the right — have a place in software development. The authors wrote, “...while there is value in the items on the right, we value the items on the left more.”
The four Agile values are meant to shift priorities, so that the project team can focus on what matters, what truly makes for a successful project.
For a better grasp on how you can implement the agile methodology in your next software development project, be sure to read the twelve principles of the Agile Manifesto.
Let’s get into the planning stage while keeping in mind that we’re not going by the waterfall method here. So while any good project requires some initial planning, software development, in particular, requires constant reevaluation and openness to change.
Software project management plan
To create your software project management plan, you must start by asking the right questions.
Below are some questions to get you started:
- Who are the stakeholders?
- What’s the timeframe?
- What’s the budget?
- What are the risks involved?
- How will we define success?
As a project manager, these questions should get your wheels turning as you set out to create your plan.
Step 1: Identify the stakeholders of the project.
Generally speaking, a stakeholder is anyone involved in the project who will be affected by the outcome. It’s important to note that a single project can have many stakeholders, but to keep things simple, let’s identify some of the more common ones.
The usual stakeholders in a software development project are:
- Product user
- Product owner
- Project manager
- Team members
Identifying your stakeholders is essential because these various individuals will shape what success means to this particular project. As a project manager, it’s your responsibility to communicate with all of your stakeholders since everyone will require different things from the end result.
Step 2: Determine the scope.
What are the requirements of the software product, according to the various stakeholders? What are the project deliverables? What’s required to complete the project? Identify what it is that you’re working to accomplish. And then, take it further by specifying what’s not in scope. By defining what your deliverables are and what they aren’t, you establish the boundaries of the project.
Determining the scope will also ensure that you stay on track with your goals. Be wary of scope creep, which can happen when stakeholders start piling on requirements that aren’t necessary for this particular project. In software development, you want to be open to change since the industry moves very quickly. However, the scope is necessary for any project.
Step 3: Assess project risk — then manage it.
Again, it’s all about asking the right questions then putting the right mechanisms in place so that you can prevent or minimize project risk. What could potentially happen to derail the project? Think about what might happen if a stakeholder isn’t satisfied with an iteration. We’re writing this at the tail-end of a pandemic, so maybe ask yourself what might happen if most of your company wants to continue working remotely.
Step 4: Break down the work into sprints.
Within the agile methodology, there are two major sub-methods: kanban and scrum. According to Max Rehkopf of Atlassian, kanban relies heavily on visualization (board tools like Trello are inspired by kanban) and emphasizes getting things done to move on to the next task. The scrum method takes a “divide and conquer” strategy by breaking down the “big picture” larger project into smaller, more manageable chunks called sprints.
Scrum is usually the method of choice in the world of software development, though it’s not uncommon for managers and teams to adopt a hybrid model of sorts. For the sake of this article, however, we will focus on scrum.
Step 5: Set a timeline.
Determine the timeline of the project, being sure to take into account the requirements of higher-level management, developers, designers, product owners, etc.
In the scrum methodology, self-organizing teams work in “sprints,” which are typically two-week-long intervals with a “scrum master” for a leader. At the end of each sprint, teams take time to go over what’s working, what’s not working, as well as receive feedback that will inform future sprints and future work in general.
Note that trust is a huge component of agile, so the concept of status reports isn’t something that agile teams focus on. Vikas Agarwal writes an interesting article about how status reports, according to certain metrics, can be self-defeating in agile project management.
Because software projects require a lot of heads-down work, particularly for your developers, it’s so vital as a project manager that you ensure your developers have enough Focus Time. Focus time is exactly what it sounds like: stretches of time in which you can focus on a given task without other obligations fragmenting your mental bandwidth. No more constantly having to switch gears!
Pro tip: Use a time management tool like Clockwise to optimize your schedule. Clockwise is a smart calendar assistant that arranges your and your colleagues’ schedules to avoid the dreaded, “Let me move this meeting here, and we’ll move that meeting there…” so that you spend less time coordinating with members of your team. What’s more, Clockwise creates focus time in everyone’s calendar — software developers will love having uninterrupted time to code!
Examples of software and other tools needed for project management
Now, let’s get into some of the tools you might need in your upcoming software project.
#1 Project Plan
Your project plan also called a software project management plan (SPMP), is a document that clearly spells out everything you need to know about the project. According to this article, the project plan is broken down into 8 main components:
- Project estimates
- Project Schedule
- Staff organization
- Risk management plan
- Project tracking and control plan
- Miscellaneous plans
Your SPMP is an essential tool since it’s something you can refer back to throughout the development process.
#2 Gantt Chart
The Gantt Chart was created by Henry Gantt in the early 1900s, and since then, it’s been adopted by project managers across all industries. Essentially, it’s a horizontal bar chart that allows you to keep track of your tasks and see how they relate to each other on a timeline.
Along the left side of the chart, the y-axis, you’ve got all of your team’s project activities broken down into tasks listed out from top to bottom. The top of the chart, the x-axis, shows your days or weeks — whatever you’re using to delineate the passing of time.
Another great thing about Gantt charts is that it allows you to display your dependencies, meaning you can view which tasks are dependent on another task’s completion.
#3 Management Software
Management software is an essential project management tool. Teams of any size rely on management software to organize their work and collaborate in real time.
Here are some popular management software tools for software development projects:
Many project managers also swear by A Guide to the Project Management Body of Knowledge, or PMBOK Guide for short. This book was written by the Project Management Institute, which will be releasing the seventh edition of PMBOK in July 2021.
Software project management is intricate, but the agile methodology will ensure that you have the right process (and mindset!) for your undertaking. Know what makes for a world-class plan, know your team, and embrace the uncertainties! Software project management may not be a straight shot, but you can take steps to make it as seamless as possible.