Scope and Overall Development Lifecycle
Explore the scope of developing software for modern production environments with large user bases. Learn about balancing development and operational costs, making early design decisions, and considering system availability, capacity, and flexibility to build resilient distributed systems.
Scope of the challenge
In the easy, laid-back days of client/server systems, a system’s user base would be measured in the tens or hundreds, with a few dozen concurrent users at most. Today, we routinely see active user counts larger than the population of entire continents. And we’re not just talking about Antarctica here! We’ve seen our first billion-user social network, and it won’t be the last. Uptime demands have increased too. Whereas the famous “five nines” (99.999 percent) uptime was once the province of the mainframe and its caretakers, even garden-variety commerce sites are now expected to be available 24 by 7 by 365.
Clearly, we’ve made tremendous strides even to consider the scale of software built today. But the increased reach and scale of our systems comes with new ways to break the system, more hostile system environments, and less tolerance for defects. The increasing scope of this challenge to build software fast that’s cheap to build, good for users, and cheap to operate, which demands continually improving architecture and design ...