Blog

COBOL is Finally Trending

Photo courtesy of Dreamstime

The COBOL programming language became 60 years old in 2019, and the Mainframe environment turned 55. During that time, many technology trends have come and gone. Nevertheless, COBOL has managed to persist through the introduction of PCs (Personal Computers), the Internet, and the popularity of the Java programming language. These major trends seem to find a way to incorporate COBOL instead of eliminating it. The last couple of years, especially with the Global Pandemic, have not been any different in terms of technology trends that have impacted and even strengthened, COBOL. This article touches briefly on 5 of those trends.

  1. Modernization:

One such trend is the Modernization of Computer Systems. For example, there is currently a trend for industries to introduce newer technologies to work with and enhance their existing tools. According to a Micro Focus survey, 70% of companies would rather use this method than replace their old systems. In this trending approach, the COBOL code itself could be modernized, and/or modern interfacing technologies could be introduced.

  1. Digital Transformation

Similarly, an extension of Modernization is Digital Transformation, where organizations rethink their (old) legacy systems in order to overhaul processes, operations, and relationships with customers. In this procedure, the existing COBOL code is kept but modularized to be used with newer technologies like the Cloud.  As Bartollk (2020) mentions in his article,  COBOL forms the Basis for Digital Transformation, in Digital Transformation, the existing system is recognized as an essential foundational technology and is preserved.

  1. New Demand for COBOL Programmers

Since the Covid Pandemic, there has been a higher demand for COBOL programmers, because the old systems are the ones paying the associated benefits such as unemployment payments. According to an article by Murray (2020),  Sudden Demand for COBOL Programmers – They Need Help Too!, COBOL programmers are coming out of retirement to fulfill the need for people to maintain these Benefit systems. This requirement to process unemployment claims on often 40-year-old systems has created a spike in jobs for COBOL programmers.

  1. COBOL Course revival

Another recent trend involves the revival of COBOL courses. Most universities and colleges stopped teaching COBOL many years ago, but in response to the demand caused by the pandemic, two of COBOL’s big names, Micro Focus and IBM, have begun rolling out COBOL courses for both beginners and professionals.

  1. Artificial Intelligence

Artificial Intelligence (AI), in terms of COBOL code translation, is another trending topic in the field. For example, the automation involved in AI makes it possible to translate millions of lines of code quickly and generate test cases equally as fast. In this way, legacy code could be replaced with newer technology. In the case of COBOL, an option would be to replace the legacy COBOL code with Java code.

Photo courtesy of Dreamstime

It is remarkable to see that, after 60 years, COBOL is still such a relevant and newsworthy topic. After all the recent trends related to COBOL, we can only imagine what may be next.

 

What trends have you noticed lately in the programming world? Are there any that have affected you personally?

Listening for ‘COBOL’ in Social Media

Part of providing content through Social Media is to ‘listen’ for information about your chosen niche in order to understand the conversations that you may want to become involved in. Since my focus is COBOL, I make it a point to listen daily for news and articles related to the COBOL programming language. If you have a strong interest in a topic and you are a regular Social Media user, your Social Media listening should evolve naturally as part of that interest. For example, I have instinctively incorporated listening for COBOL topics into my daily Social Media routines, not only to keep up with content others are providing, but because I am genuinely interested in the information shared.

Favorite Social Media Monitoring Tools
Google Alerts

One of my preferred Social Media listening tools is Google Alerts. I set up a daily alert to listen for COBOL content. The results–which generally include articles, courses, and job opportunities–are sent to my email. I can quickly scan through them to find the ones that interest me. I favor this tool because it is free, and it gives me a summary of the information that I am looking for.

A screenshot of an example of a Google Alert email

LinkedIn and Facebook Searches

Another of my favorite listening methods on Social Media is to search within the applications. For instance, if I search for COBOL within LinkedIn, I get lists of courses, groups, companies, posts, events, etc., all content within the LinkedIn realm that concentrates on COBOL. Similarly, a search for COBOL in Facebook provides related groups, posts, pages, etc. I perform these searches frequently enough to know what is new in these applications in terms of COBOL. I like to use these types of searches since I can perform them easily while I am reviewing my newsfeeds.

A screenshot of a search for COBOL within LinkedIn

A screenshot of a search for COBOL within Facebook

Sources of News and Updates
Facebook Newsfeed

