If my PM tells me we are only doing triangles, I go out of my way to make that part extensible to accept any shape. Never EVER trust a PM when they say “we are only going to support X” because they are only thinking about the MVP.
“Can you do it quicker if we assume it only has to support squares?”
“Yes but I’m not going to assume that”
“Why not?”
“Who has to do the work to support circles when a circle shows up: you or me?”
I have also tried “Okay we save 2 days by avoiding circles, but now we have to spend 1 day adding validation and messaging to make sure everyone knows circles are unsupported. And now, from here until eternity, if we spend just two 30-minute meetings with 8 people to discuss supporting circles, we will have spent more time than just supporting circles from the start.”
I’ve been around long enough,I know. It is indeed good advice to make things extensible, within reason. I have written some over engineered things that ended up being a pain to maintain.
My best advice is to learn the domain as much as possible, then you’ll be more aware of both the concepts involved and the potential pitfalls. In the OP comic, knowing that the machines are capable of making other shapes would have helped predict the problem even when management says “we’re a triangle shop”.
I’m the guy that goes “fuck, another exception to add to my logic” after the PM swore that “we’re only ever doing triangles”
If my PM tells me we are only doing triangles, I go out of my way to make that part extensible to accept any shape. Never EVER trust a PM when they say “we are only going to support X” because they are only thinking about the MVP.
“Can you do it quicker if we assume it only has to support squares?”
“Yes but I’m not going to assume that”
“Why not?”
“Who has to do the work to support circles when a circle shows up: you or me?”
I have also tried “Okay we save 2 days by avoiding circles, but now we have to spend 1 day adding validation and messaging to make sure everyone knows circles are unsupported. And now, from here until eternity, if we spend just two 30-minute meetings with 8 people to discuss supporting circles, we will have spent more time than just supporting circles from the start.”
I’ve been around long enough,I know. It is indeed good advice to make things extensible, within reason. I have written some over engineered things that ended up being a pain to maintain.
My best advice is to learn the domain as much as possible, then you’ll be more aware of both the concepts involved and the potential pitfalls. In the OP comic, knowing that the machines are capable of making other shapes would have helped predict the problem even when management says “we’re a triangle shop”.