The bottlenecks are almost always elsewhere. Design, quality assurance and debugging, art assets, localizations, hiring, performance management, you name it. And to be fair, AI can streamline some of that.
The bottlenecks are almost always elsewhere. Design, quality assurance and debugging, art assets, localizations, hiring, performance management, you name it. And to be fair, AI can streamline some of that.
Literally all the time? Every single month?
I am struggling to understand your perspective. In my existence, the bottleneck is always the coding.
The development team has a backlog that could keep them busy for years. Meanwhile, everyone else -- QA, localization, whatever -- operates at whatever pace the code gets delivered.
Never in my entire life have I been in the situation where the engineering manager said, "well folks, localization is backed up so we've got no more code we need to write. Go home and check in next week to see if we have any work?"
The only exception I can think of might be videogames where the bottleneck is the art and then maybe the testing loop. But gaming isn't representative of software development generally at all.
This is still part of “coding”. It doesn’t make any sense to say you’ve “finished coding” when the program doesn’t actually work as required.
I’ve been aghast to see developers present an unequivocally broken product and try to argue making it not visibly broken is “scope creep”.
I mean, that’s why we argue so much about the best ways to write code: we want to reduce the incidence of bugs and make it easier to correct unexpected errors.
Figuring out libraries, deciding on architectures, researching documentation, that's an integral part of coding.
The topic here is not keystrokes.
Initially I didn’t mind it because my team focused on technical debt, but it pretty quickly turned sour. Having to scrape up “work” for the team of 6 engineers each morning to appear productive to management was dreadful
But yes, the next few items for the team to work on should always have the necessary specifications to start work. Whether it's UX mocks or a requirements document or whatever. Having that stuff ready to go is a primary job of the PM who manages the backlog.
Obviously the engineering team then has to break it down further into tasks to complete, but that's what engineering is. And you will run into areas that turned out to be underspecified and the PM needs to liaison with other folks to figure out answers, but again that's part and parcel. That's not generally stopping the whole team from work, and teams often work on multiple features at once so even being temporarily blocked on one doesn't keep you from progress on another.
I’ve never had a shortage of work as an engineer, but that doesn’t mean that work has always been perfectly optimized to business priorities - there’s plenty of other bottlenecks in the process that are not coding.
The developers would have to help with the requirements and planning all the code changes. That implies a huge amount of non-coding work was done by the developers.
The backlog comes from the PM, as user needs are established.
The requirements come from a mix of PM and UX.
Obviously developers plan how to write the code. That's part of coding. Not part of product requirements.
Imagine an architect who never writes a line of code. Under your accounting, they're doing coding, because it's the planning for code.
The root comment was about coding vs "design, quality assurance and debugging, art assets, localizations", etc.
Not coding vs planning coding. It's the same way the art department both plans the art and draws it.
Yes, PM's are absolutely supposed to know that much more about what the customers need. That's their job. They're constantly talking to customers; engineers are generally doing that only occasionally, if ever. They're not trying to be the "main character", but their entire job is to be the point person for integrating all the stakeholders' needs and making prioritization decisions. It's organizational needs, not ego-driven.
Sometimes products are simple and straightforward enough where you don't really need a dedicated PM, but then the lead engineer often just winds up informally taking on the same responsibility, and at some point there's enough success and complexity that it needs to become a full-time dedicated position.
I'm really curious how you've arrived at the perspective that engineers and data scientists know as much about customer needs as a PM, that they learned via channels outside of the PM? I've certainly never worked anywhere where that was the case.
> Coding as such is seldom a bottleneck to begin with. How many times have you been in a conversation along the lines of "we have every detail of the product figured out, but we need another month for the coders to finish writing the code"?
And you quoted "how many times" contradicting it.
Yes, the art department plans the art and draws it, but an AI tool for generating art could only help with the actual drawing. The possible productivity improvement directly relates to the portion spend actually making art.
Your department or job-role style view of things doesn't make sense for this conversation.