Over the course of the last week I have been completely frustrated by an application that is an almost a text book example of how not develop and publish software. I’m not going to name the offending application, but I will state that is reliability – or general lack of it – is well documented, especially within their own support forums. And no, I’m not talking about Windows or any other Microsoft product.
My criticisms are drawn from two differing viewpoints. I am both a system administrator and a developer. Consequently, I have the position whereby I can comment from both the developer’s perspective, but also the poor sap who has to install, maintain, and for the end users, actually support it.
My criticisms are many, but they all have the foundation in what I can consider to be poor development management.
I just don’t mean the occasional bug or feature, I mean some real show stopping bugs. Bugs that should have been addressed long before the application should have even been considered for release. You do get the feeling that the developer’s QA team (if there was indeed one), either could do their job, or couldn’t be bothered.
The number of bugs is compounded by the high number of erratic bugs. For a developer, the erratic bug is that elusive gremlin that you can spend hours or days trying to track down.
All applications have bugs – as the various update services from Mozilla, Microsoft, Apple etc will testify – but this application has too many.
Requires Frequent Administrative Care
Speak to any network or system administrator, and unless they are suffering from some form of mental illness, they want things to work, and to work with minimal input from them. My ideal piece of network hardware, service or server is one that sits in the corner and does the job to which it was intended day in and day out without any problems.
The application in question was supposed to reduce the support load and increase customer management capability. Whilst it does do the latter -when it is working – it really hasn’t done the former.
The method to resolve nearly every problem is to re-install either the entire application, or some of its’ components. I thought we had left this kind of software maintenance method back in the days of Windows 3.11. But no, nearly every time something has gone wrong I have eventually had to reinstall some or all of the application.
Updates Break It
Yes, that’s right. Official updates supplied from the developer that frequently contains bugs fixes breaks the actual application. Need I say more?
Performance is a little flexible with this application as it is actually an ASP.Net application, so it is necessary to take into account a number of factors when considering performance. These include not only the resources of the host server, but also that of the client computer, the connection between the two etc. Well, it sits on a high-end server sitting in a datacenter with a dedicated 100MB connection.
Even so, the speed at which it operates can sometimes be positively glacial. If you try and connect on anything less than a 4MB line, it can be almost painful to do anything
If I’m honest, this is the single biggest issue. One of reasons behind selecting the application was experience with the preceding version. I liked the preceding version, and so did many of my colleagues. It did what all really good software does: exactly what is says on the tin. It did is simply and easily and reliably. The interface was clean, intuitive, and didn’t require a fibre connection to load. The newer version is written in a different language and simply does not even an equivalent replacement for its’ older sibling. The developer has actually managed to go backwards.
So why don’t we simply replace it? Yes, it would be possible to do that, but doing so would involve both time and capital expenditure. Certainly the latter is in short supply at the moment. The time component cannot be easily overlooked. It is not simply the question of how much time will be required in installing and configuring the application. It is also necessary to factor in the requirement to learn a completely new application. Its’ shortcuts, its’ foibles. Its’ annoyances. Do I simply throw out over a year’s worth of knowledge and experience in the hope that a replacement will be some magic pill and work without a hitch.
The answer is no. For now we will soldier on. However, my original statement still stands. If I was teaching programming, I would hold this application up in the air and say this is not how how to write an enterprise application.
One last word, the latest big update contains a wonderful new feature. It won’t install completely on x64 systems. The developers solution: create the Registry entries manually.