Acceptance of Complexity: Main Test of Modern Software

In the era of rapid technological development and the constant pursuit of automation and efficiency, the significance of understanding and embracing complexity in software often takes a backseat. However, according to ThoughtWorks’ half-year review, the team emphasizes the importance of recognizing and leveraging complexity to our advantage.

With each new release of the Technology Radar, the list of discussed technologies continues to expand, reflecting the increasing number of problem-solving approaches available. While this is a positive development, it also adds to the cognitive load, requiring professionals to study and evaluate more options.

One example of complexity redistribution is the shift from monolithic architecture to microservices. Although microservices address support and development challenges faced by monolithic architectures, they introduce new requirements for engineering teams, demanding more mature practices and processes. Hence, technological solutions only distribute complexity rather than eliminate it.

Moreover, it is crucial to note that technical solutions often restructure complexity, necessitating careful management to prevent adverse effects on team performance and efficiency. Employing “reasonable defaults” in projects is one way to control complexity, discouraging teams from succumbing to the allure of novelty and hype surrounding new technologies.

Interestingly, not all tools that aid in managing complexity are new. For example, the latest issue of Technology Radar highlights the use of Failure Modes and Effects Analysis (FMEA), a methodology for simulating risk-based refusal. FMEA dates back to the Second World War but remains relevant today.

The primary challenge in the software industry today lies in embracing complexity rather than attempting to minimize it at the expense of processes, practices, and management. The key question is whether the industry is aware of this imperative.

/Reports, release notes, official announcements.