What would you call a platform that is made up of multiple elements, each one connected one to another by a very thin line of integration – having each one reliant on the other for proper functionality? – A MESS!
Recently, a customer of mine had asked me to review a platform that he has, that had been built by another integrator. According to the customer, the platform was built on top of an Asterisk + MySQL stack, with an Apache based front end. I had asked the customer to send me some code segments from the platform, so that I may have a better view of things. The code segments that were sent had suggested that the platform isn’t far from the description. Asterisk is indeed the main IVR core, MySQL is used as a database, and it would appear that the scripting language is PHP – all is good, looks fairly nice. So, next step was to logon to the actual platform and take a closed look…
At this point, all hell broke loose! Aparently, the web front end was based on a Python based engine called django. While django was an interesting piece of code in terms of learning it and maybe using it, the immediate meshing of django into the IVR application framework didn’t make any sense to me. In addition to that, I’ve come to learn that there is also an Oracle database server installed on the system, running some funky JAVA server, that was communicating with the IVR application, via a very flaky interface. In other words, the platform is a mixture of technologies, integrations that are done in a none standard way and worse of all, no documentation anywhere in the code about how it works.
Now, the customer wants me to take control over the platform and to assume responsibilities for it. My immediate answer was a big NO WAY! Imagine that you need to take responsibility for a child that is not yours, one that you know for fact that is prune to burn down your house, as he shows clear signs of pyromania – would you assume responsibility? I don’t think so. So, I tell the customer all the facts and the customer says: “I don’t care, I want it in working condition, ready for production in 7 days!” – in other words, and impossible mission, especially with all the decoupled technologies within the application framework.
What would you have done?