Live data from Hacker News

Ask HN: How can I become a proper Project Manager from a Programmer?

news.ycombinator.com

31–40 of 66 posts

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#31
post #28
post #12

The best project managers I've had have identified and removed obstacles for me (including things like - attending mandatory meetings, so the devs don't have to). Other good managers have also reigned in my ideas enough so that we implement what is attainable. Bad project managers have had an obsession with statistics, spreadsheets and tools like Jira. Most project managers I've had have been bad/indifferent, but wit…

If it can't be measured, it can't be managed. Remember that your manager is accountable to someone else higher up the chain. They don't know how dev works, but they want to see quantifiable progress. Statistics, spreadsheets, and tools like Jira are how that progress gets communicated. Like it or not, this is an essential part of the business.

Yes, it is important. However, some project managers obsess over it. Instead of focusing on delivering something the client wants and finds valuable they obsess over estimates, minimizing change orders, and time spent, to the point where it becomes the single determining factor in what we do and don't do.

It's important to be on time. I've found that it's more important to solve the client's problem. And if you solve the client's problem well enough, the client will give you flexibility on the time.

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#32
99% of the time "Project Manager" means "Project Facilitator."

The key aspects of project management are gating, communicating up, and communicating down.

Gating: Keeping things that aren't The Project from becoming The Project without being properly defined (time, deliverables, budget, resources).

Communicating Up: Letting business owners and stakeholders know the status and cadence of the project, what the project team needs to get the job done, what ambiguities need to be cleared up, etc. It's very difficult to hold someone's who is generally your boss feet to the fire, but it's am important skill to learn.

Communicating Down: Deliverables, roadblocks, obligations, morale, etc.

The most important skill in a project manager is humility. Many PMs see themselves as captains of some giant see-faring vessel, but have no respect for the vessel or the sea.

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#33
There are two aspects to project management. The first aspect is being able to manage the methodologies and techniques popular at your employer EG managing a sprint, building a gantt chart, creating the necessary project artifacts etc.

The second harder part is the mind set. Ultimately, you are responsible for the success or failure of the project. That means you need to do what ever it takes to make the project successful, and to be relentless in making this happen. Sometimes that will mean persuading business sponsors, sometimes it will mean chasing up why Developer Jane as the wrong version of the IDE installed on her laptop.

As Stuaxo has said, if you have a good team a large part of the job is removing obstacles for your developers. Another part of the job is attacking project risks and ambiguity around the project.

You also have to be prepared to frequently give bad or uncomfortable news to your senior management, and even tell them "No" sometimes.

I'd say learn what you can on the PM techniques, and then ask to shadow a good PM for the latter.

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#34
I've recently gone from Developer to Technical Product Manager, and I believe the following traits are important:

1) Communication on both a technical and product level. This allows you to act as a bridge between sales/marketing/management and the developers. See #2

2) Speaking two languages: Code and Product. This is where being a former developer comes in quite handy, as you can only learn Code through writing it, but you can implicitly pick up the Product by thinking like a non-techie and paying attention to what they care about.

3) Keeping a focus on the big picture during a project duration. As a Product/project Manager, you need to understand timelines beyond 3-6 months and make sure you're not shooting yourself in the foot for later. This is tangential to what you may have read in the Pragmatic Programmer.

4) Product/Project Manager can be squishy terms, meaning that the responsibilities can vary by company. Often you'll be left to ensure all the ends of a project are wrapper up: testing, documentation, communication on releases, etc.

There are probably many more things, but those are off the top of my head. Good luck!

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#35
post #19

Earlier quoted context omitted.

Agree with not going overboard with stats and Jira. However being good with these tools to help measure velocity and improve the quality of estimates reduces the pressure on the team when clients plant the seeds of doubt that you've over estimated.

I agree it's possible to go overboard, but I find that a lot of developers don't appreciate how useful it is to have documentation of what the team is doing and visibility (ie numbers) into how time is being spent. A lot of developers hate tracking task in jira or any task tracker, but whenever deadlines start being missed due to roadblocks thrown up by other teams, or ineffective project management, having that all…

Then one of the requirements on the project manager would be to communicate what his own constraints and objectives are to the team, right?

One could imagine a PM saying to the team: "I go to meetings so you don't have to. But one of the tools I use to keep the finance people happy enough to keep this project fully staffed is those stupid metrics. Help me help you by filling them in."

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#36
post #32

99% of the time "Project Manager" means "Project Facilitator." The key aspects of project management are gating, communicating up, and communicating down. Gating: Keeping things that aren't The Project from becoming The Project without being properly defined (time, deliverables, budget, resources). Communicating Up: Letting business owners and stakeholders know the status and cadence of the project, what the project…

