I love coding, but I've gotten to the point where I just can't enjoy it if I'm not involved also choosing what we build. The most interesting time in my career was when I did the spec, architecture, and code of a pretty fundamental system (small team, just lost the PM, fell to me as tech lead). The worst time was contributing for a number of years to a large software platform that had incredible groundbreaking tech and fundamentally failed in the marketplace.
It seems my only choices are to 1.) be a PM and stop coding or 2.) find a team where engineering also makes product decisions
Has anyone else successfully navigated this dilemma?
PS I've had the same experience as an engineering manager - less coding, no real responsibility for what the team chooses to build.
1. The one who tries to reinvent the product and you tend to end up questioning their design or product decisions because they seem flaky and makes no sense. Being a newly promoted lead with my own ideas I was often at loggerheads with them. For anyone who reads this and is in the same position, I would suggest to continue building what the PM asks you to do. Any opposition or pushback you create regarding their choices will just lead to chaos for your team and in the end you would have to go with it since their role is the one making such decisions.
2. The one whose requirement are empty shells waiting to be filled with the questions raising by the people they present it to. I would suggest to get away as far as possible since your requirements will never remain fixed as the PM will be open to suggestions and influences from all over the company and you would end up with a rube goldberg machine.
3. PMs who take time to do research, write down solid requirements, convince stakeholders and also have a iteration based release plan in mind. I worked with only 2-3 PMs like this and based on what I saw, they tend to burn out faster than you do and either quit or regress to type 1 or type 2 just to get the release out.
Having said all this, I would rather be happier working with solid requirements rather than making them. I have played the role of a PM temporarily and found that it is generally a thankless job, regardless of the effort you put in.
Consulting companies are ok, but there you pretty much build what clients want. If you can find one that focuses on an interesting domain, that can be a good fit.
At small companies you get to be part time product manager, project manager, customer support, QA, developer, doc writer, and more. Especially if you are relatively senior.
For some folks I know, this is a nightmare. I personally love it. Give it a go!
How can you find such small companies? I'd look in the "Who's hiring" threads and on sites like https://www.builtincolorado.com/ (if they exist for your area). Also, ask in your network.
So far I habe worked in a few companies as a business analyst and a bi developer but I have never seen one that allows the dev team to have some final say in the products. Products are always dictated by business team, then project manager or business analyst breaks them down to tickets that you guus understand, i. e. the scope. The lead further breaks them dowm into sprints and tickets.
So you can see that sometimes even product managers don't have much a say in the product.
Yeah, that's a good point. The PM is sometimes pretty constrained by the business. Maybe it's just a grass is greener thing. Have you been anywhere where the eng team had some say in what they make?
CEO - "We need a live streaming video platform"
Me - "What is the problem?"
CEO - "I want to do a webcast on our website"
Me - "Would embedding a YouTube video player work? It does x, y and z and it can be ready by tomorrow"
CEO - "Oh! I hadn't considered that"
You need to get back to first principles. Usually your boss wants to accomplish something and then they come up with a solution. Then they fall in love with the solution, not the problem.
You should be asking your boss what they're trying to accomplish instead of letting them propose the solution. If you help devise the solution/product you'll be much happier building it.
Sure you can choose to use nodejs instead of ruby or embed video instead of streaming it yourself or find a better confit system than admin pages but the entire product ideas are probably decided by the business well in advance of when the developer gets whiff of it.
Imagine you are about to purchase a car and the car dealer weirdly tries to convince you to take up cycling via “what’s the problem”. You’d probably walk to the next dealer as you’ve made up your mind you want a car.
The email order confirmations, however, took 30 minutes to be delivered to customers. In the end, it was this uncertainty of whether an order went through that killed the customers trust, not the fact that it was not an SPA. I wish I had asked more questions instead of blindly following orders.
Would it be sufficient if what is chosen to be built is something you see as a high-value thing to build? Working at a company that is good at setting product directions could be a possible solution.