Software is diverse. Because enterprise software systems are built using a wide variety of code libraries, internal architectural structures, development methodologies and of course different software languages, software diversity enables programmers to dip into a vast toolkit of tools. From this diversity comes breadth, adaptability and flexibility, but – equally perhaps – from this breadth also comes complexity, (some) confusion and a lack of standardization.