If there is anything that the iOS and Android Smart Phone era has taught us it is that people like easy to use (single purpose) well thought out app’s. The ability to use a clean fresh interface to manage one particular area of our social, work or recreation activities is a major transition from how software has been developed in the past. This ability to go and find the one function you need to solve a specific problem has shifted perception away from the need for complex all-purpose pieces of software to a “Do one thing – but do it well” model.
We are currently in the middle of an Application Asset study within our organisation, recently a colleague from a vendor was asking me how many pieces of software we had, when I told him the number he was aghast and followed up with the standard question of how we planned to reduce the number of systems.
I have to be honest and confess that traditionally I would have agreed with this assessment and looked for ways to reduce our software footprint, but in today’s world I feel this is the wrong way of thinking. My current mindset is focused on the rule of “simplifying the technology base” not specifically “reducing the number of applications”. This may at first appear self-defeating however if I have one technology platform or framework on which I can build out the applications landscape to suit our business needs with a mix of reliable Single Function commercial applications and in-house developed app’s using a consistent technology, interaction, data and communication base then I have a means of being very agile in looking to address problems & opportunities within the organisation.
The Smart Phone world combined the emergence of API driven SaaS applications and deployment platforms (e.g. Salesforce, Azure, Google App Engine and newcomers such as GraphiteGTC) have shown how to build an eco-system of individual parts that can be easily joined up to build applications that meet people needs in an efficient manner.
Most enterprise focused applications or “Monoliths”, are not just deemed to be legacy from a technology standpoint they are also legacy” from a design and deployment perspective. Even today companies that build enterprise class software still focus on building a single system, yes there is SAP and others that build components but within these components there is still a high degree of functionality which implies and leads to higher levels of complexity and cost of ownership.
Moving forward I believe we need a software development model where simplicity, communication and interaction is the core of any application being developed even in the enterprise world. Just as OO was a paradigm shift in that it encapsulated behaviour within objects, applications should be viewed as a means of encapsulating “Function or Process”.
By approaching software development in this manner and building out an eco-system that can conform to the application map below we can deliver a significant range of benefits to the business and drastically reduce the complexity of our IT Landscape, and by complexity I am not referring to the “Number of Applications” but to the complexity within the applications themselves.
It will be a while before the old approaches disappear (and they may never go fully) but our Smart Phone App’s are showing the way and as these are the ones we use every day by choice, the business software developers will have no option but to follow.