Replacing legacy systems (Part II)

In part one of this article I presented an approach to get started with replacing a legacy system.
By now we’ve picked one specific subsystem of a larger legacy application as the focus for the first implementation phase of the replacement system.

Getting to know the playing field

OK, so we know what we are working on: modernizing the Slotsembly UI & logic. Next up we have to figure out how Slotsembly 2.0 should look and behave like. What I mean is we should ask the following questions:

  • How does the workflow function in the application, how would users expect it to function?
  • Is anything missing in the current version?
  • Is anything in the current version that no longer makes sense?

Walking a mile in their shoes

If you have the chance to, try this out: go to the workplace of a current user and try to do his work and ask lots of questions about his daily work. So we let Fabian the factory-worker lead us to his workplace. We’ll try to do his work for a few minutes and we’ll ask questions like:

  • This behavior of the application seems strange, doesn’t this annoy you? Do you know if this is really necessary? E.g. when there are many popups/warnings that get clicked away, when you have to click often for things you need often etc.
  • Why do you have to do X this way, can’t you do Y instead?
  • Why are these steps separated in the application? E.g. when you have to click one button to get plans of some slot-machines, but another button to get plans for other types of slot-machines.
  • Why are these steps fused together in the application? E.g. when opening some details-view to check something also triggers printing of that list.
  • Is there a way for you to see X? E.g. when you do steps, that more experienced workers do fast, slowly because you don’t have the routine and you’d like to double-check something but there doesn’t seem to be a way.
Strange GUI is strange.

Curiosities-collection and reasons behind

Areas of improvement which I’ve repeatedly seen in legacy-applications:

  1. Undocumented — and potentially unused — features.
  2. LOTS of special-cases, typically mostly outdated.
  3. Extreme focus on generic UI (nearly indistinguishable UIs that do vastly different things).
  4. Extremely customized UIs (every text-field is placed pixel-perfect after the last letter of the label).
Venn diagram time!

Putting it all together

Now you should know:

  • What the actual goals of them using it are (required).
  • What they would like to be able to do additionally (valuable).
  • Identified any special challenges from a technical perspective.
  • Identified surprises like mismatches between what you saw/heard from the behavior from the users perspective and what the code tells you.
  • Identified surprises in the shape of hidden things in the code which you neither saw nor heard of from the users. This could be things like calls to some other external system that nobody has mentioned yet or big blocks of code that seem to have no connection at all to the actual business processes.

Workshop time

When you have all of that and roughly made sense of that for yourself it’s time for some intense workshops with the key stakeholders again to find out:

  • How drastic should the workflows be improved?
  • Does that only concern the on-screen-workflow or has SlotManiacs considered optimizing/changing the factory worker’s workflows as well (now would be the time)?
  • How much innovation/experimentation should be done from a technical/UX point of view? Should the new application be used as a marketing tool to attract new customers/workers: Look how shiny our internal tools are, we must be an awesome company! Or is it simply: re-implement this in a modern technology so there are more than 5 people within a 100km radius we could hire to support this & do it fast.
Define the extent of the re-implementation.

Software engineer from Austria. Passionate about software, likes photography, addicted to podcasts and always busy. http://paukl.at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store