Though I found it to be stifling, I would work with mainframes again if the price was right.
Though I found it to be stifling, I would work with mainframes again if the price was right.
The problem is training new developers: you won't get experience developing COBOL (not just the language, but the toolchain, the idioms of the time etc) without developing COBOL, and nobody is going to let you touch the system until you're experienced.
Unlike more recent languages, there aren't a huge range of small/simpler/less important (but still representative) codebases for novices to cut their teeth on.
I think it would take some sort of apprenticeship style setup to train new COBOL devs, but that's really, really hard to get right, and will be a huge drain on the few experienced devs you do have.
The pay is ok, the domain is interesting, and the work load is manageable.
When I look at some friends doing game development, they seem to work a lot more for a lot less. They have a cooler office though...
But I think it's a good idea to try to avoid COBOL.
There are a lot of places where it is a lot worse to be a programmer than a bank.
It's a great industry to be in if you work in the right area, just like any industry.
I thought it was actually fairly interesting work. COBOL is a very neat language. Like anything though at age 22, it's not likely you'll stick around for any job, much less one where you're generally just doing maintenance and source control / corner case bug bashing. I moved on but I'll always remember the job.
A company using ancient COBOL code should have people who understand it, but also the ability to test it, and to talk to it from new code.
Once you get to that point, replacing the COBOL is not so hard -- once you have a reason to do it.
They're everywhere, they do.. something.., and nobody can replace them just all at once. Even if you replace some of them, the remaining part still means your system gets swamped by the old mess.
But the knowledge required to fix or update these programs is almost completely owned by the programmers that developed them, who are in the process of retiring or are unwilling to share knowledge for (justified) fear of losing their job.
This creates an unjustifiable dependency for the company, who will have a very hard time finding senior developers to replace the original developers or even recruit <modern language> developers to build a new and more modern system. What happens to the company if the original programmers retire, get sick or leave?
Every project that I know of that focused on replacing mainframes running Cobol quickly reached nightmare-like complexity during the analysis phase - especially because the original developers were uncooperative and the scarce documentation was obsolete - and was replanned to contemplate at least twice the time (and sometimes twice the work/FTE), which will also increase the cost of replacing the technology by a few (tens of) millions...
That has been my experience as well. It's also the case that business processes get designed around the COBOL code, not just vice versa. Separating out what are actual business requirements from "what we've always done on the mainframe" can be fiendishly difficult, and not just the original developers but the customers can be extremely uncooperative. It takes management coming in and saying "these are the new business processes, they are compliant with the industry standards, and our new software is going to implement them" to get things to actually happen. How that works for a changeover in something like a bank is beyond my experience, though.
I'm pretty sure the problem is worse than just offering money. This is why many large corporations will pay a lot more for consultants and the like rather than risk it with independent contractors, despite the contractors being much cheaper.
Top tech employers will routinely hire you (with generous compensation packages) to program primarily in a language you're not experienced in.
Big non-tech companies are simply not set up to realize that developers are assets, not peons.
In a non-tech company, they are working in a cost-centre.
Ironically, a lot of non-tech companies have not yet realized that the services they provide are actually digital, and their profit centers are actually just a sales organisation.
> bank
Uh, you would refuse to do mainframe programming for $1m/year? Seriously?
If there is a shortage worth complaining about, it implies there is a critical need (a large financial upside -- these articles make it sound like it's an existential requirement for the bank) for hiring an employee that knows Cobol. My point is that if the compensation scaled with that critical need, plenty of people would be picking up Cobol right now, just like plenty of people are honing their business management skills.
Salient quote from the article: "the time before a new employee can stand on their own feet is 2–3 years"
Most neurosurgeons just follow textbook prescriptions. I don't think this is a good analogy.