The meeting in the video wasn't funny as a caricature because it portrays everyone around the developer as idiots, though I suppose it is a brilliant unintentional caricature of the way an ignorant specialist might see the world. In real life, the clients are not idiots, they just have conflicting requirements, and don't understand the solution space, but they usually understand the problem space better than the developer and should be seen as a mine of information and gently guided away from making decisions they don't understand.
The topic of the video isn't that everyone else is an idiot, it's that they are not deferring to the person they themselves acknowledge to be the expert to provide expert insight, perspective, knowledge, and requirements gathering. The expert says "you can't have seven lines that are all perpendicular to each other", those outlining the requirements challenge the expert on that, as if the expert is lying or making the service provider look bad by saying something is impossible. "You're the expert, figure it out". "Are you saying that, as an expert, you can't do this?". "Ignore geometry". Trying to get to the bottom of what the requirements actually are (which is often, in my experience, a misapplication, misunderstanding, or misdefinition of terms) is considered being difficult or not being a team player.
Also in my experience, the problem arises when the engineer is brought in the last and final stages after everyone else has already spent significant time on "the problem", and are married to their unworkable solution. The solution isn't necessarily unworkable because it's actually impossible, but often it's because what's been requested and sold to everyone else (read: upper management) is actually too expensive to implement. This is also where undoable aggressive schedules come from. Make no mistake, just about everyone is bad at estimating time and effort when it comes to software projects (this is well documented, at least in the lore), but if only two weeks of time/money are budgeted for what the engineer thinks is a four week project (even if it's actually an eight week project), no one wants to hear it. And it's easy to blame the person who was last to the party.
Trying to get to the bottom of what the requirements actually are (which is often, in my experience, a misapplication, misunderstanding, or misdefinition of terms) is considered being difficult or not being a team player.
There are usually ways of dealing with this situation without confrontation or hostility though, and the distinction between requirements and solutions is an important one - in this case the client tried to present a solution when they should be stating the problem. I find most clients are happy to rewind and state the problem, and it helps a lot in presenting an alternative solution if you can then say - well this other solution solves your problem (and is not impossible given other constraints!).
I'm not defending the clients in this video, who are made to act as idiots parroting obviously absurd lines, what I'm questioning is whether this is even a caricature of reality. I think it's more an accurate representation of the world view that some people retreat to when faced with difficult clients who don't understand solutions and want impossible things (and we've all met them).
Sure there are political considerations and sometimes companies are completely dysfunctional - in that case it's best to fire the client or job and move on, but it's very rare in my experience as a developer or designer to come across that. If you can't do your job in a given setup, and can't push back, the best option is to leave, because you can't fix that and it is an unhealthy situation for all parties.
Comments
The meeting in the video wasn't funny as a caricature because it portrays everyone around the developer as idiots, though I suppose it is a brilliant unintentional caricature of the way an ignorant specialist might see the world. In real life, the clients are not idiots, they just have conflicting requirements, and don't understand the solution space, but they usually understand the problem space better than the developer and should be seen as a mine of information and gently guided away from making decisions they don't understand.
The topic of the video isn't that everyone else is an idiot, it's that they are not deferring to the person they themselves acknowledge to be the expert to provide expert insight, perspective, knowledge, and requirements gathering. The expert says "you can't have seven lines that are all perpendicular to each other", those outlining the requirements challenge the expert on that, as if the expert is lying or making the service provider look bad by saying something is impossible. "You're the expert, figure it out". "Are you saying that, as an expert, you can't do this?". "Ignore geometry". Trying to get to the bottom of what the requirements actually are (which is often, in my experience, a misapplication, misunderstanding, or misdefinition of terms) is considered being difficult or not being a team player.
Also in my experience, the problem arises when the engineer is brought in the last and final stages after everyone else has already spent significant time on "the problem", and are married to their unworkable solution. The solution isn't necessarily unworkable because it's actually impossible, but often it's because what's been requested and sold to everyone else (read: upper management) is actually too expensive to implement. This is also where undoable aggressive schedules come from. Make no mistake, just about everyone is bad at estimating time and effort when it comes to software projects (this is well documented, at least in the lore), but if only two weeks of time/money are budgeted for what the engineer thinks is a four week project (even if it's actually an eight week project), no one wants to hear it. And it's easy to blame the person who was last to the party.
Trying to get to the bottom of what the requirements actually are (which is often, in my experience, a misapplication, misunderstanding, or misdefinition of terms) is considered being difficult or not being a team player.
There are usually ways of dealing with this situation without confrontation or hostility though, and the distinction between requirements and solutions is an important one - in this case the client tried to present a solution when they should be stating the problem. I find most clients are happy to rewind and state the problem, and it helps a lot in presenting an alternative solution if you can then say - well this other solution solves your problem (and is not impossible given other constraints!).
I'm not defending the clients in this video, who are made to act as idiots parroting obviously absurd lines, what I'm questioning is whether this is even a caricature of reality. I think it's more an accurate representation of the world view that some people retreat to when faced with difficult clients who don't understand solutions and want impossible things (and we've all met them).
Sure there are political considerations and sometimes companies are completely dysfunctional - in that case it's best to fire the client or job and move on, but it's very rare in my experience as a developer or designer to come across that. If you can't do your job in a given setup, and can't push back, the best option is to leave, because you can't fix that and it is an unhealthy situation for all parties.