Year In Review

edited December 2019 in General

So, it's not exactly the end of the year, but this is when I have the time I have to write this; and it's near the end of the year.

For many years, one year is not a lot different than the last. This year has been different... and it changed right at the start of the year. I think most people were aware that I've been a long-standing employee of the local municipal government. Anyone who's paid any attention to my Linked In profile may have noticed a change. On January 8th of 2019, I was voted off the island.

After nearly 21 years, it was a bit of a shock to the system. It had been a few years coming, however. The seeds of how things have turned out were started in 2014-2015... Somewhere in there. A reorganization that resulted in a new manager for me. And then a new CIO for the entire IT department. I now had a manager who didn't particularly like me and had no interest inn my career progression. With whom I clashed stylistically. And later, new CIO who believed that we should end all internal software development (concerning, when you're the key software developer in the room).

It's always been only a portion of my responsibilities, but for most of my career there, I've been involved with developing software for the Provincial Offences Courts. It started with software for our court and then progressed to sharing with other municipal courts around the province. Specifically, I have been developing a management system (starting in 2006) that has expanded to encompass most of the court functions and by 2014 was used in 41 of 52 municipal courts across Ontario. In return, the municipalities paid a small maintenance fee (a cost recovery). This "cost recovery" amounted to a few thousand over my total compensation (even though I seldom worked more than 30-50% of my time on the system).

The system encompassed collections of unpaid fines, administration of the court and prosecution. The province has a centrally operated system for the courts, but it's terrible to use and has VERY limited functionality (AS400 based, and the user interface is IBM terminal screens). My system is designed to operate in co-operation with the province's system and does all the things that it does not.

My manager hated that I was always working on the system. The idea that the system should expand and incorporate new features and abilities was lost on her. Her entire ethos seems to be, do only what the business unit asked for, pump it into production and then never touch it again... And give them a hard time about her staff's capacity, whenever they ask for changes. Fix it if we must, but there was no interest in chasing opportunity or innovation.

With a CIO who wanted to shut down development, and a management who didn't like me or what I was doing; they made it progressively impossible for me to work on the system (without direct approval) in 2017-2018. This was frustrating to all the users that I supported and who were paying for me to work on it. While they were shutting down all my development (and progressively taking away other work and responsibilities)... eventually I had little to do. My manager would talk a good game about how busy her staff was and how we could not take on any large projects. For the last 6-8 months I worked there, I worked on personal projects and watched YouTube most of the day; and many of my colleagues on our team were similarly unoccupied).

Things came to a bit of a head in November 2018, when my management structure held a 2-day workshop, with a selected group of court managers from around the province (and specifically not me). The goal of this workshop was to announce that all support for my system would stop at the end of 2019. The group was going to form a committee to both identify a short-term solution to maintaining the system and then a long-term plan for replacement. As justification for this, they proclaimed my system as "old" and "on an unsupported platform" and "eminently going to collapse". When asked about continuing to use it, my manager suggested, "why would you want a Chevette, when you could get a Cadillac". It was bullshit so thick, you'd need heavy equipment to deal with it. The only legitimate criticism was the system targets the Microsoft .NET Framework 4.0; for which Microsoft has ended support. Because no one in the room understood the implications, people came away from the workshop believing that it could take a year of re-writing to update the application. The truth is, it takes less than 30 minutes to re-target the project to the latest version of the .NET Framework.

The system is a client-server based application, using Microsoft SQL Server and a desktop client. Each municipal court operates their own instance of the system on their own infrastructure. Sure, it's not flashy, it doesn't use the latest wiz-bang microserviced web technology. It doesn't need to! The speed of development and supportability of a WinForms application is what made it possible for me to single-handedly develop a large and responsive piece of software. To develop a web-based replacement, with all the features and functionality would cost several million dollars. Not only is that unnecessary, the courts do not have that kind of money to invest in the effort.

Following the workshop, I was incensed to hear all the bullshit that they spun, to justify abandoning and redoing my system. An opinion I shared (confidentially) with a few of my contacts in a few of the municipal courts in the province. Eventually it leaked out, and got back to my manager... who then showed me the door... on January 8th.


  • edited December 2019

    Now... Because of all the nonsense that my management had been pushing over the years (since 2016), about stopping development and restricting services, I'd been talking to friends in the various courts about taking my support of the system private. The software (including source code) was licensed to the other municipalities for free. I reasoned that they would be within their rights to seek support elsewhere. The effort came to a stopping point because my employer continued to support the system. With the end in sight, that then opened up the issue again, for me to take over.

    I kept real quiet while my attorney negotiated my severance (they originally offered 9-months... negotiated up to 14). Once it was settled, I began my campaign to get all the courts to contract with me. It takes a long time, as does everything involving the government.

    Starting on September 1st, I officially opened my own boutique software development business. I have signed contracts with 21 of the municipal courts, to support and develop the court management system; and I expect another 12-15 to sign up early in the new year. With these annual contracts, I will be making better money than I was at my employer, working from home, and I have a plan to hire an additional programmer to work for me (likely in the spring). Since September, I've released two maintenance releases of the system; one specifically including the update to the .NET Framework version 4.8. Just in the last couple weeks I've replaced all my computers (DC/File/Print, Web, SQL servers... new workstation). It was timely, as my main file server was just about out of disk space... Now I've got 18.6 TB free of 21.8 TB... :smiley: I bought three 27" QHD monitors for my desk... is very nice...

    I will be able to operate my company, for years to come, with annual contracts from the municipal courts... and hopefully, be able to find other opportunities and clients who need some sort of custom software solution. The effort to replace my software still exists, but I don't predict great success at that... Certainly not for a few years, anyway. It's still a stress point, knowing that (unless I can diversify) the business could dry-up some day.

    It was painful in the moment, and a lot of stress worrying about how I was going to pay the mortgage (where I live is far from a hotbed of IT job opportunities), when the severance ran out. It has turned out that my former manager has done me a favour... A year's salary, benefits and pension, and the opportunity to take over the business... HAH!

  • Wild story. Congratulations!

  • Congrats on the business! Also, that's a hell of a story. Thank you for sharing.

  • What a ride and great maneuvering. Where is the data stored? Do you host it?

  • @eod said:
    What a ride and great maneuvering. Where is the data stored? Do you host it?

    No, every municipality is responsible for their own SQL Server... They all have one (or several, for larger municipalities), so there's no point in offering any sort of hosting.

  • Except some of that sweet sweet vendor lock in.

  • They're already pretty locked in; in that they are dependent on software that would take anyone else a year (or more) to learn and be able to work on.

    Being responsible for hosting all of that personal data would jack my business insurance rates into the stratosphere. Municipal government is pretty gun-shy too.

  • Way to go.

Sign In or Register to comment.