Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Legacy Software and the dreaded lack of Documentation

Options
  • 02-08-2014 10:33pm
    #1
    Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭


    So I'm on contract for 3 months with a view to extension, but my project deadline is October. I'm migrating a large number of scripts running (together, they operate a data analysis application) on a Linux server running under its own user profile. The state of the current setup is a bit of a mess, where multiple users on the network have been able to toss files here, there and everywhere without any regard what so ever.

    So I've been given a new testing testing server with a month for design and analysis of the current system. At the moment, there is no documentation and no developer that worked on this legacy project exists within the company.

    Out of curiosity, has anyone worked on an undocumented legacy system and how did you maintain your sanity?

    I've suggested that once the migration has been completed and handed over to testing, that I maintain a testing server, optimize the existing application and provide complete documentation. So should the project be handed over, it would be a case of spending an age trying to figure out what's going on.

    Any advice on the process? Or experiences working on a similar project.


Comments

  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Itzy wrote: »
    So I've been given a new testing testing server with a month for design and analysis of the current system. At the moment, there is no documentation and no developer that worked on this legacy project exists within the company.
    "Documentation is like sex. When it's good, it's very good. When it's bad, it's still better than nothing."

    First thing you need to do is report (in writing) to the PM that to get up to speed with this legacy code will take time. If you feel that this may make hitting any existing deadline impossible, they should be informed of this also. If they're any good, they'll inform the stakeholders and try to rework expectations and timelines. If not, you've covered your ass later on.

    As to getting up to speed, it always looks like a daunting task at first. In reality, while it does take a while to plow through the code, you'll eventually get on top of it and as you become acquainted with the coding style of the author, you'll begin to find patterns in how they do things, until you become an expert on it.

    In short, don't fret too much - it always looks scarier than it is at the start.
    Out of curiosity, has anyone worked on an undocumented legacy system and how did you maintain your sanity?
    By coming over to the dark side.

    All contractors start with idealistic views. Then one day they come across the project that changes them. By the end of it, the incompetence, politics, and sheer pointless waste will leave you with dead eyes, no longer caring and laughing the mirthless laughter of the damned. If you don't believe me, here's a recent example.
    I've suggested that once the migration has been completed and handed over to testing, that I maintain a testing server, optimize the existing application and provide complete documentation. So should the project be handed over, it would be a case of spending an age trying to figure out what's going on.
    I'd recommend that someone should rather than you. You're a contractor, so it's a bit cheeky that you're essentially already signing yourself up for a long term maintenance contract. Thing is, as you'll be the only one with any knowledge of the system, that someone will naturally end up being you.


  • Closed Accounts Posts: 9,046 ✭✭✭Berserker


    Itzy wrote: »
    Out of curiosity, has anyone worked on an undocumented legacy system and how did you maintain your sanity?

    Truthfully, you need to tough it out and embark on a voyage of discovery to find out what is really going on. I would sit down with the PM first though and explain the repercussions, extended time line etc, that are going to result from the lack of documentation. This kind of task is extremely time consuming in my experience.


  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    Thanks for the advice lads. I'll be sure to sit and have a chat with my PM about more realistic expectations for the project. I just don't want to be driven cracked by a tight deadline, but I don't want to muck about either and píss time down the drain.


  • Registered Users Posts: 2,021 ✭✭✭ChRoMe


    Start by putting together some basic tests on the main use cases, otherwise you will have no way to tell if you have broken something in the migration.


  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    Make a break through in understanding the current technology in place. My only hold up at the moment is gaining access to the relevant hardware necessary to begin testing, before I begin working through it thoroughly.


  • Advertisement
  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    I've just had a what in the fúcks name moment. I'm pouring through 20-30 JavaScript files, that does the same job, but points to different output directories all over the place. I'm going to go nuts tracing every thing and rewriting code come the end of this project.

    Once I have everything up and running for the Company, I'm suggesting they ditch JavaScript as a method of data handling, as the data in question is not being passed to a front end web service. It may be a means of dragging out my contract for a few extra months by getting caught up in redesign and development work.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Itzy wrote: »
    Once I have everything up and running for the Company, I'm suggesting they ditch JavaScript as a method of data handling, as the data in question is not being passed to a front end web service. It may be a means of dragging out my contract for a few extra months by getting caught up in redesign and development work.
    Welcome to the dark side...


  • Closed Accounts Posts: 9,046 ✭✭✭Berserker


    Itzy wrote: »
    Once I have everything up and running for the Company, I'm suggesting they ditch JavaScript as a method of data handling, as the data in question is not being passed to a front end web service. It may be a means of dragging out my contract for a few extra months by getting caught up in redesign and development work.

    Did you ask why they took that approach in the first place? It sounds rather bizarre.


  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    Berserker wrote: »
    Did you ask why they took that approach in the first place? It sounds rather bizarre.

    None of the original developers exist and the system was added to over time as needs arose. So there is no one I can discuss the hows and whys with. I have to figure it out for myself unfortunately.


  • Closed Accounts Posts: 22,649 ✭✭✭✭beauf


    This is one of those "how long is a piece of string" question though. As it depends on the scale and the complexity of the process and software, and if any one has the business knowledge. So each case will be different.

    Sometime its quicker to rewrite and sometimes its not possible, the project is too big. Sometimes, they just want it done their way, even it makes no sense. Sometimes you need to run away from it.

    I've not done it the same way everytime. Sometimes I've busted a gut to get a green field replacement up and running, so good they can't say no, and so fast they don't have time to argue about it. Other times, I've had to just slog through the existing code. Sometimes I've said its not possible, just made it more robust, quicker, but essentially, not touched most of it. Sometimes I've just put it on much faster hardware, or split the jobs so they can be run concurrently on multiple machines.

    I suppose the most important part is to agree what the objective is, and how they'll quantify that. So when you're finished, you can demonstrate you've met, even exceeded you're objectives.


  • Advertisement
  • Registered Users Posts: 2,021 ✭✭✭ChRoMe


    beauf wrote: »

    Sometime its quicker to rewrite andst of it. Sometimes I've just put it on much faster hardware, or split the jobs so they can be run concurrently on multiple machines.

    I suppose the most important part is to agree what the objective is, and how they'll quantify that. So when you're finished, you can demonstrate you've met, even exceeded you're objectives.

    It's very much an exception when a re write is worth it.

    Couldn't agree more with the second paragraph, goes back to what I was saying about creating tests before changing anything.


  • Registered Users Posts: 6,150 ✭✭✭Talisman


    Itzy wrote: »
    I've just had a what in the fúcks name moment. I'm pouring through 20-30 JavaScript files, that does the same job, but points to different output directories all over the place. I'm going to go nuts tracing every thing and rewriting code come the end of this project.

    Once I have everything up and running for the Company, I'm suggesting they ditch JavaScript as a method of data handling, as the data in question is not being passed to a front end web service. It may be a means of dragging out my contract for a few extra months by getting caught up in redesign and development work.
    JavaScript is the New Black. You could knock together a prototype of the system in Node.JS and utilise those JavaScript files in the process.


  • Registered Users Posts: 2,021 ✭✭✭ChRoMe


    Talisman wrote: »
    JavaScript is the New Black. You could knock together a prototype of the system in Node.JS and utilise those JavaScript files in the process.

    It's a sad state of affairs when people are advocating weakly typed languages for reporting applications.


  • Closed Accounts Posts: 22,649 ✭✭✭✭beauf


    Is it the new black or the new VBA?


  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    Talisman wrote: »
    JavaScript is the New Black. You could knock together a prototype of the system in Node.JS and utilise those JavaScript files in the process.

    If I were developing a front end Web App or the Manufacturing Equipment I'm developing for was tied in to a Web based front end, I'd consider Node.JS. Since it's a back end group of services running on HP-UX, Node.JS is the furthest thing from my mind. I might even consider Java or C# for data handling between the Server and DB at a stretch.


  • Registered Users Posts: 2,022 ✭✭✭Colonel Panic


    You know, I kind of like un****ing legacy code, making things testable and putting things in order.

    I think part of me gets a kick out of WTFing my way through years or decades of things many people had their own ideas about.


  • Closed Accounts Posts: 22,649 ✭✭✭✭beauf


    Most coders, IT people are fixers at heart. However than can lead you to try and fix something when you really shouldn't.


  • Moderators, Computer Games Moderators, Technology & Internet Moderators Posts: 19,240 Mod ✭✭✭✭L.Jenkins


    You know, I kind of like un****ing legacy code, making things testable and putting things in order.

    I think part of me gets a kick out of WTFing my way through years or decades of things many people had their own ideas about.
    beauf wrote: »
    Most coders, IT people are fixers at heart. However than can lead you to try and fix something when you really shouldn't.

    I have absolutely no complaints about the task in hand. I actually love what I'm doing at the moment, but I have had quite a few WTF moments in the last 2 weeks alone.


Advertisement