Thursday, August 13, 2015

COBOL: 50 years and still going strong

Each of us uses COBOL ten times a day without knowing. What are the costs of retiring the language?


When Mihaela Lazar first learned COBOL in the early 1970s, little did she know that she would be paving the way for a successful career several decades later.

In the 2000s, Lazar got a job offer she couldn't refuse as a COBOL developer in Bucharest, Romania. She continues to work with the language today: "Life's twists and turns took me back to COBOL," she said.

Experts like her are hard to find, but much in demand: COBOL still powers most of the world's financial transactions and despite being over 50 years old, the programming language shows no signs of fading away.

Identification division

COBOL appeared in 1959, when Steve Jobs was just four years old, half a century before the arrival of the first iPhone.

The guidelines for the new programming language aimed at businesses, designed to make software more affordable and easier to write, were set at a meeting at the Pentagon. COBOL, an acronym from COmmon Business-Oriented Language, has had few updates since then, though it became object-oriented in 2002.

Despite its old age, COBOL is still commonplace. The average Briton still interacts with it ten times every day, for example - using an ATM machine, waiting for a green traffic light, or shopping online. It's also said that there are more COBOL transactions than Google searches each day.

The language is widely used in business, finance, and in state-owned companies. A 2012 survey found that 48 percent of businesses and government organizations rely heavily on COBOL, compared to JavaScript's 41 percent, Java on 39 percent, and C# on 26 percent. What's more, over one-third of those surveyed said they planned to develop new applications in COBOL in the future.

Environment division

Recruiters deal with a number of issues while searching for candidates. "We need to dig deeper, COBOL devs aren't very visible," Roxana Barbu, IT recruitment consultant at Brainspotting Romania, told ZDNet. "Plus, they are more loyal to the company they work for and aren't interested in other offers."

With more and more senior developers approaching retirement age and almost no university courses creating the new skilled graduates needed to compensate, COBOL jobs are becoming hard to fill. Almost half of the companies have noticed a shortage of skilled specialists and half of firms report that the average age of their COBOL teams is between 45 and 55, and more than 20 percent claim it's above 55.

Recruiters find it challenging to hire experts. COBOL developers are often in their 50s or 60s, and ageism is rife in IT companies. Employers favor the young, although they won't acknowledge it openly, recruiters say.

Not all employers have such a short-sighted approach and turn to experts such as Lazar for their expertise as well as younger professionals. "My colleagues are 30 years old, on average. The youngest one is 25," Lazar told ZDNet. "I grew younger thanks to them."

Today's young developers, meanwhile, could be honing their skills for an equally long career. "COBOL experts have the chance to focus on one area of expertise and develop their skills in a very deep way. This gives them the opportunity to stay in a certain role for a longer period of time," Peter Gersak, CTO for IBM South East Europe, told ZDNet.

The company works with both experienced and rookie COBOL devs, trained on-site. "A few years ago, IBM started to teach COBOL to young graduates through internship programs in Romania," he said. The company welcomes not only IT graduates, but also those from economics backgrounds. "COBOL programmers need to understand business logic much more than programmers in some other languages. The market demands this kind of expertise because an understanding of business logic is so crucial."

Training young devs on COBOL is equally important for insurer NN Romania. Experienced professionals at the company help new recruits and interns better understand the capabilities of the language for transactions involving pensions, new insurance packages, or commissions.

Theodor Aman, CIO at NN Romania, told ZDNet that the company tackles the shortage of developers by constantly offering internship programs to young people. The best are later hired on a permanent contract. The company has even had Java devs switching to COBOL.

"We rarely recruit experienced employees. Most of the time we select young people full of potential, in which we invest time and effort so that they can be reliable professionals in two years' time, or even senior professionals in three or four years," he said.

The company has chosen this path because it wants people who can easily become part of a team and fit with the organization's culture. "We'd rather go for employees driven by change and by team spirit. If those competencies are lacking, they are harder to gain compared with [COBOL] skills and experience."

