We have been asked to talk about how we manage our software development. What reassurance can we offer to our own customers that we are getting things right and what lessons can we offer to others?
It is a tall order. Development strategy is a function of many things and no one formula fits. For example, if we were an industry behemoth, we might well be busy paying lip-service to software standards, but working furiously to create our own as well, so as to lock users in. We are in fact the opposite of this. We provide a core platform for managing call center sessions. On top of this we empower, if not actively encourage our partners to integrate all manner of third party applications. Of course, we have many applications of our own, but if they want to do their own reporting for example, then we will happily cooperate by supplying data feeds. This means that a significant part of our development process is focussed on all the technical stuff to do with integration, so that it is as easy as possible.
What about our core platform? A key challenge for any established software house is how to combine "the new" with its legacy systems. One solution is to build a wall around your legacy systems and provide some basic interfaces. This can work for a while but is usually self-defeating in the medium term. Some new kid on the block is going to come along and eat your lunch with better-engineered systems. So legacy systems are usually a lingering death. Instead, we do continuous refactoring of our code, meaning that we are able to deliver new functionality to customers in an incremental way, preserving their investment in our software. A good example of this might mean the move from say client server to web services.
But of course, refactoring alone isn't the answer. The real key to our development efforts is to have a very strong innovation mindset. This allows us to do two things. Firstly, to constantly extend the product to meet changing customer requirements. And secondly, it allows us to intercept new technologies, such as WebRTC and build solutions around them, sometimes before our customers have even thought about it.
Perhaps the most exciting challenge for us is the move from Static Service Configurations to Service Orchestration. This brings major advantages to our customers and we will touch on these in a forthcoming blog.
Staying relevant and competitive in this way costs time and money but if you want to survive and offer great solutions to your customers, there is no alternative. No amount of marketing will compensate for software development which gets caught in a time warp. If you are not sure about this take a close look at some of the giants in our industry who have been failing over recent years. The main reason lies in product and the failure to understand that constant improvement and innovation is a necessary way of life in our industry.