Frankenstein was a monster made up of other peoples parts all jumbled together. The problem was, as we all know, he didn’t work just right. Imagine a software application that was built like Frankenstein. Well it happens more often than not, I’ve even done it myself. As a software developer we often try to re-use code or applications in other solutions as to save time or money. This is fine in theory, but it can have the wrong results.
Additionally, most software applications are never done. There is no finish line, just another version. Unless a company goes out of business or the solution is bought by a competitor, that software goes through iterations of changes and updates. This is great for the end user because they are consistently seeing new features and added value. But what happens the solution?
Two areas are affected when improving a solution: 1) the front-end user interface is modified. 2) the back-end coding is added too.
Enhancing the front-end: This is great in theory, we’re going to add new features and the solution is going to be even better. But then how do we add those new features, from a user interface standpoint. Where do we put this button? How do we add that text field? Questions like this need to be answered. I think that Microsoft is probably the best company when it comes to improving user interface from version to version. Some people will argue till the cows come home the complete opposite or that it is in fact Apple that has the lock on this area, but this is my blog and I really love Microsoft. They may be the 600 pound gorilla, and as much as I don’t always speak highly of the 600 pound gorilla, but in Microsoft’s case there are some things I think they’ve done really well. Enhancing user interface from version to version is one of them.
But most companies aren’t Microsoft, and more importantly they don’t have the budgets that Microsoft has to develop the best user controls. In fact, one of the exciting changes in software development over the past 5 years has also been one of the downfalls in this exact area. Because developing a web application has become so easy and the technology is at the fingertips of so many developers, we are getting more and more software applications with horrible user interface. A software solution is truly only as good as its interface because if people cannot use it, then it won’t get used and then you don’t make money. When software companies that are made up of only developers, even if those developers are brilliant, you frequently end up with Frankenstein solutions.
Every new version and feature is just snapped on to the previous one. There is not logic, rhyme or reason for where things are placed. No attention to detail. No quality control. And what we are left with is a software monstrosity.
Adding to the back-end: If you’ve ever been in the software development business you’ll know there are many types of coders. You have slow coders and fast coders. You have the ones that comment everything and those that have no sense of naming conventions. Very few developers look at the code as a user interface for the back-end. Once in a while you will find a developer that is an artist; not necessarily a graphic designer, in fact you very rarely see that, actually, I’ve never seen that. But from time to time you get a developer that really sees the big picture and can create art in the back-end. I’ve dealt with 2 people in my life like that; let me tell you, it’s a real joy. It is what makes me continue to fall in love with the software world.
That being said, we frequently see the same problem on the back-end coding side as we do on the user interface side, Frankenstein code. And, what’s worse, when you have more than one developer making changes on top of the others, the different styles cause for a real mess back there.
That’s how you get a Frankenstein software application. This type of solution is very hard to salvage and you are often better off just scrapping and moving on. If that happens, don’t feel so bad because you can take all you learned and apply better practices the next time. I’ve done it before and I’ll do it again likely, but right now we have a Lead Management Application that is second to none I’ve ever worked on or seen.
Recent Comments