1 It’s all about managing complexity
This chapter covers
- Why software systems get more complex over time
- The different challenges in object-oriented design
- Why we should keep improving our design over time
Information systems have been simplifying so much of our lives. Imagine going to the doctor and having them manually search for the patient’s history. Or going to any store and waiting for the cashier to sum up the price of the items we’re buying. Fortunately, this isn’t the case for a long time now. We use software systems to help us organize complex information and have them available at the snap of our fingers. We, software engineers, must develop such systems and ensure that they can keep evolving.
Building a highly maintainable information system requires good design. Modern businesses tend to be quite extensive, as companies often operate on different fronts and offer different products; to be complex, with business rules full of variations; and evolve fast, requiring developers to keep implementing or changing existing functionality.