This is one of the best, most concise summaries of project management I have seen!

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#37
post #32

99% of the time "Project Manager" means "Project Facilitator." The key aspects of project management are gating, communicating up, and communicating down. Gating: Keeping things that aren't The Project from becoming The Project without being properly defined (time, deliverables, budget, resources). Communicating Up: Letting business owners and stakeholders know the status and cadence of the project, what the project…

To add one more: a sense of urgency. Your job isn't to whip the team, but you should provide a steady drumbeat of progress, and be able to instill urgency and speed into the team.

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#38
I'm in the process of making this transition. One of the most important things I'm trying to hold on to is a passion for programming that goes beyond writing code. I see my new role as leveraging the 13+ years of professional development I've invested in by providing my team with guidance and critical feedback while ensuring business takes on less risk by making sure the software my team produces follows industry state-of-the-art practices and meets our deadlines. I tend to look at software development as an ongoing process and I hack the process itself to get the results I want rather than relying on my own immediate intuitions and knowledge about programming. In essence I set up the guidelines and processes that let my team be the best developers they can be and help them any way I can.

The other face of my role is being the intermediary between the stake holders and the team. While I am not a licensed engineer I try to behave as though I were: if I let bad code slide into production I might lose my license. The stake holders I collaborate with know this and they agree its an important position. However the business wouldn't move forward quickly if we were developing software like NASA. Instead I imagine there is an actuary assessing my technical decisions who will increase my insurance rates if I make poor decisions or lower them if I make good ones. This creates a risk-vs-reward balance that I need to consider when making decisions on behalf of the business... it might be worthwhile to accept some risk in choosing a software platform my imaginary actuary would asses as risky for the sake of the team who are familiar with it most. While I might enforce certain practices that will lower my rates like extensive fuzzing tests and formal specifications of critical components. It requires some balancing between correctness vs agility. While I don't see the two as mutually exclusive (in fact designing for correctness tends to make a team more agile in the long term) there is some give and take in terms of timelines and budgets that I need to be aware of. I act as the buffer between these concerns and the rest of the team whose focus should be on making software that fulfills our requirements and intentions. I attend the meetings and negotiate the timelines and handle the interactions with the rest of the business.

I think it's crucial for a manager of developers to have been a successful developer themselves with a wide range of experience. It's equally important to gain the trust of the team in your technical acumen: mandatory code reviews have been an invaluable tool in my experience so far. If you can give a good review it demonstrates your knowledge and wisdom while giving someone the opportunity to learn something new. It also lets you become familiar with everyone's skill level which is invaluable when trying to give estimates and quotes to stakeholders. Get out there and get some public credibility by contributing to open source projects, speaking at conferences, and even try your hand at writing. I've spoken at several conferences, have been a technical reviewer on a published book, and have contributed to the WebGL spec, Mozilla Firefox, Openstack, Python, and others. I'll be giving a talk at a local JS conference later this year. It will help if you can develop a reputation as someone trustworthy and wise.

Most of all... and this is universal; be aware of what you don't know. I've led teams in the past in the role of senior/principle/etc developer but I've always been sheltered from budgets, timelines, product scope, etc. I've been asked to interview people for positions but I've never been in charge of setting the policy on how we hire. I've learned how to adapt to social situations but leading people, especially creative and talented people, is like herding cats (I'm also quite introverted so it takes extra effort on my part to keep up). When you don't know how to deal with these things be honest and develop a plan of action to fill those gaps.

For me that means contacting people who I know are great managers (and not necessarily managers of technical teams either: one friend is a genius at running her fathers restaurant and her advice has been invaluable). It also means I keep a log of terms and advice I've been given that I don't understand. I use this log to do keyword searches and find books and blogs on the topics I'm missing out on.

Just keep at it and learn to look at the process of making software as one big software system itself. It can be quite entertaining and interesting.

Re: Ask HN: How can I become a proper Project Manager from a Programmer?

#39
post #28
post #12

The best project managers I've had have identified and removed obstacles for me (including things like - attending mandatory meetings, so the devs don't have to). Other good managers have also reigned in my ideas enough so that we implement what is attainable. Bad project managers have had an obsession with statistics, spreadsheets and tools like Jira. Most project managers I've had have been bad/indifferent, but wit…

If it can't be measured, it can't be managed. Remember that your manager is accountable to someone else higher up the chain. They don't know how dev works, but they want to see quantifiable progress. Statistics, spreadsheets, and tools like Jira are how that progress gets communicated. Like it or not, this is an essential part of the business.

The best measure of how a project is going is using the software it is producing. Instead of using questionable data from Jira and the like, just try to use the software. Ask for a demo, or run the code yourself, or look through unit and acceptance tests.
Post reply on HN