A few years ago in the MoJ building, Petty france...
<insert sepia flashback filter>
Me: Hey. So you want to rewrite this particular module? Great - it really needs it.
MoJ: That's right. We've noticed that the average CQ [ClearQuest] is costing us 11k to fix, each. We figure it's be a good investment to tidy this up & rationalise it to make future maintenance & enhancements cheaper & more reliable.
Me: <in my head>Hrmm... yeah. Perhaps paying Logica 50% of that just to produce pointless paperwork to justify their middle-man position has something to do with that</in my head>
Me: Sure, makes sense. I'm the guy who's mainly been addressing these CQs - hence me now being 'the expert'. Those have mainly been very trivial fixes - it's just finding them in the convoluted code to begin with that's expensive.
MoJ: Sure. it doesn't help that we tend to have 4 or 5 redundant ways of achieving the same thing - apart from creating more code it means that when we alter one we tend to break another.
Me: Yup. If you're happy to simplify the UX then we can definitely make this much easier to maintain.
MoJ: So did you manage to extract all of our business rules out of the code?
Me: As I warned might be the case originally, I've managed to identify a handful, but most of the [numerous] rules seem to be emergent from the tangle of code - rather than actually being defined as such. I've managed to unpick these ones... We really need you to provide the rationalised rules that you want in the new version.
MoJ: Ok, that's fine.... <chatter chatter chatter/>
MoJ: See you next time. Are you going to the pub?
Me: Sure. I'll see you there.
...
Another train ride three weeks later...
Me: Hey guys. What's new?
MoJ: Hey. Ok, so here's what we want...
MoJ: As you know we have a lot of redundancy when it comes to achieving different tasks in the system, and all of our thousands of users across the 640 courts use the system differently - we don't know exactly how everyone uses it.
Me: Ok.
MoJ: And also we're not actually sure what our business rules are and we don't want to risk disrupting our users - people have just gotten used to things working a certain way.
Me: Erm... Ok. Well, at least if we can rationalise the UI it cuts the code & complexity down a decent amount. That'll make it cheaper and less error prone to make fixes & changes in future.
MoJ: Well... the thing is that like we said, we don't know how the users in each of our courts actually use the UI, and we don't want to upset them by making them have to take a different route to do the same thing they are used to doing a different way.
Me: <in my head>... da fuq?</in my head>
MoJ: So what we need you guys to do is is to rewrite the system, the same as it currently is, but better.
Me: Better?
MoJ: Yes, better. We don't know our rules so we need you to rewrite the code to be structured and maintainable, etc - but without changing the existing rules.
Me: The ones that are unidentifiable and emergent from the chaos?
MoJ: That's right! And also, as we don't want to upset any users by changing their experience, we need you to keep all of the multiple ways to navigate the same functionality in the UI - but make it more simple.
Me: Ok, that's no problem.
MoJ: Pub?
Me: Oh, I can't thanks - I've got get back and... er... walk my dad's dog. Bye!
Five days later back at employer's office...
Me: <hands in notice/>