How did complex systems like our circulation system evolve?

To draw some parallels to your background, let's say you were tasked with creating a computer system for a company that controlled some simple stuff like booking meeting rooms. You can build a pretty simple program that lists the rooms in a calendar and prevents double booking, and that's good enough to get started using it. the program makes the employees lives easier, and while they could manage just fine without it in its current state, going back to manually communicating over meeting rooms would be a step backwards. Over time, you decide to add on some more features to make it more functional; maybe polish up the UI so it's faster and easier to book rooms, add in some rudimentary conference calling code to enable people to call in to meetings remotely, add a system to enable file sharing instantaneously for the participants etc. Eventually the business starts to rely more and more on the added productivity your program provides. This is now your complex system. Say you remove some core features like the calling system and the file transfer; suddenly Sally in corporate who always calls in for the friday meeting is no longer able to get the spreadsheets she needs from the engineers easily, maybe they're very large and/or confidential, and you got rid of the old systems for transferring data because they were redundant. There's no way for corporate to get the documents they need, and everything starts hitting the fan over there. The transition to a complex circulation system didn't happen all at once, it was an accumulation of changes and adaptations over time, looking at the finished system and saying "how could something this complex and interconnected possibly have come into existence" is about as useful as looking at a piece of software that took 20 developers 10 years to build and controls large aspects of the day-to-day functioning of a business and saying that it would be impossible to develop it because there's too much functionality dependent on other chunks of code, take out one module and the whole thing falls apart

/r/askscience Thread