One of the best sources that I have of news and updates on COBOL-related topics is a Facebook group called ‘COBOL Programmers’. It has about 18,000 members, and there are frequent, current posts. I have joined this group to get updates into my newsfeed which I review daily. There are articles as well as interesting discussions in this group. This source of information is useful to me since the members are mostly experts in the COBOL programming field.

A screenshot of the COBOL Programmers Group on Facebook

LinkedIn Newsfeed

Another great source of current COBOL information and discussions are the ‘Mainframe’ group and ‘COBOL Programmers’ group on LinkedIn. They have approximately 47,000 and 15,000 members, respectively. There are frequent, current article and discussion posts to these groups by industry professionals, which makes these groups valuable sources of information.

A Screenshot of the COBOL programmers Group on LinkedIn

 

As users of Social Media, we are all listening to our chosen topics. Did you also find that your Social Media ‘listening’ developed naturally, or did you consciously create a listening strategy?

 

Analyzing Diverse Target Audiences in COBOL Blogging

In general, regardless of the online group you are trying to communicate with, you must be aware that your audience will be diverse in terms of gender, generational and cultural influences.  In the context of my interest in blogging about the mostly non-technical facets of COBOL programming, there are two main types of audiences. First, there are the seasoned, technical, fellow COBOL programmers, who can identify with the various discussions. These are the older generation, who may be looking for a good COBOL-related article from someone they can relate to. A second main audience would be a younger group with an interest in COBOL but not necessarily experienced or informed technically. They are a newer generation who may be starting out in their programming career and are looking for technical information. It is important to be conscious of the unique needs of each group when deciding on a communication style.

Audience #1—Experienced Fellow COBOL Developers

The first and probably the largest, audience in my COBOL-related online communications are COBOL programmers. The article, The Inevitable Return of COBOL, states that the average age of a COBOL programmer is fifty-five. Also, an Evans Data Corporation (2019) survey found that 27.5% of software developers in the world are women. Thus, the demographic of an online audience of COBOL programmers is probably men around age fifty-five. Based on this demographic, some psychographic information about this group is that they are conservative, upper-middle-class, and are followers. In terms of unique characteristics, according to the survey mentioned, one-fifth of men software developers have a personal interest in the technologies they are using. Consequently, one in five of my main COBOL audience have a personal interest in COBOL technologies. When communicating with this audience, the fact that this group is highly technical must be considered, since they will be more critical of any technical items discussed.

Audience #2—Younger, less experienced, Group with an Interest in COBOL

Photo courtesy of Pexels

The second audience consists of the younger listeners, who have an interest in COBOL-related online communications. In the online environment, I am assuming that the demographic of this group would be well-educated people younger than fifty. Based on this demographic, some psychographic information about this group is that they are trendy, leaders, who may have an interest in technology in either a formal, professional way or informally. When communicating with this audience, I must remember that they may not have a full understanding of COBOL or technical terms in general, and there will be a need to explain things in more layman’s terms.

In conclusion, this has been a short analysis of two diverse target audiences of non-technical Cobol-related discussions. The first group includes COBOL programmers around fifty-five years old, while the second group is comprised of all listeners, younger than fifty, with an interest in COBOL.  This analysis has emphasized how, as a blogger, it is important to know your audience so that you can be relevant and inspire them to take action.

Which audience type do you fall into? Are the assumed psychographic attributes correct for your group? Can you identify another audience not included above?

 

 

A COBOL Programmer’s First Job–1996

Fresh out of my Programmer Diploma course in early 1996 and feeling great, with 2 COBOL courses, a “C” programming course, and a small intro to Visual Basic under my belt, I was ready for my first IT job. I was, of course, unaware that the first version of Java would be released in January 1996 and what that would eventually mean to the future programming world. I had COBOL in my focus and wanted that to be my first IT job.

The Job Search

A job hunt in 1996 was very different than it is today. If you were looking for a professional job in a large company, which a lot of programming jobs were back then, the first thing you did was to buy a Saturday newspaper and review the “Careers” section. This section featured those companies that had the most money to take out large ads to attract the best candidates. You would also go, in person, to the employment centers to see what jobs they had posted on their boards. This was a good way to get a contact name, address, and phone number. Word of mouth or Networking was also a popular route to find a job. If you knew someone that could refer you, that was one of the best ways to get your foot in the door. Even if you didn’t know someone, you could always do a cold call and ask to speak to someone in Human Resources. An uninvited solicitation wasn’t considered the best approach, but it was something to try when all else failed. Similar to today, you could register with an Agency to help you find a job in your field. However, unlike today, the agencies didn’t seek you out through Social Media, you had to register with them and follow up by phone. If you were lucky enough to get a contact name and address through one of the above methods, you still had to prepare a mailing package, which included a custom covering letter and your resume. You could then follow up by phone in a couple of weeks to see if it had been received. By today’s standards, a very time-consuming and uncertain process.

