Software development has come a long way since the days when Cobol and Pascal were the languages of choice for a whole generation of programmers coding for mainframes and single-processor servers. Today, development teams can be dispersed across the globe, use radically different development tools and frameworks, and can even architect applications in contrasting ways.
This transformation has been mirrored by a major change in the way enterprises think about applications, what they are for, what they support and how they should be built. The way software is conceptualised has undergone a step change.