When bad software requirements happen to good people (2011)
smartbear.com
smartbear.com
I heard many times product owners saying that if this can't be done in OpenAPI and shown in SwaggerUI, then it can't exist. Websockets can't exist. Lazy loading, asynchronous communication, HTTP/2... all went south because product features are defined by lads viewing OpenAPI through SwaggerUI.
You can get a contract for bespoke programming which includes such things as feature creep billing for just a few hundred, its not expensive but if its not written down, you dont have much of a leg to stand on if things ever had to go before a judge or some sort of arbitration unit.
If working in a team, there need to be documented standards for everything from the UX to the DB and everything in between. Its just common sense.
I have been wondering for a while if we should just never ask those sorts of questions, because they don’t know, we hear what we want to hear, they hear what they want to hear, and nobody has any idea what’s actually going on, and later we won’t look at how we got here.
I agree that knowledge about Agile was not widespread enough in 2011, but this reads like something from the early 90s.
Business want Scrum, Agile, whatever, because it allows them to change their mind, but they also want the deadline of waterfall development. Clearly some "pure" form of agile is better, if you care about the quality of the outcome. When you have deadline and fixed budgets, the idea that you don't truly know when you're done rules out anything but waterfall, where all requirements are to be laid out in advance.
Deadlines and budgets are why bad requirements happen. Almost no one is able to write good requirements, it's simply too difficult in all but the most basic cases.
> Deadlines and budgets are why bad requirements happen. Almost no one is able to write good requirements, it's simply too difficult in all but the most basic cases.
Because projects get cancelled if you tell the truth. Even if there’s an uglier truth that the company is screwed if we don’t finish this project.
One boss referred to this somewhat grotesquely as “getting them pregnant.” Once started, sunk cost fallacy makes them keep dumping more money on it until they get what they need or the pain gets too high. In a lot of ways Agile is a more humane way of getting the same results without the deception. You give them a taste of things to come and keep trickling it out a bit at a time.
Feldman also believes strongly that projects stay on track when developers bite off software requirements into as small pieces as possible.
Continuous deployment (for example) surfaces miscommunications pretty quickly, so you don't go too far down the wrong path. (It doesn't help with estimating completion dates, though.)
I just wish feature flags were sightly less annoying to manage.