The First Job

I ended up sending out approximately 60 resumes and covering letters. Ironically, it was the first one that I sent out that gave me my first job offer. In school, I knew someone who had done their Coop work terms at Metlife. He suggested that I apply there and gave me a contact name and address. I ended up having an interview. I had my heart set on a programming job, but they were interested in my degree in business and offered me a “Business Consultant” job. I accepted immediately. The job was to act as a liaison between the business area and IT. Today, this would be a Business Analyst position. I was to query the data to find answers to business questions.  All in all, a very cool first IT job.

The offer and the job

Finally, a Programmer

After a year in the Business Consultant role, the company was looking for programmers. Someone in the area suggested me, and I transferred into a job as a Programmer. That was where my COBOL career officially started, but over the years I’ve often used the skills that I acquired in that first job in writing and interpreting SQL. It was fortunate for me that I was able to switch when I did since Metlife was bought out by another company a year later. A lot of people were laid off, but the programmers were kept on for data conversion to make sure that the data was compatible with the format of the new company. At the time, I was just happy to finally be a programmer.

 

Do you recall your first IT job? Was it a positive or negative experience?

 

12 Days of COBOL Programming

Photo Courtesy of Pexels

Since we’re entering a new year full of hope and new beginnings, particularly putting 2020 behind us, I wanted to do the “12 days of Christmas” from the perspective of a COBOL programmer, with a Production release coming up in early Feb 2021.

The tune is, of course, the “Twelve Days of Christmas”. Enjoy…

12 Days of COBOL Programming

On the first day of Christmas, my Manger sent to me
One Production release

 On the second day of Christmas, my Manger sent to me
Two user requirements, and
One Production release

 On the third day of Christmas, my Manager sent to me
Three new developers,
Two user requirements, and
One Production release

On the fourth day of Christmas, my Manger sent to me
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

On the fifth day of Christmas, my Manger sent to me
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the sixth day of Christmas, my Manager sent to me
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the seventh day of Christmas, my Manager sent to me
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

On the eighth day of Christmas, my Manager sent to me
Eight problem logs,
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the ninth day of Christmas, my Manager sent to me
Nine code fixes,
Eight problem logs,
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the tenth day of Christmas, my Manager sent to me
Ten programs migrated,
Nine code fixes,
Eight problem logs,
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the eleventh day of Christmas, my Manger sent to me
Eleven UA testers,
Ten programs migrated,
Nine code fixes,
Eight problem logs,
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

 On the twelfth day of Christmas, my Manger sent to me
Twelve days of code freeze,
Eleven UA testers,
Ten programs migrated,
Nine code fixes,
Eight problem logs,
Seven days of testing,
Six days of coding,
Five program specs,
Four business analysts,
Three new developers,
Two user requirements, and
One Production release

Photo Courtesy of Pexels

Happy New Year for 2021 to all you COBOL Programmer types that happen upon this article and can appreciate both my pain and my satisfaction.

Wish me luck in 2021!

A COBOL IDE: How to Find, Download and Use

An Integrated Development Environment (IDE) is a software tool that facilitates a programmer’s development work. In large organizations, a typical COBOL IDE is an ISPF editor on the Mainframe. To learn COBOL programming, an IDE is necessary, since it enables the developer to write, compile, run, and debug their code.

Finding a COBOL IDE

If you don’t have access to a Mainframe and you are interested in learning COBOL, one of the first things you will have to do is find a COBOL IDE to work with. As you practice creating new programs, you will need software that will compile and execute your code. Ideally, you want this to be as inexpensive as possible. As a result, you should look for an Open Source software which is free to download. A good website to look for this type of software is LaunchPad.net.

Downloading a COBOL IDE

A search in Launchpad for “Cobolide” results in OpenCobolIDE 4.7.6 as the first on a list of potential matches for that search. Once at the website for that software, you can download the setup file and the source package zip file into separate directories. The source package, when unzipped, contains many example COBOL programs.

The OpenCobolIDE

Using a COBOL IDE

