Iâ€™ve met a lot of programmers who really hate project management. And itâ€™s not that surprising, because project management done poorly can be unnecessarily restrictive. But if youâ€™re a developer looking for a job, employers are more and more likely to expect you to know something about project management. Luckily, good project management can make your life easier, and itâ€™s worth knowing about it â€“ not just for job interviews, but to help you get the most out of your own projects. Here are a few basic things that I think every developer ought to know about project management, and why I think you should care about them.
Tough Programmer Interview Questions: Project Management
Programmers are often surprised when a job interview shifts from technical questions to questions about project management. I just saw a great example of this in a recent Head First C# forum post:
I am a C# programmer since 2003. I recently took a job interview where I was asked several questions about project management.
- How do you make an estimate for building a C# program?
- How is a project with 3 programmers different from project with 15?
This is a lot more common that developers realize. Iâ€™ve seen a lot of discussion lately about how to do effective programmer job searching, especially for relatively new developers who have three years of experience or less. Did you ever ace the tech part of an interview, only to find that you didnâ€™t get the job? I bet that a lot of the time it comes down to questions that seem peripheral or less relevant â€“ to the a junior developer.
Not to a lot of senior developers. Thatâ€™s one of the biggest differences in attitude that Iâ€™ve seen between people who are new to development and people who have been doing it for a long time. And in a lot of cases, I think it really does come down to attitude. So my goal with this post is to outline the basics of project management, the core things that really matter.
Why should you care about project management?
Thereâ€™s a flip side to project management, too. A colleague of mine once asked me, â€œWhatâ€™s the most important part of project management?â€ I told him that itâ€™s managing stakeholder expectations â€“ making sure that the people who have control of the project or are affected by it are in the loop on all the important developments as the project rolls along. If bad things happen, they know about them in advance, and are prepared. The reason for this is that some projects fail (more than you think!), often for reasons that have nothing to do with the team. If you manage everyoneâ€™s expectations, get them on the teamâ€™s side, then the developers can come out as heroes fighting a lost cause. On the other hand, a project can be a roaring success, but if everyone expects something thatâ€™s not exactly what was delivered, the developers could be blamed for something that they had no control over. Expectations matter, communication matters, and these things can have a big impact on the project and the team.
And thatâ€™s why developers should care about project management: it affects your life, even when your job is to keep your nose buried in code all day.
A lot of developers have a very poor opinion of project management and project managers. Iâ€™ve spent a lot of my career writing books and giving training to help project managers improve their skills. Over the years, Iâ€™ve met many different types of project managers. And, unfortunately, while there are plenty of great ones out there, there are a lot of really bad ones as well. In any field, there is a wide range of skill level and aptitude. If youâ€™re a developer whoâ€™s only ever worked with poor project managers, itâ€™s not surprising if you ended up with a dim view of the project management as a whole.
But even if youâ€™re a developer who doesnâ€™t have a high opinion of the field, you should at least acknowledge that learning more about it can have an impact on your own career. Iâ€™ve personally seen employers pass on good developers who didnâ€™t know enough about project management, even ones who had the technical skills to do the job.
Iâ€™ve also conducted a lot of developer interviews, easily several hundred of them over the last decade. And one thing that Iâ€™ve noticed is that really good developers have a healthy respect for exactly the same things that really good project managers care about: the work and the features needed to create the software, the team that crafts it, the effort required to build it, and the quality of the final product. Thatâ€™s why I think that learning more about project management can help make you a better developer.
In the next part of this post, Iâ€™ll outline those things, and make a case for why they should matter to you.