The IT leaders of many Retailers are reviewing their team’s capabilities, and are re-investing in the skills associated with Software Development.
A maxim of 1990’s and 2000’s IT departments was “Buy not Build”. As the cost of developing software increased, and the availability of resources became scarce, buying a software package made more sense than building it yourself. After all, no-one builds a car from scratch. Conceptually, fractionalising the cost of development over a number of customers would be more economical, even with the software company taking a clip of the ticket, than each customer building their own. For Retail organisations, software engineering was not a key capability, and they were happy to effectively outsource software build to others.
On the back of such logic, products such as SAP became hugely successful. Retailers developed integrated platforms, generally consisting of a major ERP, several additional Merchandising packages, and a Warehouse Management System or two. The IT team’s efforts became focused on configuring, integrating and support such packages, and the need for software development skills declined.
However, as the demand on IT departments continues to increase, technologies become more advanced, and the ever downward pressure on costs cuts in, many retailers are experiencing a series of issues
- Embarking on a project to replace (or even upgrade) one of these monolithic systems is expensive, time consuming, and not very rewarding for the company
- Ongoing license maintenance becomes an expensive part of the IT budget, often with little return. How often do you actually call the vendor’s support desk?
- No matter how configurable these systems are, they constrain the businesses operations and processes in ways that are often resisted by companies
- Often retailers find they have swapped an army of computer programmers for an army of package specialists, not delivering the promised IT savings
Against this backdrop, advances in technology have made software development much more accessible. Significant trends that are emerging to achieve this include
Agile Methodologies
The introduction of Agile methodologies and techniques have transformed the way software development projects are achieved. Agile gives back control to the Business over the development process, and by keeping the User Experience at the forefront of design, results in products more appropriate to the true needs of the end user.
Continuous Integration
Closely linked to Agile methodologies, new tools and techniques for continuous integration of software changes into the Production environment are making iterative approaches to software development more successful, and de-risks the impact of software changes
Cloud Computing
Utilising Infrastructure As a Service (IaaS) and Platform As A Service (PaaS) allows developers to focus on the functionality of their software, not the mechanics such as servers, databases, queues, storage or archiving.
Open Source Software
The availability of open source software, allowing the developer to quickly put together a solution by building on easily available blocks of functionality, simplifies and accelerates the development process. The rapid response to questions and support queries posted on Open Source forums such as Stack Overflow or Github puts the support organisations of any conventional software vendor to shame.
API standards
Finally, the standardisation of API technologies has made component based software a reality. POST, PUT and GET messages over HTTP are now routinely used to allow software components to access each other’s functions, and protocols such as JSON and XML have standardised the representation of the data included in these messages. This means that plugging together sofftware modules from diverse sources and technologies is simple and efficient.
Its true that no-one builds a car from scratch. However, when you build a house, it is acknowledged that prefabrication is rarely effective. Houses are designed for the specific plot of land on which they are built, and for the individual needs of the purchaser. Some components such as roof trusses may be built off-site to order, and many standardised components such as the hot water system are acquired ready made. Yet other components such as cupboards are built for the house, but utilising parts that are mass produced, whearas components such as the brickwork are completely built on-site.
So it is for software packages. The cost and complexity of today’s software project is much closer to a building project than to the purchase of even the most luxurious vehicle. For the forward looking Retail IT leader, building a Software Development capability needs to be an increasingly important part of your overall strategy.