To use the IDE that you have just downloaded, go to the directory where you saved the setup file and double click on the file to start the installation process. Follow the prompts provided and, in the end, the OpenCobolIDE application will launch. From the source files that you downloaded, select one of the .cbl files under the testfiles directory. For example, select the HelloWorld COBOL source file and practice compiling and running it. When it runs successfully, it displays “Hello World” on the screen.

 

If you are interested in seeing a demo containing detailed directions for downloading this IDE, watch my YouTube video,  https://www.youtube.com/watch?v=pJMmwxDE4Lg&t=26s

 

 

Coding Demystified–10 Steps in a COBOL Fix

When people think of a COBOL programmer, they no doubt envision someone, head down, working in a bubble, coding all day, creating new, exciting software products. In reality, aside from the rare new development work that may actually result in all-day coding sessions, a programmer’s job involves a procession of coding fixes on already implemented code. This article discusses 10 of the main steps you will find in one of these pieces of work, from the perspective of an experienced programmer of 25 years.

Photo Courtesy of Pexels

Analysis

1.  Understand the Problem

If you are a Programmer/Analyst, you will inevitably be assigned a coding issue to resolve. It will be some defect in the existing code, discovered by a tester or maybe a fellow programmer. This issue will be presented in writing or verbally. Your first job will be to interpret the problem and understand it yourself. This is what is referred to as analysis.

2.  Articulate the Problem

If the issue has been recorded in an incident report, there will already be a written description of the issue, made by the reporter. If it has been verbally reported, it will be up to you to explain the problem in such a way that others will understand it. For example, you, as a programmer, will be expected to describe system issues in a non-technical way for a User to understand.

3.  Discuss the Problem with the Client

Once you put the problem into your own words and have an understanding of the issue involved, you will need to make the client aware that there is a problem. This requires excellent communication skills in order to adjust to a business-oriented audience. This discussion should result in a written requirement.

Design

4.  Identification of the Fix

Since the problem has now been articulated and recorded, it needs to be fixed. A potential solution should take into account, not only the area where the problem has occurred but also other parts of the system that may be impacted. Designing a solution requires the programmer to basically have an understanding of the whole system.

5.  Get Approval to Implement a Fix for the Problem

When an appropriate fix has been identified and designed, communication skills again come into play. This time the programmer must communicate the proposed solution to the client in a way they understand. The goal here is to get approval to implement the intended fix.

6.  Document the Problem—Specs

At this point, the programmer is almost ready to make the change. Before diving in to code, however, it is important to create system specifications. These specs are an aid for the programmer making the change as well as documentation that can be used as a reference later on. They may be in the form of a flow chart, pseudo code, or even a word document description.

Implementation

7.  Implement the Solution

Finally, it is time to start coding. Depending on the problem to be solved, the coding change may range from one line to many lines. It may take several days or just a few minutes. As well as making the coding change, this part of the solution involves compiling your change. The compiler will check the syntax of the new code and report any errors.

Photo Courtesy of Pexels

Testing

 8.  Unit Test the Fix

When the compiler errors have all been resolved, it is then time to unit test your implemented code. This is generally programmer testing to determine that the code is functioning as expected. Depending if it is an online or batch solution, you may test your code by accessing it through a CICS screen or by running a batch JCL job.

9.  User Acceptance Test

If the code has successfully run in Unit test to the satisfaction of the programmer, it will be made available to the client, or User, to perform User Acceptance testing. Before final implementation, the User will carry out enough tests to ensure that the solution fulfills the requirements decided on earlier.

Photo Courtesy of Pexels

Maintenance

10.  Maintain the Fix

The implemented code is still subject to future modifications. The requirements may change, resulting in necessary maintenance of the revised code. This will be ongoing for as long as the code is in use.

 

As you can see, writing code is just one skillset that a COBOL programmer is expected to master during their career. They must also excel as analysts, communicators, writers, and testers. It can be very satisfying to have a job that provides such a variety of challenges.

 

 

COBOL Plus JCL Equals Magic

The Initiation

I’ve had a love-hate relationship with Job Control Language (JCL) ever since my first encounter with it back in the 1990s. If you wanted to program in COBOL, which I did, there was no way to avoid JCL. All beginner programmers had to complete a week-long JCL tutorial with information similar to that found in this current IBM Basic JCL Concepts tutorial. Of course, almost 30 years ago, my JCL tutorial was presented on a green screen in a non-graphic, dry way. I probably learned more in my first hour running my own job than I did that whole week reading screen after screen of info that seemingly had no context.

