[HN Gopher] Interviewing my mother, a mainframe COBOL programmer... ___________________________________________________________________ Interviewing my mother, a mainframe COBOL programmer (2016) Author : MoBarouma Score : 214 points Date : 2023-12-14 18:34 UTC (4 hours ago) (HTM) web link (ezali.substack.com) (TXT) w3m dump (ezali.substack.com) | scrlk wrote: | The original HN submission from 2016: | https://news.ycombinator.com/item?id=12096250 | | > "The banking programming world is a completely different world | than what most of us are used to" | | If you're after another read on this topic, "An oral history of | Bank Python" is good: https://calpaterson.com/bank-python.html | (also previously on HN: | https://news.ycombinator.com/item?id=29104047) | SilasX wrote: | Oh wow, I can't believe that was seven years ago! I never got | around to interviewing my mom about programming mainframes with | Michigan Algorithm Decoder: | | https://news.ycombinator.com/item?id=12097032 | otteromkram wrote: | This is great! I wonder how the update(s) went since the article | was written in 2016 and they mentioned 4 years per country, or 16 | years total. COVID-19 probably threw a wrench in that plan, but | how big of an impact is another interesting question. | vanderZwan wrote: | > _This position is the most important one in the bank, at least | from a technical standpoint. If, let's say, my mother and | everyone on her team would quit their job, the bank would go | under within a matter of weeks if they're lucky._ | | And given how big the market share of Nordea is in Sweden (and | other Nordic countries, for that matter) that would probably | bring down the Swedish, and possibly Nordic economy. Which would | then impact a lot of the EU as well, I guess. | | Ever since reading this article I've wondered if these COBOL | programmers that keep banks like this running are an enormously | underestimated "bus factor" for many of the world's economies, | and what kind of back-up plans they have for such a scenario. | | [0] https://en.wikipedia.org/wiki/Nordea | TomK32 wrote: | As a programmer who has been hit by a bus (after riding on that | same bus for five hours to it's endstop in western Greece) I'd | like to point out that getting hit and killed by a car is a | much higher risk. Add the rise of SUV sales which are more | dangerous to pedestrians and cyclists, and you might be as | surprised as I am that banks don't go down due to dead | programmers but due to bad accounting and fraud... | rsynnott wrote: | > and what kind of back-up plans they have for such a scenario. | | I mean, notoriously, stop working, for weeks: | https://en.wikipedia.org/wiki/TSB_Bank_(United_Kingdom)#Migr... | | (I've got to assume that loss of institutional knowledge was a | big factor in that fiasco.) | brightball wrote: | . | rajamaka wrote: | Very creepy. I was talking about programming and alas I com to | HN and topics related to programming are ob the front page! | brightball wrote: | And yet, you don't see much about mainframes and COBOL on | here ever...nor do I often have lunch conversations about it. | | The timing was just interesting. | pavel_lishin wrote: | I wish I had talked to my grandmother more before she developed | dementia. I knew she was a mathematician and programmer, but | briefly speaking to her a few years back, she mentioned that one | of her jobs was calculating orbits for satellites in the Soviet | Union. | | At least, I hope they were satellites! | ca_tech wrote: | I would highly encourage anyone who has even thought about | doing this; do it. If you are thinking about how to get | started, I recommend the StoryCorp app. It is easy to use they | have a bunch of prebuilt questions or you can create your own. | You record directly to your phone but if you are inclined, you | can upload your interview to the Library of Congress. | https://storycorps.org/participate/storycorps-app/ | artemavv wrote: | There is also a project dedicated to saving the wisdom of | earlier generations: https://savewisdom.org/the-1000-word- | save-wisdom-questions/ | CapricornNoble wrote: | I'm in a similar boat. My mother worked with software | simulations for the AEGIS system. Not very common work for | black women in the 1980s. She earned her mathematics degree in | 3 years, graduating at 20, and used to program computers with | punch cards in the 70s. | | Now she can't tie her shoes consistently. | | To everyone reading, capture the stories of your loved ones | life accomplishments before it's too late! | Tor3 wrote: | This. Not related to the main story here - I'm the first | programmer in my family - but my great-grandfather was born | in 1865 and lived a long life, he was blind for his last 30 | or 40 years but had a phenomenal memory. A neighbor had the | insight to use one of the very first tape recorders, just | after WW2, together with my father who was a boy at that | time, to record my great-grandfather's stories about what he | did in life. When my father retired he cobbled together a | working tape recorder from two or three old ones, and copied | the stories over to cassette, and later to CD. I listened to | one of those recordings the other day - my great-grandfather | told about how when he as a young boy, approximately around | 1872-1873, he met a very old man who told about how he had | learned the origin of the name of where they (he and my | great-grandfather) lived, from another man when _he_ was a | boy. That origin turned out to be very different from what | everyone these days are guessing, but immensely more | plausible. Brought to me from the 18th century, via my great- | grandfather. | rsynnott wrote: | > At least, I hope they were satellites! | | Could be both: | https://en.wikipedia.org/wiki/Fractional_Orbital_Bombardment... | guyzero wrote: | Programming a mainframe while working from a hotdesk. Who would | have imagined. | hyggetrold wrote: | I'm very curious about IMS - a mentor described it as a graph | database of sorts back in its day. I was told it was a great | system (at least for its time). Does anyone have a perspective? | epc wrote: | Hierarchical, not relational, not what I'd call a graph | database. Pre-SQL. | | https://en.wikipedia.org/wiki/IBM_Information_Management_Sys... | hyggetrold wrote: | Yeah I think what they actually called it was "network | database" which I thought maybe was like a graph. | shortsightedsid wrote: | > What's your working environment like? - We've recently moved to | a more "hip" location. We used to have personal desks, but now we | have this "pick whatever spot is avaiable" open area. I dislike | it a lot. | | Somehow this resonates a lot with me even if though I've never | worked on Mainframes or anything like that. | artemavv wrote: | I, too, strongly prefer having a personal desk. It is | completely natural for a human to set up his environment | according to their tastes and preferences, and I'm baffled that | some office designers do not account for that. | ptmcc wrote: | > I can only imagine the fat paycheck a 20-year old mainframe | programmer would get though, because your age in this case would | be invaluable. | | It's funny, people frequently assume this would be true but | reality doesn't really bear this out. It's typically pretty | average to even below average which contributes to the talent | pipeline problem. | | The other side of it is that its not the technical stuff like | "knows COBOL" that is so immensely valuble. Any average dev can | "learn COBOL" but that's not actually the valuable thing. The | anecdotes of COBOL programmers coming out of retirement for | 500k/yr contracts has little to do with COBOL, but their | accumulated institutional knowledge of the giant ball of business | logic encoded in that COBOL. | | If these banks and other institutions actually did write fat | paychecks to young mainframe programmers the demographic problem | they're facing might not be so bad. | Deprecate9151 wrote: | I used to work at a large insurance company with a COBOL core | system. I completely agree with this. They paid for people who | knew all the undocumented idiosyncrasies and foot-guns in the | code. Not just "Knowing COBOL". A decent programmer could read | a COBOL program and follow it. | | They wouldn't know that the reason the key export fell over | when extracting data for your 10K filing because someone had | decided/assumed/whatever that a certain record count would | never go over 3000, so they hard coded the program to just | error out if it went above that value. | ecshafer wrote: | When I was working in a finance company that used cobol, sure | I could read cobol. I could probably write some cobol. But | the extra crap around cobol, how mainframes work, DB2, JCL, | etc. is where this gets complicated. | importantbrian wrote: | I went to grad school with a guy who was in that situation. He | worked at a bank and got laid off during the financial crisis. | The plan was for the bank to port the old system over to Java | or something like that, and they were "close" to the end of the | project and they thought at that point the rewrite team was | comfortable enough with COBOL that they could do the rest of | the rewrite without him. Turns out that yes they understood | COBOL just fine, but they desperately needed his institutional | knowledge. He ended up agreeing to come back on a part-time | basis at some obscene consulting rate for however long the | transition took and in the meantime, he did grad school part- | time to skill up. | DaveSchmindel wrote: | I can vouch that this is true in some cases. | | I worked for a multinational bank headquartered in the U.S., | whose corporate team came up with a sexy program to snatch up | recent Computer Science graduates. The program offered them a | "fair" market rate for an entry-level jobs in industry, and let | the graduates try two to three different teams and/or | departments in their first year. At the end, if the company | still liked them, the candidate got to pick their permanent | team for a full-time position. This position, however, did not | see a bump in pay, and by that time the program effectively | filtered out candidates that weren't performing at an | accelerated level. | | The results were great for the business: young programmers that | were often more proficient in COBOL than their new peers were | costing them $60k-$70k a year. The senior, or "tenured," peers | were in the $200k-$400k range in some cases. | tristor wrote: | > If these banks and other institutions actually did write fat | paychecks to young mainframe programmers the demographic | problem they're facing might not be so bad. | | When I first started work I was involved in banking/insurance | mainframe stuff, and it was honestly a pretty terrible working | environment for reasons that spanned from the mundane (like | dress codes) to the esoteric (like the horrible crufty legacy | codebase). I would have put up with it if it paid well, but it | didn't. In fact, it paid significantly worse than the job I'd | had before which was installing physical cable plant (fiber | optics and copper ethernet), the reason I took it was at least | the office had air conditioning, but it certainly wasn't | something I wanted to turn into a career. | | As a mid-level windows sysadmin doing customer-facing phone | support at a cloud provider, I made nearly 30% more than I had | as a junior mainframe guy at a bank/insurance company. The | difference in the skillsets and their commonality was massive, | yet the pay was significantly worse for the mainframe work | despite it being a rare skillset in a high value industry. I | remembered when I was in this job that guys who worked on | trading desk backend code were far better compensated while | working in easier development environments on less esoteric | codebases, the mainframe folks were the lowest paid of the | developers at that company, at every level of seniority. The | only person we worked with who was well compensated was an | independent contractor who'd worked there previously for 30 | years before retiring. | beretguy wrote: | Last time I checked DMV of SC pays $50K salary with no remote | work option for COBOL position. And requires 2 years of | experience. Granted, it's a state job, I get it, but still. | uudecoded wrote: | It's probably because they technically have to make that job | posting and let it sit before handing it off to a contract | firm for $300k. | jongjong wrote: | In tech, it's only true if you know some dirty secrets. The | more dirt you are exposed to, the more you keep your mouth | shut, the more it pays. The thing is that teams are so large | and compartmentalized that nobody knows the true horror of | what's going on. | thaumaturgy wrote: | Yep. I have COBOL experience (on a mainframe even!), and I'd | even be willing to do it again -- and I'm young by the | standards of COBOL programmers, so somebody could even get 20 | years out of me still. | | But the wages being offered for those roles are abysmal | relative to what's available for other skills, and modern life | is applying a great deal of pressure to chase larger paychecks, | sadly. | zengid wrote: | <Anecdote> My first programming job was at a transportation | enterprise with many programmers that had been working there | 15-20+ years, many of whom mainly maintained the COBOL that ran | the business. Many of those senior programmers were women; it | felt like over 50% in the senior cohort. What really made me sad | was that the younger programmers there were predominantly male | (although still quite a few female!). That company mainly hired | out of the local engineering colleges, so it was an interesting | case study on how the number of women entering software | engineering programs went down over the years. </Anecdote> | duderific wrote: | I recall hearing (can't remember where) that in the olden days, | computer programming was considered akin to typing or | secretarial work, so at first it attracted mostly women. | danielodievich wrote: | My grandmother programmed with punch cards, have no idea on what | hardware and it's too late to ask. My father did a bunch of | fortran and Cobol on USSR mainframes and then did a bunch of y2k | here in USA. One of the neatest things I have from this is a | printout from one of his fortran programs from I think Minsk-32 | mainframe which he ripped into 3 pieces to wrap a developed large | format 64mm film of some mountains that he shot a long time ago. | The program seems to be called MATR1 and is doing matrix | manipulations and referring to topography of the land in | comments. I have it framed on my wall near my workstation. I | coded in variety of languages most of my life And now my teenager | looks to be interested in coding and is doing Java and Python in | high school. Here is to 4th generation programmer! | 999900000999 wrote: | Sounds like a neat movie idea. | | The same code base passed down though generations. | | Legacy code. | jacobyoder wrote: | The code will only run on some specific soviet-era hardware, | and the last hardware was destroyed 20 years ago. There's | some new regime that is rumored to have rebuilt the original | hardware, and is now on the hunt for the missing source code | that is framed above the great grandchild of the original | developer, who was executed for treason. The new bad guys are | gunning for the source code, and it has to be protected at | all costs, to prevent a takeover of the world. | | I'm already seeing the inheritance jokes write themselves. | | Someone have chatgpt write the screenplay now. | micah94 wrote: | I think you just wrote the prompt right there. Step 2. ???? | Step 3. PROFIT! | ikesau wrote: | Class Warfare, out 1717243201. | hnthrowaway0315 wrote: | 1TB transaction per year seems pretty small data. I guess IBM | stuffs are there for the stability then? | awestroke wrote: | The IBM stuff is pure legacy. Of course this would all perform | much better with modern tools, like Postgres. | dan-robertson wrote: | Using DB/2 surely makes a lot of sense for integration with the | rest of their IBM tech but also something the new system could | presumably talk to too. I would guess that it performs ok at | the kind of 'single big OLTP database server' tasks it was | meant for. Notably IBM allows you to publish benchmarks for | their databases (so long as you provide detailed methodology | and take steps to tune it correctly) whereas Oracle and | SQLServer do not allow publishing benchmarks without | permission. Though one could argue this is just IBM feeling | like benchmark performance wouldn't matter much to their | customers. | dfee wrote: | (meta) As a platform, substack content must follow the power law, | right? That is, a few authors are most productive and there's a | long tail of single (or zero) article substacks. | | This article was migrated from medium, but now the author gets to | collect email addresses. But why subscribe? There are two | articles. Is substack an RSS replacement (potentially with a | paywall)? Maybe I should just consider substack to be a low | barrier to entry blogging platform that can be set to your | personal domain for $50? | | Definitely not trying to beat up on the offer, just curious about | the real value prop of substack for "most" producers and if | that's aligned with my goals as a reader who sees a email | collection modal on every visit. | spelunker wrote: | My mother-in-law worked her entire career in an IT department of | an insurance company. She never really did much programming, but | became a source of domain knowledge over time. | | She has all kinds of amusing stories of ye olden days. Before a | proper computer system, everything was stored in physical | documents of course, and her first project out of college was | traveling to satellite offices to re-organize the file systems | there to match the new strategy that HQ had come up with. The | business of satellite office would grind to a halt while a team | of people literally took every single document out, re-labeled | it, and put it back. The whole project took over a year. | | That gave some perspective about my job, lol. | dgadj38998 wrote: | > ISPF is directly connected to the mainframe, and there's no | such thing as a local development environment here. | | That's pretty crazy | | Sounds like having the whole team SSH into one server and doing | all the work through the terminal | | I'm imagining editing my co-workers files and just removing a | random semicolon to mess with them | flyinghamster wrote: | That was the 1960s-80s way of working with computers. Multiple | terminals connected to a single timesharing mainframe (or mini, | for that matter). You _might_ have a network like DECNET, but | mostly it would be hardwired terminals, or if you were less | lucky, a dialup modem and an acoustic coupler at a blazing 300 | bps. You were sharing one machine with potentially dozens of | other developers. | | Legacies of this abound in Linux (even the ability to SSH in is | a descendant of this world). Commands like "who" are there to | show who's logged in, and there's even an entire process | accounting system that can be switched on to bill your users | for CPU time. | dgadj38998 wrote: | Was there a way to message other people who are logged in? | Like a slack equivalent? | flyinghamster wrote: | On Unix, there was the "talk" command for split-screen | chat, and also "write" to just send a message to someone | else's terminal subject to permission with the "mesg" | command. Not all systems had such provisions (or, in come | cases, they had to be written by users). | ianmcgowan wrote: | talk, or later ntalk in Unix. Or wall to send to everyone. | I used a system in the 80's (Pick DB) that had a send- | message command. Also tandem which allowed you to take over | someone's terminal like screen-sharing now. If you were the | super-user you could do it without asking for permission, | and start typing messages to the unlucky user.. | bennysaurus wrote: | Things is source code management these days even in mainframe | but many shops still have you log into the same "box" to do | your development. It can get pretty fun when trying to | coordinate testing and patches. | jll29 wrote: | Thanks for sharing the story of your developer mom - a very cool | mother to have! | | COBOL is not a "cool" language, but mainframes have been around | long enough to be "retro cool" now, and most run Linux at least | as an optional OS under some virtualization (IBM Z). | | As a doctoral candidate in the noughties, I purchased a book | about FORTRAN due to its "retro-coolness" and read it, and | eventually took on a short university gig to earn the money that | the book cost back, tutoring architects/engineers in FORTRAN 95 | for a bit, which was fun; to date, I could not bring myself to do | the same with COBOL, though, or not yet. | | Because it is so verbose, if I had to use it I would probably | write in another language and transpile to it. | flyinghamster wrote: | I've probably touched on this before, but back in the 1980s, | absolutely none of the computer courses I took ever even so | much as touched an IBM mainframe. I almost got the impression | that there was an effort _not_ to teach them. | | On the other hand, you could expect to learn a new operating | system every year. Oh, we don't use DEC gear at this school, | check out our spiffy Prime running PRIMOS. Lather, rinse, | repeat. | syngrog66 wrote: | the 1st professional programmer I knew was a woman who did COBOL | for a bank | | its struck me as interesting ever since. because over the course | of my life and career since its seemed that 99%+ of the | programmers I knew of were male. | | I don't think there is any one right/ideal breakdown by gender, | so I just like to have best sense for facts on the ground | dan-robertson wrote: | I think one thing is that the programmer job somewhat evolved | from data entry and clerical roles that employed plenty of | women already. So in some sense it didn't start as a 'man's | job'. For slightly later generations of programmers, one can | observe that computer science degrees peaked near 40% female in | the mid '80s in the US[1]. It's closer to 20% now and there are | much more graduates today so you should probably expect a | proportion somewhere around 20% of working CS grads. That | number doesn't seem crazily unrealistic to me for working | programmers, though obviously it varies between companies. <1% | does seem unrealistic to me. I'm slightly surprised that that's | been your experience (I assume you aren't exaggerating because | you want a sense for facts on the ground). | | [1] eg https://www.gcu.edu/blog/gcu-experience/analysis-women- | compu... | derefr wrote: | > Banking systems are also extremely advanced. A personal bank | account differs a lot from a business bank account, and there are | at least 50 different types of bank accounts for each of them. | | I wouldn't necessarily call that "advanced"... maybe more, | lacking in requirements-analysis-time insight in ways to factor | the business-domain into HAS-A component relationships, such that | individual components and their ADTs can be shared across parent | types [which are really just template/factory objects for a | smaller set of actual types], and initialized with simple | parameters that get used as formula variables with no piecewise | logic. | | To be clear, I write this as someone who works for a company that | maintains a unified representation of data across the blockchain | ecosystem -- where each blockchain has its own peculiarities | about what an "account" is, what a "transaction" can do, etc. Our | data model only has _one_ toplevel account type, _one_ toplevel | ledger-transaction type, etc. To handle the peculiarities, our | data model instead has a large heirarchy of smaller data-objects | hanging off of those toplevel ones; where any given data-object | is sort of an "optional extension" that may or may not be there | depending on how the toplevel object was created. | | This approach allows us to just have one unified _code-path_ that | treats every account like every other account, every tx like | every other tx, etc. We don 't have duplicate code or a hierarchy | of subclasses that all do things slightly differently; but | instead, for _any_ ledger-transaction, there may or may not be | e.g. a strategy-pattern object hanging off that tx -- and if | there is, it gets used instead of the default static one. It 's | great for maintainability, testability, predictability, | cacheability, and hundreds of other things. | | I'd love to know if there's any _good_ reason that a bank would | actually _want_ "50 different types of bank account" on an | implementation level, rather than these all boiling down to one | type with varying values of certain state variables + | presence/absence of certain foreign-key relationships. | | Other than maybe "some of these account types are actually a part | of completely different data models living in third-party | systems, that we acquired, and then never merged into our own | systems." ;) | boricj wrote: | > I'd love to know if there's any good reason that a bank would | actually want "50 different types of bank account" on an | implementation level. | | Not having the benefit of hindsight? | | Some banks are hundreds of years old. Most of them were | computerized seventy years ago if not earlier, back in the | stone age of computers. These kinds of banks won't bet the | house on a newfangled system every couple of years because some | bright-eyed engineer told them it's the trend nowadays. | | Not messing up their bookkeeping is their number one priority. | People would riot if their bank told them "sorry, we no longer | know how much money you had deposited with us". | spidermonkey23 wrote: | My company which uses mainframe and COBOL is undergoing a | migration to Linux. This involves porting all the batch command | scripts to bash and also fix quirks with COBOL compiler | differences. At the end of it though the system is at least 4x | faster and much more maintainable. This was the solution instead | of doing a complete rewrite to Java that they backed out of some | years before. | bennysaurus wrote: | Do you know what they're using? Are they going to Microficus | COBOL or doing something different? | ape4 wrote: | I surprised banks don't have a domain-specific language (DSL) to | describe their businesses. Instead each bank has to code "savings | account" in COBOL. | dan-robertson wrote: | What domain do you think COBOL was made for? | | Basically the only things computers were worth it for back then | were scientific calculations and bookkeeping. Banking is | obviously on the more complicated end of bookkeeping. Insurance | did get a special COBOL variant because I guess they had some | tasks shaped more like scientific calculations too. | boilerupnc wrote: | Recently announced, there's also now a generative AI tool to | assist developers with their COBOL modernization journey to Java | [0]. I've heard pretty decent reviews on its effectiveness. | | [0]. https://www.ibm.com/products/watsonx-code-assistant-z ___________________________________________________________________ (page generated 2023-12-14 23:00 UTC)