How To Make Sure You Are Not Working On A Legacy Software

How To Make Sure You Are Not Working On A Legacy Software

Many winters ago on a snowy day, I got into public transit bus on my way home and sat down next to a group of chatting technology professionals. I joined by telling what I do for a living. After a while, one of them asked me if I considered the software I was working on at that time, 'legacy'. It turns out, this is not a very easy question to answer. How can we be really sure we are working on a software that is not legacy? An old code base need not result in a legacy software and a new code is not necessarily going to make a software 'modern'. As Bjorne Stroustrup put it,

"'Legacy code' often differs from its suggested alternative by actually working and scaling."!

In this post, I will list some criteria that can make a software legacy and then evaluate IBM's DB2, the software I work on today, using these criteria.

1. Runs On A Platform That Is Not Current

'Not Current' is the keyword. Custom hardware required to run a software may not be compatible with other new hardware. Such hardware and software running on it without full vendor support are legacy. If a software runs only on an operating system like TPS from the 1960s, DOS 4.0 even or even out of support Windows ME, is legacy. IBM's z/VM was released in 2000 but based on 1960s concepts runs on IBM System z and can run thousands of VMs on Linux on z.  So if you are working on platforms under active development, evolving with new technology and powering many enterprises then you are not working on a legacy software.

DB2 which I work on is a database manager developed very early as well: IBM Database-2 (DB2) was released in 1983. Similarly, the first Oracle database software was released in 1979. But today, DB2 is a cutting edge database that runs on leading modern platforms. For example, DB2 runs on various latest Linux flavours such as Red Hat, SUSE and CentOS, on Windows, HP-UX and many other operating systems. DB2 also runs on a huge list of modern VMs and on standard Intel/AMD 64/32 hardware, IBM z and POWER systems. Also, these days real test of modern enterprise software is its presence on the cloud. dashDB which is a spin-off from DB2 with so many other things included offers a Data Warehouse as a Service (DWaaS) on the cloud. IBM SQLDB is a fully managed DB2 database as a service (DBaaS) on the cloud. DB2 on Cloud is a new offering that gives customers all the benefits of cloud and a database they have full control over. Integration with Spark and NoSQL databases like Cloudant is supported as well on the cloud. Not just that, you can seamlessly develop apps on Bluemix which is one of the most popular platforms as service (PaaS) and use DB2 technology off the shelf without much effort. That makes DB2 an enterprise-class state of the art database.

2. Uses Older Methods or Technology

The software can run on a modern platform yet be legacy because it uses completely outdated technology. Let me share this one for fun before we get started. You can check out legacy IBM PC DOS, Windows 1.0, Mac Os Sys 7 or Amiga 500 operating systems right in your browser (thanks @jhpot). What about the emulators, are they legacy too? That aside, United States air traffic is controlled using software made in the 1970s called the Host Computer System. Obviously, the technology is outdated but the system is very reliable and highly available (average about 99.98%). Its hardware was upgraded but because the technology is older, I think, we should consider that a legacy system. NextGen a system that is supposed to replace this "legacy" system isn't fully operational. What do we call it when it is fully operational in 2025? I suppose that will be legacy as well if it doesn't use the technology of its day.

Another example, in contrast, is Thales Rail Signaling Solutions' Vehicle Control Centre (VCC) which runs driverless trains in London tube, Dubai, Toronto airport and other places, works on state of the art hardware (disclosure, I lead this project). But because passenger safety is involved, they must use safety-critical certified code base that is proven for years. However, the technology rail signalling uses is state of the art, making it a cutting edge solution.

Coming back to check facts again on DB2, we, of course, know all relational databases including DB2 are based on Edgar Codd's invention of relational database technology published in the June 1970 paper. DB2 and probably others too are also inspired by the engineering of the first relational database IBM’s System R developed in 1974 as well. System R already had SEQUEL, optimizer etc back then. Yet, if you think about it, that is a decade after the invention. But, the technology adoption time of about 10 years was normal at that time; adoption is much faster now. Even in the days of faster technology adoption, I see DB2 is well ahead of current technology trends. DB2 released column-oriented table support back in 2010 while most other competitors are coming out with one now. In-memory support, clustered scale-out database (pureScale), Compression, Native Encryption, Warehousing, Big Data capability of BigSQL, High Availability so on. These are just some of the advanced features of DB2. A good percentage of the world’s important financial transactions run on DB2. There are DB2 databases terabytes in size running some of the world's largest businesses taking advantage of a new technology invented at IBM Laboratories.

3. Uses Languages and Tools That Are No Longer Active

Imagine a software is written in assembly language for a processor no longer manufactured (e.g Motorola 68306). I had the pleasure of writing such an application in assembly and that is where development tools come into the picture. Maintaining, improving or sometimes porting such application will mean the use of just an assembler or an emulator that hardly works well. We may also be using a fairly new language but very old build tools because of some dependency or the other. All or any of these, I think, will make a software legacy. However, the mere use of assembly language does not make a software legacy. Assembly language is necessary for performance optimization and if programmed well can be maintained with fairly reasonable effort.

If I come back again to check how DB2 stands with respect to this criteria, we see that database managers are usually developed in C, C++, partly Java and some assembly. This is true for most of the database managers including DB2. Combined with the latest build tools and agile process DB2 is ahead into the future. Continuous delivery and automated tests keep our builds in good shape while improvements and tool enhancements are applied continually. There are two language support options to look for in databases: language API support and national language support. DB2 provides API for most of the popular programming languages and support for many national languages.

There is an ancient saying by Sanskrit poet Kalidasa,

"Not everything is appropriate just because it is old, nothing is inferior because it is new. Good people investigate before praising, fools follow other's ideas".

We have seen in this post how we need to investigate several criteria before labelling software or a system as a legacy. I think, if we take the time to go through the above criteria, it will give us an opportunity and a method to evaluate the software as a whole. This method is also good to find areas to improve.

Even if we find that the software system we are working is truly legacy, there are solutions to either transform them or better manage them. For example, IBM Integration Bus offers a solution to integrate applications running on both legacy and modern systems. Integration Bus does this by passing messages between applications and incompatible operating systems. The overall solution to transform legacy systems is also available.

What software do you work on? How do you think it measures against the legacy test criteria? Tot kijk!

No alt text provided for this image

Disclosure: I work for IBM Canada Lab. All opinion my own, Not of IBM.

Mahanth Gouda

Product Leader | Embedded & IoT solutions | Ex-ARM | Ex-RS Components | Ex-Texas Instruments

9 年

Nice one

回复

要查看或添加评论,请登录

Ragu Kattinakere的更多文章

  • Yoga for Software Developers

    Yoga for Software Developers

    No, Patanjali did not write a distinct sutra tailored for software developers! However, I'm going to provide some…

  • Are you professionally desirable?

    Are you professionally desirable?

    This is a original work on desirability of professionals; not a compilation. Have you noticed that some professionals…

    2 条评论
  • Is Design Thinking A New Fad? Or Can It Really Help Improve Your Product?

    Is Design Thinking A New Fad? Or Can It Really Help Improve Your Product?

    The word for intelligence in some languages actually refers to intuition. The intuition is also referred to as being…

    2 条评论

社区洞察

其他会员也浏览了