How online distribution shaped modern-day software development
I remember buying Windows 95 in my local supermarket. It was a shiny box with 13 floppy disks inside. This is a story about how online distribution shaped modern-day software development.
It's hard to overstate how Scrum influenced our contemporary software development toolkit. The average software team in 2023 still starts their iteration by moving a bunch of tickets to the sprint backlog. While some of us have left sprints behind, we still have an old-school product backlog with all the User Stories. That product backlog in Scrum was the list that contained the entire scope of the project.
Project? Yes, project.
When Scrum was introduced, Gangsta's Paradise was topping the charts. It was a time of questionable fashion choices, Tamagotchis, and flagship software projects. It's safe to assume that most developers stuck to the project paradigm in those early days of the agile software development movement. The product backlog was the equivalent of a work breakdown structure: a list of features we wanted to ship. Progress meant checking off items on that to-do list. Project Management 101.
Developers didn't have CI/CD back then because deployment meant printing and shipping a CD-ROM to the customer. When distribution is that hard, releasing is expensive.
It had to be first-time-right. A critical bug in Windows 95 was unfixable. Microsoft would have to track all the impacted customers and mail them a new disk. For enterprise software, a new release often involved flying specialists to the client's location.
Scope creep had to be managed. A project that wasn't under control would mess up the international distribution schedule.
Cutting scope meant a competition-busting feature would likely never make it into the hands of the customers.
Those were some tough calls for seasoned project managers. It required a rigid methodology to keep the project on track.
What the internet changed most about software development was the ease of distribution. Microsoft fixes a minor bug, and in the next hours, millions of machines automatically run Windows Update. Instagram releases a new widget, and the whole world has access within seconds.
Our entire Product mindset of "good enough for now" and validation experiments is standing on the shoulder of that distribution giant. Without cheap distribution, we would still be shipping quality-gated Iron Triangle projects. The internet freed us from the shackles of first-time-right.
All of a sudden, scope creep didn't hurt anymore. We could always do it some other sprint. We never had to cut scope again. We just push back tickets indefinitely. Our managers don't have to make those tough calls. Instead, they treat the backlog like a Pinterest board. An unfocused list of all the features we might as well ship in a box if resources weren't an issue.
And that hurts our teams. We all carry ancient low-number Jira tickets that we'll never ship. Our developers don't understand the problems because they're too busy running the hamster wheel. Our managers have given up on planning altogether. Our teams spend more time on grooming backlogs than on talking to customers. We add more items to the to-do list than our teams can check off.
In a world of abundant distribution, scope becomes meaningless.
Contemporary software developers don't need to worry about "done"; they can always mail another disk tomorrow.
Distribution is a solved problem. We can ship anything we set our minds to whenever we want.
The question our developers struggle with today is this: How do we avoid drowning when drinking from the firehose of ideas?
How do we focus our energy on what matters most?
That’s our main problem to solve.