The Effort

At the beginning of your career, which is what it will become if you have the tenacity to continue as a COBOL programmer, you can’t begin to comprehend how much time you will spend with JCL over the years. Early on, you may spend hours trying to figure out why your job isn’t running at all or why it abends in a step when it logically shouldn’t. You pour over the job output looking for clues, only to find that you’ve somehow added an extra space in your Jobcard or your output file doesn’t exist when your job expects it to.

The Understanding

As time goes on, after you have run a few jobs and debugged a few outputs, it starts to become a bit clearer that there is a method to this madness. Maybe by this time, you have actually written a Batch COBOL program yourself that reads input, perhaps from a file, performs some processing, and writes output to another file. How do you get that program to run and produce that output? You wrap some JCL around it to tell it what file to use as input and where to save the output. Your job may even be scheduled to run at a certain time through a job scheduler like Control-M.

The Reward

In the end, if you stick with it, it can be a very satisfying experience to understand JCL, create a job, and run it successfully. There is something rewarding, almost magical, about producing JCL that runs your own COBOL program and produces an output that you can see. It took time, but it is a skill that I am happy I have learned and that I use daily.

What is your experience with JCL? Did you put in your own effort to come to understand it and, in the end, find it rewarding?

 

A COBOL Programmer’s Unique Story

All of my friends who have younger siblings who are going to college or high school – my number one piece of advice is: You should learn how to program.” This is a famous quote by Mark Zuckerberg, CEO of Facebook.

This image has an empty alt attribute; its file name is programmer-pixabay.jpg
Photo Courtesy of Pixabay
The Discovery

I wish I would have had that advice presented to me when I finished high school. In the end, I did learn how to program, but my journey was very roundabout. I spent many years in University, getting a 3-year Psychology Degree and a 4-year Commerce Degree. With all that education behind me, I was still having trouble finding direction. As a result, I read an amazing, self-help book for job seekers called What Color is your Parachute? Surprisingly, the exercises in the book pointed me toward a career in programming, mostly based on my interest in the one programming course I had taken at University.

This image has an empty alt attribute; its file name is what-color-is-your-parachute.jpg
The Becoming

Given a new path toward programming, I decided to go the quickest route and get a programming Diploma. I used my University courses to get exemptions in the non-programming courses and finished a two-year Computer Programmer Diploma in a year. I loved it. Luckily, I was able to get a job as an entry-level COBOL programmer shortly after I graduated, which has led to a rewarding 25-year career as a Programmer-Analyst and IT Specialist.

This image has an empty alt attribute; its file name is cobol-dreamstime.jpg
Photo Courtesy of Dreamstime
The Next Step

The natural continuation of this lifelong journey is to write about it. To answer some questions that can only come from experience. What is it like to be a woman in technology? What has it been like to work with newer technologies at the same time as older ones? What is it like to be in the computer field with multiple generations of people?  There is so much to write about–so many topics to explore, drawing on my many years of experience. All the facets of the past have come together to create my story, which is, I hope, unique enough to share.

What’s your story? Where are you on your own journey? Are you still becoming, or are you considering your next step?

Who is the Online COBOL Audience?

When you want to get to know someone in person, how do you generally accomplish that? Initially, you probably try to learn their characteristics, then you determine how to talk to them. The process is similar for online connections. First, you want to get to know their demographics and their psychological traits (psychographics), then you find ways to communicate with them.

Photo courtesy of Pexels

Assuming that the majority of the online COBOL-related audience are COBOL programmers, their average age would be 55. Also, in an Evans Data Corporation survey, 27.5% of software developers in the world are women. Thus, the demographic of an online COBOL audience is probably men around age 55. Based on this demographic, some psychographic information about this group is that they are conservative, upper-middle-class, and are followers. In addition, according to the survey mentioned, one-fifth of men software developers have a personal interest in the technologies they are using. Consequently, one in five of COBOL listeners have a personal interest in COBOL technologies.

Now that we have identified some characteristics of COBOL online listeners, one of the ways to find out how to communicate with this audience on social media is to search on Twitter. In this case, a Twitter search on #cobol came back with several related people to follow. Similarly, a search on COBOL in Google Trends resulted in 23 related queries and 19 related topics to investigate. In terms of Facebook communities, related groups and pages included a COBOL Programmers group with 16,000 members and a COBOL page with 3200 members.

