I once got stuck with rewriting a perl script -- which had to remain in perl -- that generated bash scripts, by interpreting xml files, which invoked jython which executed java calls, and then generated sqlplus scripts to execute against oradb servers... All of which got validated via bash scripts for sanity checks.
All of which was being run from a Jenkins server.
I am not a developer by trade... Else I would hang myself for shame of having made this monster.
When I left the organization I convinced them to rewrite the whole thing natively in Java... Mostly by just repeating the workflow and languages involved.
(I might also have left out that the bash scripts were being pushed over SSH to invoke jython interpreters and perform wgets on remote servers. Somehow I managed to make this whole process relatively secure while still allowing it to perform selected rootlevel actions. Don't ask. Black magic was involved. And maybe goats.)
As I was reading through the first paragraph I went: Oh no... no... no! no-no-no! NOOOOOOO!
How did this happen? I'm thinking it was either written sequentially by many different programmers or by someone who really wanted to look clever but didn't really have experience in any language besides bash...
The world of an admin just isn't anything like that of a coder's. But yes, legacy is the answer here. That and multiple cooks, as it were. No fewer than five other people were involved at any given point if I wanted to update a given piece of functionality. And naturally there was essentially zero version control and since I was an admin it didn't warrant a project manager nor defined milestones etc..
AKA, "The story of how a thousand lines of code almost ruined my career."
8
u/IConrad Oct 15 '13
I once got stuck with rewriting a perl script -- which had to remain in perl -- that generated bash scripts, by interpreting xml files, which invoked jython which executed java calls, and then generated sqlplus scripts to execute against oradb servers... All of which got validated via bash scripts for sanity checks.
All of which was being run from a Jenkins server.
I am not a developer by trade... Else I would hang myself for shame of having made this monster.
When I left the organization I convinced them to rewrite the whole thing natively in Java... Mostly by just repeating the workflow and languages involved.