We have all had that one manager that drives us nuts because we feel like they don’t know our job very well. However, do they even need to know our job? More specifically, does the project manager on your latest software project need to understand how to write code?
Answer: While it might be better if a person managing programmers knows how to code, it is unnecessary. As long as the manager can keep the team on task and hitting production goals, they do not need to know how to program or code.
You might think I’m crazy for saying this, but the simple truth is that many managers, even well-respected ones, do not know how to code, but you will respect them for their ability to keep the project and team on task while hitting deadlines.
Throughout this article, you will learn the following that will help you understand why won’t Programming Managers need to code, and what you should look for instead:
- What they should know
- The function of PM
- If you even need one yet
- Can you hire a PM with no experience
You will also see that I’m interchangeably using the term Programming Project Manager, Programming Manager, and Software Project Manager. In my experience and after looking at over 200 job listings, I can say these titles are closest to the same. You might be able to argue they are similar to a Tech Lead, but you can read my article about Tech Leads to learn more about them.
Now you might be left wondering what the heck (pun intended) a programming manager even does that they would not need to be able to code. Please keep reading, and I’ll tell you what I have learned.
Abilities You Should Look For in a Software Project Manager
Software Project Managers need to know a set of higher-level skills that closely match what a Project Manager would know. At their core, a Software Project Manager will have methodologies modeled very heavily after the construction industry. Much like a Project Manager on a construction project, a Software Project Manager keeps track of the project, the costs, the employees, their progress, and the project goals.
Do Software Project Managers need to code? A Construction Project Manager on a construction site does not know how to frame houses or lay drywall (or they know just enough to monitor those employees who do). The same can be said for Programming Managers; they only need to know enough to monitor progress effectively. Learning these skills does not mean they are good at their jobs; knowing how to manage projects and people means they are good at their job.
Like the Construction Manager not needing to know everything to do their job effectively, the Programming Manager’s job is to understand what needs to be done and when it should be done to further the development project’s goals.
A Software Project Manager for a software project needs to know about software architecture, software development processes, coding best practices, and how to interact with developers. It can be helpful if the Programming Manager knows how to read code so they can help with code review and identify when someone is not following best practices.
Keep reading to find out what Software Project Managers do.
What Do Programming Managers Do?
A programming manager’s day-to-day duties vary and depend on the size and nature of the organization. Typically they are responsible for supervising a group of programmers. Programming managers may also be accountable for defining project tasks and assigning programmers to work on them; however, it is more common not to have this role until you have a Dev Lead that can direct the day-to-day. Some of you will notice the Software Project Manager is very similar to the Tech Lead role, and I will have some more articles about this soon.
Programming managers often perform specific duties related to the higher-level functions of what needs to happen to finish a project or keep a long-term project on track. I looked at several job descriptions and general definitions online to deepen my understanding of what a Programming Manager does; I was pretty close but left out a few key points; I break them down here.
Scheduling & Lifecycle management
You can accomplish scheduling and lifecycle management through a planning effort that defines the tasks required to develop or deliver software products. These are the management activities needed to support the development of a software product from the time of product creation or acquisition until its release or retirement. In short, you as the project owner should set the goals you want to see and meet with your Software Project Manager regularly, taking their advisement on timelines. I won’t get into management styles too much, but some of the better managers I’ve seen push these timelines a little while giving ultimate authority to the Programming Manager. The tasks required for the planning effort include analyzing, designing, documenting, and implementing plans that establish schedule requirements and formalizing task completion timelines.
Task Allocation or Delegation
Task allocation, or delegation of tasks, is the duty of the Software Project Manager. Task allocation includes identifying target dates for one or more project deliverables and who will perform the work to create those deliverables. As a project owner, you should be giving the big picture to the Programming Manager, and they should be able to break it down into smaller goals. Task allocation might seem to represent an overlap with the Dev Lead role. Still, the most significant difference is that the Software Project Manager will deliver higher-level tasks to their reports. Their reports will take these tasks, and further break them down.
Knowledge of Programming Management Methodologies (Defining controls)
I swear HR people come up with the most complicated ways to say simple things. The activities involved in defining program management controls are setting policies, procedures, and documentation that clearly define the responsibilities of each team member and what each team member is responsible for accomplishing. Every project plan should include a set of controls defining the activities the team will perform to manage the project. To do this effectively, you want to find someone who clearly understands different programming and project management methodologies and can explain them in a way that makes you feel comfortable. It is imperative that once a path has been decided, it is closely monitored for results, and data is used to help guide the team. I could get into the weeds talking about vanity metrics and what to avoid, but I will leave that for another article.
Project Control and Status Reporting (Tracking & Monitoring)
Project control and status reporting include controlling the project’s progress by performing a periodic evaluation of project progress. A project control process will help the Programming Manager actively manage the project and make decisions regarding the project direction based on these evaluations. Good reporting will also help you as the Software Project Manager can provide status reports to the stakeholders about the status and progress of the project.
Reconciliations, P&L, or General Budget Planning
I only included the most basic of budgeting in my original description list; however, after looking at nearly 40 job descriptions for Programming Project Managers and Programming Managers and another 170 for Software Project Managers. I found it is prevalent for companies to want their Programming Managers to go a little beyond the basic budgeting I’ve witnessed. Many want to see full P&L (profit and loss) statements, reconciliations, and future budget planning. It makes sense in many cases as long as you give them the control to use the knowledge to improve your team’s results.
Variance Analysis
Variance analysis is a process used to manage and account for changes in the cost of program development, differences in the planned goals vs. those achieved, and differences in what stakeholders have asked for vs. what they may be getting. A variance analysis generally involves estimating the cost of a project, then comparing that to the actual cost. However, to improve your results, I recommend looking at the additional two areas I mention here. First, enumerate the differences you ask for vs. what you get as a generalized percentage. For instance, I’m happy to get 67% of the requested features. Next, the quality of reporting and accuracy in reporting problems is an entirely subjective measure but significantly impacts your quality of life. In general, you want to get enough information to help head off problems before they grow into catastrophes, but you do not want to get so much information that things bog you down outside of your scope.
Impairment Reviews (system)
You might see a common theme by now, especially when I tell you that impairment reviews are another way to measure and report on the project. I liken this to a retrospective review examining the project and its results. The PM should review everything from team efficiency to best practices, and the PM should make suggestions to improve outcomes. Impairment reviews should not be confused with employee reviews. The Software Project Manager is looking at this stage of the process as a whole, identifying weaknesses and singling them out. In general, if an employee is found to be a [the] weakness, you may need to evaluate why and make sure there is not some system-level cause for this weakness rather than the employee. I would work closely with the novice Programming Manager for this, but an experienced leader should be able to knock this out of the park.
Employee Reviews (Direct Reports – Typically Not Programmers)
Unlike the impairment reviews, we now dive into employee performance. I want to stress how important it is to your long-term success and the project’s success that you correctly identify the causes of impairments and not simply direct attention to employees. Often if a direct report is struggling, it is one of two things. Either there is a structural issue (which could be a management issue), or the individual is not suited for the role. Regardless, you need to look beyond just the employee and see how you might be able to improve team performance. In general, I like to try and find a maximal number of positive growth factors the employee has experienced and only focus on negative issues if I feel they can benefit from the feedback. Your Software Project Manager will typically be reviewing Team Leads, and it can be helpful to take a look at each team unit and then the leadership. It will be vital to identify when you have a leadership problem.
Strategy
Last on my list of common responsibilities is one that nearly every manager of any type needs. Strategy is the planning that goes into how you will accomplish your goals. The software project will include a long-term vision, short/medium-term planning, and contingency plans. The strategic planning phase is beyond this post’s scope, and I highly recommend you read or attend some training on the subject. I will put out some articles, but that may take me a while to get to those. I want to highlight the importance of the strategy phase in measuring your project’s success. As you develop a solid strategy, you will begin to develop metrics that you can use to calculate your strategy’s success or lack thereof. You or the PM can visualize these metrics in a RACI chart (Responsible / Accountable / Consulted / Informed) or other simple matrices. When it comes to metrics, you will have many options. Try not to get carried away. Remember that your strategy should be simple and flexible enough to change as the need arises, and the data supports the need for change.
I removed several repetitive responsibilities, and on several job listings I reviewed, I found things well outside the scope of what a Software Project Manager should be doing. If you have scope creep before starting the job, can you imagine how much pain it will be in the long run?
Keep reading, and I’ll review some signs that your current project needs a Programming Project Manager.
Does My Programming Project Need a Manager?
It depends on your project and your pace. If you want to ensure your project stays on track, then a project manager can help you deliver on time, under budget, and to the level you want.
In general, if you have a project large enough to have an entire team of developers or multiple teams of developers, it might be time to start looking for a Software Project Manager. With projects this size, you can’t keep up with the day-to-day details, so a PM will ensure you are covered and progressing at the rate you want.
A PM may not be necessary if you’re working on a smaller project or a team of fewer than five developers. It comes down to how much your team depends on you and how much you can deliver to them to get through your project. If things are going well, then you probably don’t need one, but if not, it may be time to start looking at getting a PM to help you and your team.
Another clear sign you may need some help, potentially even part-time, to have someone review your project and help you stay on track is if you cannot tell how things are going. If you look out at your team and genuinely don’t know if they are performing well, it might be time to look for outside help.
Some rules of thumb can help you know it is time to look for a Software Project Manager.
- The development team constantly asks you questions and requests help you can’t provide.
- You don’t know what KPIs to measure to keep your developers on track (I have some articles on this in the works, but it will take me a while to finish them). One KPI often used incorrectly is lines of code.
- Project progress is slow or nonexistent. A PM can help you know if things are on track or if the team is stuck or going down the wrong path.
- You don’t know what direction the project needs to go next.
- You don’t know what technologies the developers should be using.
- You are unable to set up the tools your dev team needs.
Last we will look at a couple of questions I came across while looking up information for this post.
Can A Project Manager Have No Experience?
Yes, if we are talking about management experience. Many people who become project managers have no project management experience at all. However, to become a project manager, you must have a high-level business, interpersonal, leadership, and management skills.
I like to give people with little or no experience a chance. They often rise to the occasion and surpass my expectations. Hiring anyone is, of course, a personal or business risk question that you should consider.
Generally, the person with experience will cost you more and are possibly not good at their job. A person with less experience will cost you less for now but could potentially leave once they have the expertise needed to get a higher-paying job.
So if you go the route of highering Programming Project Managers with no experience, you need to be able to recognize when their skill level has surpassed their current salary and plan accordingly to how you will handle the situation.
There are also other factors to consider as well. If you look at the section above and are hiring a PM because you NEED one and don’t know how to manage the project well, then you need to hire someone with experience. However, if this is a situation where you are optimizing your systems, you can do the job but know someone else can do it better by focusing all their time and energy. It might be wise to hire someone with no experience and spend six months to 1 year to get them up to speed.
I Have No Experience. How Can I Become A Software Project Manager?
Suppose you are someone reading this hoping to get a Software Project Management position with no experience. You should try looking for companies in that in-between spot of growth where they need more output from their team but don’t know how to achieve it, then become the person that makes it rain! I will have more posts about this in the future, but you may find this post about getting your first programming job helpful.