A screenshot of a COBOL search in Facebook

It is important to remember not to initiate a conversation too quickly in an unfamiliar COBOL online community. Some are primarily for job postings and others are used to sell online courses. Become a listener.  Get to know the demographics and psychographics of the group you are interested in before you start communicating.

What is your online style? Are you mainly a listener? Which online communities do you enjoy following?

 

 

A COBOL Programmer’s Pandemic Vacation To-Do List

Before I tell you about my most recent vacation, let me tell you a bit about myself. According to the Myers-Briggs Type Indicator, I am an Introverted, Intuitive, Thinking, Judging (INTJ) person. Being logical, methodical, and conceptual makes me ideally suited for my profession as a computer programmer,  which is a suggested career for the INTJ personality type.

Since the pandemic lockdown started six months ago, I have been spending most days continuously at home on my computer doing coding, analysis, system testing, mentoring, or attending meetings in this new virtual work world. No more breaks for water cooler gossip or work kitchen chats. No long commute to psych myself up at the beginning of the day or wind down at the end.

By the summer, I badly needed a vacation break. As usual, in keeping with my scheduled, systematic nature and the list-making preferences of my personality type, I wrote down all of the things I wanted to do on my time off.

This summer, at the top of my list, was a family get-away vacation to a cottage on Otter Lake in Quebec. With limited travel allowed between provinces this year, we booked it ahead, sight unseen, with very few pictures. It was a risk, but in the end, it was a beautiful peaceful, waterfront location about a half-mile from the main road. We had rented it for two weeks at the end of July. It was gorgeous weather and very relaxing.

Otter Lake view from our cottage

Another thing on my list of things to do on my vacation was to give my daughter some practice driving. She just passed the written test at the beginning of the year and driving school classes and in-car lessons immediately shut down in mid-March.

It was very awkward being in the car with her over the summer. As a teenager, she was sure everything I told her was wrong. Ultimately, we made it through driving sessions and online practice tests together. It was a valuable bonding experience.

My daughter at the wheel

My vacation to-do list would not have been complete without having a computer-related item on it somewhere. With no end in sight for remote programming work, I took some time to set up my own separate home office space with a desk, monitor, new chair, and treadmill.

I faced my desk to the window, put up a bird feeder, and found I had some work-at-home buddies. My cat, Oreo, loves to lie on my desk and look out the window, watching the birds eat. Of course, once I had my new office in place, I also had to take a sneak peek at the work emails I was getting during vacation.

   

Oreo on my desk and the Finches on the bird feeder

In the end, I did not get everything on my vacation list done, but overall, it was a relaxing, successful, semi-productive time off.

 

Have you looked at where you fall on the Myers-Briggs scale?

It may surprise you to see that your career choices, as well as your list-making tendencies, correspond to your personality type.

COBOL and Digital Transformation

The concept of “Digital Transformation” seems to be everywhere on the Internet lately and is the new catchphrase. The term has also frequently been paired with COBOL. As a result, I wanted to take a deeper look into what that might mean to business and the people involved.

What is Digital Transformation?

According to Red Hat, Digital Transformation “is the process of fundamentally changing something using digital tools and describes adopting technology and—potentially—cultural changes to improve or replace whatever existed before”.

Similarly, The article, 4 Types of Digital Transformation, organizes the idea nicely into Business Process, Business Model, Domain, and Cultural/Organizational categories. This is a detailed discussion of converting processes by introducing newer technologies and using these new technologies to update traditional business models and create new markets.

What I am understanding from these descriptions is that, essentially, what Digital Transformation means is modernizing your existing processes, whatever those may be.

The Current Way of Thinking:

How can COBOL, as a 60-year-old language, fit in with the idea of introducing new technologies? Bartolik (2020), in the article COBOL Forms the Basis for Digital Transformation, discusses how COBOL is the foundation and the core that operates 70% of the world’s transaction processing systems. The article further cites statistics from a Microfocus 2020 Press Release where COBOL-connected respondents from 40 different countries were surveyed. Of those who responded, 63% indicated that they would improve their existing COBOL systems in 2020, and 70% would prefer to modernize them rather than replace them. In terms of the modernization strategy, 92% felt that their COBOL applications were strategic.

These results indicate that organizations having existing COBOL applications would be open to digitally transforming their existing COBOL systems.

COBOL + New Technologies = Digital Transformation:

