Developers not directly involved in legacy migration projects may care little about how the applications they work on today will adapt to new environments and future technologies. Yet, application longevity—the ability for an application to keep pace with successive waves of new technologies, languages, and platforms—is a big concern for enterprises that foot the bill for today's development projects. Developing applications with longevity in mind can add value to a developer's work.
Yet, according to Jennifer McNeill, CEO of CipherSoft, ensuring application longevity is often in direct conflict with developers' desire to try new tools and to be on the cutting edge of technology.
McNeill, whose company helps migrate legacy database applications to enterprise Java, told Artima that adhering to widely accepted standards is key to ensuring application longevity. By contrast, using the latest tools and technologies that stray from widely accepted standards pose an impediment to future application migration. That's because automated migration tools focus on standards-based APIs and frameworks, requiring custom, non-standard code to be migrated manually, an expensive and labor-intensive proposition:
The biggest problems we see with applications that had been developed [in the past] is that they'd gotten outside the standards... [Their developers] somehow strayed from the standards because they found some really cool tool... that they picked up from somewhere... They don't necessarily know if that tool, or that technology is going to be supported in three to four years. The [tool vendor] may be purchased, the tool may not be adequate in a few years, the company may not be able to make it financially...
Our recommendation to clients when they start developing in Java is to use as many of the Java standards as possible... If they use whatever is available in Java EE or Java SE, they are going to be safer when they migrate to something else...
McNeill noted that part of the responsibility for straying from standards rests with developers who are naturally attracted to trying out new and cutting edge tools and technologies:
Programmers are very creative. They have a hard time really staying focused in one environment because they get bored easily, and when they find a new technology that's really cool, and they think that's going to solve some problems for them, they don't necessarily do the due diligence to make sure that that technology is going to be supported in future generations of software or in future development environments...
I am programmer, and I've been managing programmers for thirty years. To keep [programmers] focused is hard: This is the product we're producing, and we're going to release it, and it's going to be right, it will have minimum bugs, it's going to work right, clients are going to be happy. We're going to finish this, and we are not doing this other cool stuff [until we release what we're currently working on].
I watched software companies go out of business because they build these products, and get them three-quarters of the way done, and then find something else that's really cool, and they go off and start chasing that...
|Jennifer McNeill, CEO of CipherSoft, talks about the importance of adhering to standards. (6 minutes 52 seconds)|
How do you balance your desire to try and learn new things while also sticking with the beaten path of standard tools and technologies?
And how does your company manage the tension between keeping developers stimulated with new environments and tools, while also keeping them focused on the tools and technologies that they need to work with each day?Post your opinion in the discussion forum.
Bill Venners is president of Artima, Inc. He is author of the book, Inside the Java Virtual Machine, a programmer-oriented survey of the Java platform's architecture and internals. His popular columns in JavaWorld magazine covered Java internals, object-oriented design, and Jini. Bill has been active in the Jini Community since its inception. He led the Jini Community's ServiceUI project, whose ServiceUI API became the de facto standard way to associate user interfaces to Jini services. Bill also serves as an elected member of the Jini Community's initial Technical Oversight Committee (TOC), and in this role helped to define the governance process for the community.
Frank Sommers is Editor-in-Chief of Artima Developer. He also serves as chief editor of the IEEE Technical Committee on Scalable Computing's newsletter, and is an elected member of the Jini Community's Technical Advisory Committee. Prior to joining Artima, Frank wrote the Jiniology and Web services columns for JavaWorld.