| If history is any guide, commit to X, deliver X/5, then start Y. There's always time to fix stuff, never time to do it right. A project manager inadvertently laid this out for me when I was new in my career; he didn't mean to put it like this, but this is what came out. (Note that I'm a software developer, and at the time the software I wrote was not "shelfware", but rather installed into big enterprises' data centers. Pre cloud) NO ONE wants software done right the first time. Because, when you slam the happy paths out there for the customer as fast as you can: * Sales wins because they can claim "Feature X" being sold and get their commission * The customer wins because they get to complain about x or y being bad, incomplete, or whatever they want to whinge about and feel like they're part of the solution * Customer Support/Sales Engineering/etc wins because they get to appear to be "responsive" to the customer by quickly reorganizing ongoing work to take care of the "urgent need" * The Project Manager wins (2x!) because they can now a) do the same "response" dance for the C-levels, and b) berate the software development staff and show their authority and working under pressure skills * Software Development wins because they can now work on the secondary features, fixes, "skunk works" tech debt, etc. since this is now more important. |
> Sales wins because they can claim "Feature X" being sold and get their commission
That’s true even if the product is high quality from the get-go, isn’t it?
> The customer wins because they get to complain about x or y being bad, incomplete, or whatever they want to whinge about and feel like they're part of the solution
I‘ve seen contractors, big and small, fired for providing complain-worthy software, multiple times. Some (most?) customers have enough on their plate and just want working software. Take Apple as an example. Their software quality seems to have worsened considerably in the last decade, but I don’t feel this has made myself more inclined towards buying their products. Infact, I‘m frustrated and have considered switching to other tech more than once.
> Customer Support/Sales Engineering/etc wins because they get to appear to be "responsive" to the customer by quickly reorganizing ongoing work to take care of the "urgent need"
I agree, support staff actually needs bugs to occur or else they will be scaled down. What’s the business case for having a huge support team though, if shipping high quality software is an option?
> The Project Manager wins (2x!) because they can now a) do the same "response" dance for the C-levels, and b) berate the software development staff and show their authority and working under pressure skills
Why not, instead of working on authority and under-pressure skills, let PMs grow as leaders insider their team who can inspire hard work when the rubber really needs to hit the road?
> Software Development wins because they can now work on the secondary features, fixes, "skunk works" tech debt, etc. since this is now more important.
As an engineer I‘ve found it more satisfying to deliver great code instead of having old hacks thrown back at me, maybe with added time pressure because there’s data loss involved.