Some people become project managers; some don’t. Some people want to become project managers, and some don’t.
At the same time, while wish and ambition play a major role in a Project Manager’s career, there are certain skills that the Project Manager needs to become successful.
These skills are directly related to the functions that the Project Manager is expected to perform. Mastering these skills requires both having corresponding personal traits and hard learning and improving one’s expertise.
In this post, we have gathered eight skills that we believe are the most important for each Project Manager. These skills are critical for the success of the project because they lay the foundation for productive work, effective communication, and team motivation.
What functions does the role of Project Manager include?
In different projects, project managers do different things, but there is one thing that is common – all of them wear many hats.
In software development, a PM has to be a superb communicator, a financial guru, a human resources coordinator and also a bit of a programmer. If we are talking about a distributed team or the outstaffing model, here the role of the project manager becomes truly critical.
Most important functions of a Project Manager:
- Project architecture and release management
- Project planning
- Change management
- Human resources
- Collaboration tools selection
- Requirements management and project documentation
Let’s look at them a bit closer to see why they are essential for the project success.
Project architecture and release management
Of course, for project architecture, there is a software architect in your team, but since the architecture defines mostly everything in the project – the required skills, the development tools, and the hardware requirements – the project manager should have an understanding of how the project architecture is built.
Generally, project architecture describes the high-level functional components of the product and their integrations. Ultimately, the project architecture should represent an optimal set of components capable of performing the product requirements.
Now, release management is another tricky skill that project managers should master perfectly. Release management is not only about the release per se; it is that long and winding road that leads to it.
The scope of release management includes planning and scheduling all stages of the project development including all types of testing.
Besides, a complete release package may also include documentation update, release notes, website makeover, as well as other related tasks.
For each project, the team should determine the best release cycle. For some products, frequent releases work best, while others may take longer between the versions.
In all cases, we recommend that you consider the business goals of the project in setting up the release cycle.
Project planning is deeper than just scheduling the tasks and building the timeline. It includes mapping the client’s requirements to components and breaking them down into tasks to be performed to complete the project.
Project planning flow
While planning a project, we build plans at different levels:
- Epic level: here, we do the so-called rough planning outlining both the most optimistic scenario and the one including all possible issues and deviations. We communicate closely with the client explaining the risks and discussing the estimates. For epic planning, we use the PERT technique allowing estimating the major tasks and milestones. At the epic level, the client approves the general scope of the project.
- Story level: at this level, we isolate the features and components of the expected product and turn them into user stories. The user stories become the source for planning the development sprints. All features to be delivered within a specific sprint are described in detail and their acceptance criteria are determined. In preparing the user stories and defining the features, we prioritize them according to the Kano model.
- Technical task level: after all features are defined, we translate them into actual technical tasks to be done by the team. We specify tasks for each sprint describing them in detail.
We plan our development in two-week sprints making references between features and sprint number so that it will be easy to see when a particular feature will be available on the staging environment. Such reference method also helps to find when a certain feature was delivered. This model makes planning further sprints easier.
During the development process, we need to keep control over the versions released at the end of each sprint. These versions are not necessarily deployed in production, but we still need to monitor them.
We keep track of versions in Git as well as in the release issues we use to deliver a completed version to staging or production.
Version control in Jira
We use Jira issues of the “Release” type showing the Git version. Such issues are planned for release at the end of a sprint.
Cross-project resource estimation
We plan human resources based on full-time equivalent assigning a certain number of hours to each developer in each sprint. In planning the working time, we try to include some extra time for unexpected tasks.
We use Kanban boards in Jira to plan tasks and working time so that the Project Manager can have a complete picture of the tasks at each stage of completion and rearrange the resources when needed.
This way, the PM sees the full scope of the release that should be delivered and can make sure that no tasks are left unfinished.
Communication is what holds the project together, and it is one of the Project Manager’s responsibilities to establish and maintain effective communication within the team.
Establishing proper communication can help to start the project effectively and ensure its successful delivery.
A Project Manager communicates both with the client and the team at all stages of the project. Effective communication helps to achieve important goals in project management:
- Clear understanding of the project scope between the client and the development company
- Agreement with the client on the time, resources, and cost needed to complete the project
- Understanding the tasks that need to be performed by the team and, especially, the goals they are trying to achieve with them
- Prompt and effective response to changes.
Change management is the art of responding to change requests. As a Project Manager, you will inevitably face situations when the project scope is changed after the development has already started.
Often, clients change the requirements after the initial scope has to be approved, and you will need to update the project plan most optimally and economically.
Change management flow
Often, clients request changes when a part of the project scope is completed or even when the entire functionality has been delivered. In such cases, we use the following strategy:
- Outline the scope required according to the changed requirements including the time and materials
- Break the scope down into Epic tasks
- Define user stories and prioritize them
- Discuss the new scope with the client and compare it with the original one
- Plan the new scope.
At all stages, we keep close communication with the client making sure that all changes are correctly approved on their side.
To a large extent, the success of the project depends on the team. Therefore, an essential skill of a Project Manager is the ability to work with people from hiring to conflict solving to evaluating their progress and achievements.
In the context of human resources, the Project Manager usually has quite a number of responsibilities:
- Estimating the resources needed to complete the project
- Participation in the hiring process including interviewing and testing
- Assignment of roles within the team
- Providing opportunities for professional growth (training, self-education, etc.)
- Conflict solving within the team
- Performance evaluation
- Establishing proper communication within the team.
Collaboration tools selection
The Project Manager should be familiar with the most popular collaboration tools and supervise their use by the team.
The PM should have first-hand experience with the tools to be able to evaluate their advantages and disadvantages and their effectiveness for a particular project.
The critical point is to make sure that the tools selected for the project provide the necessary level of security and are approved by the client.
Before launching the project, the PM should also verify that all access credentials have been appropriately assigned and that everyone in the team has everything that they need to work on their tasks.
Requirements management and project documentation
It is important that you establish consistent documentation practices from the very beginning and maintain them for the whole duration of the project. Detailed documentation can serve multiple purposes:
- Quick preparation of information upon the client’s request
- Base project knowledge sharing with new team members
- Preparation of user guides, manuals, installation instructions, release notes, etc.
In addition, a good practice is keeping the same documentation structure from project to project. This documentation system is comfortable for the team, as they do not need to reinvent the wheel with each new project.
There are quite a number of documentation and collaboration tools. However, we recommend Confluence for its extensive functionality, access management, and great collaboration opportunities.
We use Confluence not only as a documentation and knowledge base but also as a means to log meeting agendas and results, and document our development flows and policies.
As the Project Manager is involved in the process from the initial stages of planning and scheduling, they should possess the knowledge of project budgeting.
We noticed that often the project starts earning profit only after the launch and when it enters the support and maintenance stage.
We recommend that at the budgeting and planning stage, the support activities are included in the scope with the corresponding number of hours.
Regardless of their experience level, a professional Project Manager should possess some key skills:
- Being in control. The Project Manager should always bear in mind the complete picture of the project and be prepared to assume the responsibility.
- Deep understanding of the product architecture. Since the PM participates in the project planning from the very beginning, they should know the business logic of the product and the client’s requirements as well as what is expected to be delivered.
- Ability to set up the processes. The PM should plan the development process in the most optimal and straightforward way.
- Consideration of the team’s opinion. Before approving the project, the PM should always consult with the team and take their thoughts into account.
- Understanding the client’s goals. The PM should understand what the client expects to achieve from the project.
- Ability to plan and schedule. A successful PM should be able to allocate time and resources optimally.
- Understanding the risks. The Project Manager needs to evaluate the potential risks and know how they can be mitigated.
- Budget control. The PM should monitor the budget for the entire duration of the project controlling both time and resources.
- Ability to set up a transparent process. The organization of the project flow should be clear and understandable for both the client and the team members.
- Ability to plan for deviations. Each project flow should be able to withstand eventual deviations and modifications without harm to the main purpose.
- Communication and collaboration. The Project Manager has the client on one side and the team on the other. Both are essential for project success, and it is the job of the Project Manager to establish proper communication and information exchange. Needless to say, both sides should be satisfied with the project result.