In Urban Planning urban sprawl is defined as the unrestricted growth of development without planning. If you have ever been in an organization that adopts a series of software tools on a case by case basis, you have likely seen software sprawl. In small organizations it is not likely to be a problem, but in large organizations software sprawl results in extra spending, increased communication costs, more support work, and extra overhead in software engineering.
Why it Matters
Every system is a point of potential failure. The more unplanned growth in software systems an organization has, the more chances it has to be prevented from attaining its business goals. An extra dice roll away from disaster.
Isn’t This Technical Debt?
Technical debt has been a popular framing for this issue but falls short of communicating the impact of unmaintained software. You do not merely get a bill, but feel its effects every time you have to work with it. The antidote to debt is either not buying a thing in the first place, or paying it down over time. In contrast the antidote to sprawl is planning.
Isn’t this Waterfall?
Fighting software sprawl is not about creating an up front plan for each particular project and then sticking to your guns no matter what happens. It is about planning your ecosystem of software, and then letting folks tailor that ecosystem to each project through agile.
Things you should plan:
- Which software languages and libraries you use for your web applications.
- Which observability and monitoring tools you use.
- The word processing software and office suite your organization uses to communicate.
- The format you archive important communications in.
- A user interface component library for your applications so they have a consistent look and feel.
Thing you should not plan:
- Which features you’ll need for a new app before talking to users.
- Which text editor your software engineers should use.
- The user experience and layout of the application until you have tested options with real users.
Planning is Soft and Hard Power
- Building a plan requires community and stakeholder engagement. Not everyone will be onboard, but invite everyone to be a part of it.
- In planning legal tools like building codes and zoning are the hard power that keeps a place on track with their plan. In organizations it might be written directives from the top that certain software and standards be used.
- Supplement this with sharing the stories of why and how the choices came to be. People will be more likely to go along with a plan if they understand the values and choices behind it.