Hacker News new | ask | show | jobs
by jloughry 4672 days ago
You correctly identified the causes. Mostly, it was lack of time; keeping up with compliance changes is a full-time job at any bank, and there wasn't time for 'science projects'. What tools did get written were done to scratch a personal itch, and were done late at night and on weekends, outside of work hours.

I think, as I said in an earlier comment, that there was a general lack of awareness amongst the programmers on the team that anything better was possible. Most were not computer science graduates. Professional programmers they were. But I'll bet money that most had never heard of trees.

Management interest evolved over time from indifferent to actively hostile. The first generation LIST annotator improved productivity of the team and reduced errors probably at least fifty percent. Management took no notice at the time. Improvements to the tool, also developed out-of-hours, finally met with angry demands from management to stop and bury the results. Shortly afterwards the entire team was laid off.

1 comments

Thanks for the details. I find these environments fascinating, although I'm sure they're best observed from a great distance in both space and time.

One more question, if I may: once you got used to it, what was the productivity like? I imagine these sorts of things as taking days or weeks to make the simplest of changes, but maybe the horror I imagine becomes routine after a year or two of experience.

It took less than two weeks to become fluent (I started writing the annotator tool around that time). Probably, it was the well-developed---if informal---methodology that Annie, the experienced programmer who took me under her wing when I arrived, taught me. She made a little ceremony of it, giving me my copy of the binder that held all of the accumulated knowledge about the reverse-engineered language in its photocopied pages, showing me how she used different coloured highlighter pens to tie together things in a listing, and giving me little example programs to understand. I studied diligently; it was like working crossword puzzles. About two weeks later, I was promoting my first changes to the test environment.

Edited to add: I never got over the white-knuckle feeling of it: everything global, limited supply of working-storage variables that were constantly being re-used, and interactions that could bite from a distance. One of the most useful features of the LIST annotator was that it generated an ordered cross-reference listing that could be directly compared. That feature made choosing safe working-storage variables a much safer activity.