The article, Why COBOL Modernization Should be a Priority and How to Make it Happen, provides a summarized approach to integrating COBOL with the Cloud and Mobile Apps to access Host-based processing and data. In other words, keep the back-end COBOL processing and data access layers and connect them up with newer technologies on the front end. They see updating Mainframe legacy systems, such as COBOL, as vital in this era of Digital Transformation.

From an application programmer perspective, it sounds like a good organizational strategy to leverage the backend COBOL applications that have been successfully used for years while giving the users the benefit of an updated frontend experience.

Some Challenges:

A big question in all of this though is the security of the data. The financial institutions, such as banks and insurance companies, and the government departments that run COBOL systems will have to ensure the safety of the data being displayed and processed with the new technologies. It will mean cultural change as well as technological change. Digital Transformation is not a strategy to be taken on lightly.

What do you think this will mean to the jobs of legacy programmers? What will be the potential impact of cultural change on traditional organizational infrastructures?

 

 

COBOL from a 1969 Perspective

While researching my article, Jean E Sammet-One Woman Programmer’s Lifelong Success Story, I started thinking about buying a copy of Jean Sammet’s book, Programming Languages: History and Fundamentals. The more I thought about it, the more I wanted to own that piece of history. Somehow it is very attractive to me to be able to look back and see the history of the COBOL language as told by someone who was involved from the beginning. In spite of having worked with COBOL for almost 25 years, I haven’t thought much until recently about its origins and where it fits in. Even though Jean’s book is over 50 years old, I was able to easily find a used copy online.

A Piece of Programming History

Considering it was written by one person, I wasn’t prepared for the amount of detail the book contains in its 737 pages. There is a general discussion of 120 languages, along with sample programs that include the basic components of 30 languages. It was described on the book cover as a single source where “the reader can find basic information about all of the major and most of the minor higher level languages developed in the U.S.” All in all, it is an incredible snapshot of the world of programming in the year 1969. I’ve included a picture below of the sample COBOL program found in the book.

COmmon Business Oriented Language

COBOL is found in a section titled “Languages for Business Data Processing Problems”. It is, of course, the major Business language described. I love the fact that Jean included a footnote in her “History of COBOL” indicating that she had inside information on how COBOL came into being because she was there from the beginning in 1959. This is the note in her own words:

“Since I was present not only at this initial meeting (representing Sylvania Electric Products), but also chairman of two different task groups of the Short Range Committee, the historical description of the early COBOL work is based on firsthand knowledge and participation, and is supported by appropriate documents (some of which I wrote at the time).”

The detailed history described in this book is only 10 years old at the time of writing, and it is interesting to see the stages in the early development of a major computer language during the late 1950s and early 1960s.

The Committees

According to Jean’s description, there were initially supposed to be 3 committees involved: Short Range, Intermediate-Range, and Long Range. The Short-Range Committee included 6 competing computer manufacturers of the time: Burroughs, IBM, Minneapolis-Honeywell, RCA, Remington Rand Division, and Sylvania Electric Products. They were only supposed to identify what was wrong with existing business computers, but they ended up trying to develop a new language in a 3-month timeframe. They succeeded and created the first usable version of COBOL by the end of 1959.

That seems like a major accomplishment in such a short time, but Jean notes in her discussion that they did not have enough time to include everything that would be needed to do business data processing programming. As a result, during the 1960s, a Maintenance Committee, made up of users and manufacturers was organized and reorganized for the purpose of changing and improving the original version. The members of this committee came from several major organizations of the time: Bendix Computer Division, Control Data, DuPont, General Electric, National Cash Register, Philco, and U.S. Steel.

Imagine all the major companies getting together today to develop a programming language in just 3 months. It would probably never happen. In recent times, individuals in one company, as opposed to groups of companies, develop computer languages. A couple of examples are James Gosling, who worked at Sun Microsystems and founded Java and Guido Van Rossum, who worked at Google and invented Python. An interesting observation that Jean mentioned in her book was that she had never known a group of competitors to work together to develop a language that they could all use for the overall benefit of the customers.

The Future

The fact that COBOL is still widely used, over 60 years later, by large organizations such as insurance companies, banks and government is a tribute to the strong beginning that started with a committee of rivals working together for a common good. Maybe this is the type of collaboration that is needed to develop a language to replace COBOL, and that is why a suitable alternative was never developed.

We can only guess what may become the common business language 50 or 60 years from now. Will it be as durable and longlasting as COBOL? Only time will tell.