Data division

COBOL's half a century career is astonishing, to say the least. Our society mocks a two-year-old smartphone or a ten-year-old car. Why is this language still guarding our financial transactions, using apps most of which are two decades old?

The quick answer is that COBOL applications still work. They meet the list of requirements business people have, and deliver the results they expect. Reliable, no surprises. Businesses fear change.

IBM's Gersak said that COBOL is widely used in transaction processing on System z mainframes, System i (AS/400) and Power systems, because "these systems with COBOL applications are still the most reliable technology and platform".

Another reason is money. "There's a huge amount of COBOL code globally, and rewriting it would be extremely expensive," NN's Aman added. Hiring someone who understands the language and can tweak existing apps seems to be the most budget-friendly option for IT departments, at least for the time being.
But can COBOL be trusted to handle with our money given that it appeared in 1959 and hackers have learned a great deal ever since?

Catalin Cosoi, chief security strategist at Bitdefender, told ZDNet that there are very few vulnerabilities involving the language. "COBOL wasn't designed with a security mindset. However, considering that it's used in finance and in state-owned organizations, a natural security-by-obscurity system emerged," he said. "COBOL software runs in a closed environment, not in the mass market, and has been tested for decades by financial organizations, hence the low number of vulnerabilities."

His comments chime with last year's CAST Report on Application Software Health. "Security scores for COBOL applications are significantly higher than other health factor scores while changeability scores are significantly lower," the report says."Since most of the COBOL applications are in either the financial services or insurance industry, the elevated security scores represent the critical concern with protection of confidentiality and financial assets in these industries."

The report also mentions that the average module size in COBOL was 600 lines of code, compared to just 50 lines of code for modern languages. "Code units in Java-EE were even smaller, typically around 30 lines of code," it adds.

Procedure division

How long can COBOL keep meeting our needs? Rick Oppedisano believes it's time for a change. The VP of global R&D at Modern Systems, a company aiming to help business switch to Java or C#, told ZDNet that we're approaching the inflection point in terms of cost. Soon, it will be more difficult to maintain COBOL than to convert the code into another other language.

"The cost of running COBOL environments have increased over the past five to ten years," he said. "Companies that charge license fees for mainframe-related technologies have raised their rates to compensate for the number of people migrating away from these solutions."

According to Oppedisano, translating COBOL into Java can be up to five times cheaper compared to writing everything from scratch. "In small, straightforward and well-documented environments -- very rare -- the costs can be as low as $150,000 to $200,000," he said. "The largest projects we've worked on, in complex environments with tens of millions of lines of COBOL code and deep testing and validation requirements, are in the $2m to $4m range."

Costs are only part of the issue, he argues. People fear the risk of a migration failing. "For many organizations, the legacy system is a black box - a massive amount of loosely organized COBOL code written by developers who retired or left long ago, leaving behind little documentation or standards."

Remaining faithful to COBOL often poses more risks than a migration, he adds, and old tools ultimately affect the competitiveness of the organization. "Companies collecting valuable data in COBOL and legacy databases do not have the ability to slice and dice data across multiple sources to find new trends or customer usage patterns."

He also said that COBOL apps and databases don't integrate with modern IT architecture or business intelligence tools. In addition, "new features and functionality can take up to 10x longer to implement in COBOL than they can in a modern language like Java or C#."

Oppedisano anticipates that COBOL's market share will decrease by 15 to 20 percent in the next five to 10 years. "The only companies keeping COBOL will be those slowest to change -- mostly large finance, insurance or government bodies."

Analyst houses such as Gartner also expect the language to maintain most of its fans in the years to come. Maybe we won't think about it when we use an ATM or while waiting for the traffic lights to turn green, but it will still be there, working away. COBOL is not yet ready to STOP RUN.

No comments:

Post a Comment