5 ms·
I had a contract about 10 years ago for a major city's water department. The contract was to convert an internal application for customer billing, written in CO
by 0x445442 7y ago
I had a contract about 10 years ago for a major city's water department. The contract was to convert an internal application for customer billing, written in COBOL running on the mainframe to a web application backed by Oracle.
When I started gathering requirements from the city's rep who was my point of contact I asked them for any documentation they had such as use cases, functional specs etc. All they could provide was the original COBOL source code bound up in those huge 17"x14" binders; the one's that have the holes along each side from the old dot matrix printers with every other line having that faint light green background.
Well I'd never seen COBOL in my entire live and I could only look at the code for about an hour before my eyes started to bleed. Fortunately I was able to get restricted access to the system and it ended up being pretty easy to just reverse engineer the thing by mapping each green screen of the app to a corresponding web page. In the end I didn't need any original code or documentation to do the job.
- HillaryBriss 7y ago> All they could provide was the original COBOL source code ... I worked a contract for an android app like that: only source, no requirements, no tests, no docs. A little bit of incomplete commentary in the code. I would build it, run it, see it crash and hope the fixes I made didn't eliminate some important feature. IDK. Isn't that the way everything works now?
- KC8ZKF 7y agoIs your code still running? Did it suffer significant downtime? Did anything else break because of the new code? Did anyone do without water?
- 0x445442 7y agoYes, no, no and no... AFAIK :)
- stefco_ 7y agoI almost did a FORTRAN subcontracting gig like this to translate an old but accurate simulation of a mechanical system to Python. I literally got a binder full of FORTRAN to start with, though eventually (to my great relief) the guy I was going to work under got me digital copies. Didn't pan out anyway, though, since he didn't win the contract.
- jacobush 7y agoDid you write a wrapper or reverse engineer and replace? Curious.
- 0x445442 7y agoReverse engineer and replace. It turned out the green screens were pretty simple to grok where everything was either the non-editable display of a record or the editable display of record. And the transitions from screen to screen were very deterministic so a one to one mapping of screens to web pages wasn't that difficult.
- jacobush 7y agoFrom which I infer that the database actually was at least remotely comprehensible? Or did you transition to a completely new system - new storage / database everything?
- 0x445442 7y agoThe new system was backed by an Oracle DB and that was provided, with schemas defined and another engineer was responsible for the ETL of the mainframe data to the Oracle DB. This was obviously helped a lot.