Forward Advantage's Communication Director System 4.0
Circa 2012-2013 (8 mos.)
Foward Adantage's Communications Director 4
Forward Advantage's Communication Director 4, a Microsoft Silverlight based application that utilized SQL-Server as the database backend, Microsoft Extensibility Framework (MEF), Rich Internet Application (RIA) and Microsoft Entity Framework (EF). I was originally tasked with developing the Routing Application as a remote developer. I was supposed to spend the first two weeks on site to learn their requirements.
Their original architecture involved a launching application called Communication Director System (CDS) that would launch independent applications, each performing their own functionality as required. The idea was that a client could pick and choose which applications where applicable to their needs and not have to buy the entire Communications Director System package. Upon arriving, in my first design meeting a problem was being discussed about the way they were launching CDS and its satellite applications. The way they were doing this allowed applications to launch once, but not a second time unless, as they saw it, they rebooted the machine. They had even payed for Microsoft Consultants to come on premise to help them resolve the problem to no avail. At this time, Microsoft was abandoning Silverlight for a new initiative since it was known that in the near future browsers would no longer allow plugins like Silverlight and Flash, so basically Silverlight was quickly becoming an abandoned technology. The original Silverlight team at Microsoft had been dismantled with many key figures transferred to new departments at Microsoft. This team that came to Forward Advantage did not know the Silverlight issues very well. I, on the other hand had already been down this road while working with Structured Management Systems and their adoption of Silverlight. What was at issue here was that Silverlight had some bugginess that in certain cases would not properly dispose of objects and keep them alive regardless of what you did. Even when Microsoft declared all of these memory leaks corrected there where still instances where Silverlight would just no let go of instance objects. This caused memory leaks, and in Forward Advantage’s case, would not allow the launching of applications since an instance of the application was still in memory even though there was no UI visible and the Browser had been closed. I had spent a lot of time diagnosing this problem at SMS and knew it well. I explained the situation to the team and told them how to avoid it. It was just one of those issues that Microsoft was not going to fix, so you had to make sure that you did not cause it to happen. Folks went back to their machines, applied the fixes I suggested and there were smiles all around. At this point I had their interests because I was apparently well versed with the ins and outs of Silverlight.
At the next couple of meetings, I laid out a new direction for them and a completely different architecture. My concept transformed the Communications Director Service (CDS) into the containing framework for all applications. No longer would separate applications be launched, all functionality would be contained within CDS 4.0. There was the issue that not all clients would purchase all of the satellite functionalities and the company did not want to supply just one large monolithic solution. My remedy for their concern was the Microsoft Extensibility Framework wherein each satellite application could be treated as a separate plugin that could be downloaded during runtime once purchased. This concept was adopted and this became the way forward. I ended having to stay there a lot longer than two weeks, more like 60 days until everyone got the hang of doing things through the MEF framework and learning how to avoid Silverlight’s penchant for holding on to objects and leaking memory.
I had contracted with Forward advantage to create their Routing application in 12 months. But Forward Advantage’s marketing had committed the company to presenting the new CDS 4.0 at an industry show within 6 months. Forwards Advantage was now demanding that everyone commit to 60+ hours a week over the next 6 months. I was just not able to do so and told them that I would increase my 35-hour commitment to 40 hours a week but that was all. Other contractors also would not commit to more than 40 hours. Relations between Forward Advantage and the contractors became quire strained after a couple of months. Meetings became somewhat tense with some very heated personal attacks against some contractors. When my turn came for the vitriol I simply told the project manager that I would not accept that kind of language or treatment and gave 2-week notice. To my knowledge they did actually get the CDS 4 platform out there for the show and it was a great success. I had completed the Routing manager as promised but I was no longer involved in the CDS development which had also fallen in my lap.
Forward Advantage was actually a good company to work for. They were competent and quite easy to get along with. I attribute what happened to folks being overworked and overwrought trying to meet a near impossible schedule. They did get the job done though.. Silverlight did get dropped by Microsoft as a technology though it is in maintenance mode. I suspect that Forward Advantage will move to a WPF or even a UWP application. The latter is what I would suggest to them if they were to ask me since that could reach most platforms including Mack, iOS, Linux and of course Windows.