References

Sammet, Jean E., (1969). Programming Languages: History and Fundamentals (shown below), Prentice-Hall, Englewood Cliffs, NJ.

Modernization, Redesign, Renewal–A Revamp of a Legacy COBOL System

Given an outdated COBOL legacy system that is possibly 30 or 40 years old, there are multiple ways to do a rewrite that will breathe some new life into it.

Modernization:

First, you could do a COBOL modernization. Modernizing an application involves rewriting an existing COBOL application in a newer language, such as Java. It means interpreting the existing logic and converting it into the new language without reusing any of the existing COBOL code. The existing data storage may be reused in this method if you can connect to it through the new technology. For example, a Java to DB2 database implementation, replacing a COBOL to DB2 database implementation.

Redesign:

Another overhaul method is a redesign, which would entail rebuilding the current COBOL-coded logic into a newer design. This would, in effect, mean replacing the inevitable mishmash of spaghetti code that accumulates after 30 or 40 years of continuous coding changes. For example, the logic could be redesigned into a three-tiered model that separates out the presentation, business, and data layers. This type of modularization makes the code more efficient and easier to debug.

Renewal:

A third example of a revision is a renewal. This type of rewrite requires an analysis of the existing COBOL code, looking for possible improvements, and focusing efforts on those areas. Other items in the code that are functional are basically left ‘as is’ in this method. For example, this could mean pulling repetitive logic out of the existing system code and replacing it with a Business Rules lookup procedure. This would make the logic more efficient and easier to maintain.

 

As a COBOL coder for the last 25 years, these are the main types of rewrites that I have been part of or have seen. I am sure this is not an exhaustive list and there are probably as many permutations and combinations of possible restorative methods as there are system designers.

What are some of the COBOL Legacy overhauls you have seen? Why were they initiated? Did they go to completion? Were they successful?

 

A COBOL Programmer’s Second Month of Social Isolation

The Home Office

For the last two months, I have dragged myself out of bed every morning and downstairs to my cold office, still in my pajamas, hair unbrushed, where I sit all day in my home office. There is only a laptop, a corner of the desk, that I share with my husband and a cheap desk chair that was originally purchased for occasional use. Daily, I miss my large monitor and my ergonomic chair with my sizable cubicle space that was all mine.

I fire up my VPN, connect to the work network, and my Mainframe connection. I am all set to go when the VPN unexpectedly disconnects—as it does at random times during the day. I reconnect and let my team know I am available through our chat system. We all say (write) “good morning”, but we have not actually seen each other for weeks. I am lucky I worked with my team members personally before the virus hit and can picture a face to go with a name. The only people I see in person on a daily basis now are my two daughters and my husband who are socially isolating with me. These days, I get all my programming assignments through chat or email. It is definitely more of a challenge to work without being able to talk personally with other people on the team.

The Pre-Pandemic Office

In the before time, I would get up early to shower and get dressed in my business casual work clothes. Then I would drive out for my hour-long commute, stopping for a Tim Horton’s coffee and a muffin along the way. In my temperature-controlled office building, I rode elevators with other people in close proximity, brushed up against people in the hallways, attended daily meetings in rooms packed with people, ate in a full cafeteria, and didn’t give any of these activities a second thought. I also enjoyed saying “hello” to people in person and having brief “water cooler” conversations during the day. I especially took for granted being able to go to see coworkers at their desk when I had a specific question or just wanted to bounce an idea off them.

I did not realize at the time how fragile my daily routine really was. One day, I was at work, as usual, the next day, me and all my coworkers, country-wide, were sent home to work in isolation. My building was left deserted, my desk calendar, frozen in time, and my plants unwatered.

A couple of weeks after we started working at home, we got a broadcast from the property maintenance staff saying that a lightbulb in the building parking lot had been changed. We all had a (virtual) laugh at the irony in that, since the parking lot was now almost empty.

The Post-Pandemic workplace

We know we are not going back to the way things were before, but we have no idea what the “after pandemic” world will look like for a programmer. Maybe our current reality is actually the new reality. Perhaps, for a programmer, the new work environment will be remote work.  No more commutes, random socializing during the day, and unnecessary meetings. Ultimately, when all of the uncomfortable bugs are ironed out in the home offices and the new way of work becomes a habit, the result will hopefully be acceptance and increased productivity.

What is your new reality? Are you developing new habits?