Hacker News new | ask | show | jobs
by AntiMS 773 days ago
Once upon a time where I worked...

We had a terrible release management system. (For IBM iSeries folks, it was Turnover.) And we used it for everything. Java code included. In particular, we used it for database migration scripts. And you know how database migration goes. You keep adding files and you never remove any. And there gets to be quite a few very quickly at the beginning of a project. And the folks in charge of setting up the release management system for our database migration scripts did so in such a way that we had to list out each one individually. Every release, we had to type like 50 database migration script filenames one-by-one. With no tab completion. (Not to mention the Java .war files we were deploying as well.) And by "release", I mean every release to the dev environment.

(Now some of you who know of Turnover might know of a janky Eclipse fork that would let you create Turnover forms in a drag-and-drop way rather than through the green screen, but there were reasons we didn't want to go that direction. Long story.)

As soon as I figured out how much of a PITA this would be every single day, I decided to do something about it. I wouldn't ask for permission. I'd ask for forgiveness (if it came to that.) So I set about writing a way to automate this. That way involved running the dumb terminal emulator (the "green screen" app tn5250j) in Xvfb and simulating key strokes to it. God was it a nasty hack, but it worked reliably and God was less painful to deal with than what we had before.

Part of why I didn't ask permission was because I wasn't entirely sure I could make it work and I didn't know if the boss would ok a project that may pay off given our tight deadlines. But once it did work, I didn't keep it a secret and the boss praised me for it. Still don't know he'd have let me undertake that project had I explained and asked permission ahead of time, but everything very much worked out with that project in the end.

Here's to lying to your boss. Don't ever feel bad for saving your boss from themself.

3 comments

Java was tacked on to AS400/iSeries so I can understand how it would be painful with any Change/Release management system. I would much prefer to stick with the old crufty RPG/CL on those systems. Tacking on "new" tech to old "green screen" systems is just a bandaid. Should have went to a modern OS at that point. Try doing JSON/CRUD apps on TSO/MVS. Not fun.
Instead of hiding the project until completion, you could (after a little covert research) share the idea with the boss and time box the development: if the first increment of X days or a week continues to look promising, then attempt the next increment as long as the boss still has an appetite for your idea.
never underestimate how little appetite management (or anyone really) can have for good ideas when they are stressed (eg a time crunch).
Do this after you've built it.
I've not had to do this often or in awhile as over the past decade until very recently it's been a tech workers market and I've had more power, but I've spent (sometimes personal) time in past jobs to automate these kinds of things.

What I eventually learned to do in Kafkaesque organizations is do it anyways. If it works, ask for permission to spend time developing it, stressing how much time it'll free up. If it never gets approved or shot down, I use the solution anyways and use the time savings to focus on other things (which can vary on actual work which I present as spending "non-toil" time on, to taking mental health breaks).

At some level it's dishonest, but that's what happens when organizations stifle initiative.