Lately I’ve been mulling the attribute of flexibility. How much is too much, how much is too little, and how much is just right?
You’re working on a project, and the requirements change. This happens all the time. If it happens too often, should you call a “foul?”
There’s the question of how often is too often. What’s too often for you might be NBD for a colleague, or (more importantly) for the company.
One school of thought is that we should never call a foul. Software engineers (developers, product developers — pick your favorite term) have a customer. That customer is a client, product management, etc. Our job is to build what the customer wants to the best of our ability. We should be clear (at times, “crystal clear”) about the costs of changes in product requirements. Beyond that, if the customer wants a change then that’s fine!
Another line of reasoning says that developers are not whores working solely for a paycheck. There’s aspects of craftsmanship, artistry, and pride in building great things. If the company relies on those (in lieu of paying more for purely mercenary talent), it’s got to also accept that software engineers don’t like being jerked around. Developers, as employees, have a vested interested in the company’s success, and if something’s amiss in product management, they ought to tell the company (the CEO, the VP, the senior staff).
Should changes always be accepted cheerfully? I react to each scenario uniquely, but no matter what I do, I’m always wondering if I accommodated too much or too little.