In a perfect world, software developers would interact directly with users, conversations replace the need for requirements, code is pushed out the door, and feedback comes shortly after. Software requirements arenโt needed, everyone is happy, and Iโm not working.
Unfortunately, modern software development doesnโt happen like this.
Many developers donโt speak to users or collaborate with the business anymore. Instead, they take direction from email threads and poorly written tickets. Every enterprise developer knows this experience only too well.
Outsourced development teams located in offshore โcentres of excellenceโ are standard practice, but this breaks the close collaboration and direct feedback loop that avoids software requirements in the first place.
Even with better access to people, many developers would struggle to acquire implicit domain knowledge, become familiar with complex systems, navigate organisational complexity and political decision-making, and overcome time zone and language barriers.
This is why development teams, particularly remote, outsourced and offshore ones, desperately need software requirements, and why they are still hugely valuable even as a poor proxy for user needs.
Additionally, in an ever-increasing โprompt the AI to mass generate your requirementsโ kind of world, Iโm seeing an increasing need for expert human oversight to ensure the requirements are genuinely useful.
Let’s call software requirements a workaround for imperfect access to the knowledge developers require, but until we live in a perfect world, developers need software requirements, and human effort is required to get them right.