LongCut logo

Modernizing with Respect: Acknowledging the Best Intentions Behind Legacy Code

By Virtual Domain-Driven Design

Summary

Topics Covered

  • Empathy Unlocks Resistance Roots
  • Respect Legacy's Proven Success
  • Reframe Resistance as Leadership
  • Architects Master Stakeholder Empathy

Full Transcript

Hello and welcome to another episode of stories of facilitating software design and architecture. Today we are joined by

and architecture. Today we are joined by Michael Plot and Bea Nigel. Nikl um as I hopefully I got that right. Um and we're

going to hear a story from Michael. I'm

hoping that he's going to tell a brilliant story and then we're going to ask some questions and make some comments and see what happens. As usual,

I'm joined by my co-conspirators Andrew Harlo and Kenny Bass Shrier.

Michael, the floor is all yours.

>> Yeah, thank you. Um, I want to talk about a story that maybe quite a few folks encounter when they're working on legacy modernizations. I mean, it's a

legacy modernizations. I mean, it's a rare case that we work in our industry on the green field. Everyone who works in a larger organization deals with

legacy systems that are 20 years old, 30 years old where some old tech may be in place, but also maybe old processes and

I very often hear about from younger folks or from folks who come in externally like from [snorts] external consultants and I'm an external consultant by myself have been for most

of my career.

Oh, this legacy system sucks. This is so bad and we need to get rid of this and so on. And my story is um a little bit

so on. And my story is um a little bit about empathy in this case. And it was a

couple of years ago when I was a leading architect for a big legacy system modernization. And there was this was a

modernization. And there was this was a very old system, quite a bit of a cobalt code base involved mainframe systems,

but also Java swing user interfaces and and a lot of that stuff. And a lot of that embedded in a very uh hierarchical organization. Yeah. With a lot of

organization. Yeah. With a lot of command and control, a lot of micromanagement. They claimed to be

micromanagement. They claimed to be agile because they used scrum but it wasn't like really agile in any way in that. But there was the decision to

that. But there was the decision to modernize this thing. And of course all the fancy buzzwords were thrown around.

microservices, cloud, agile, domain driven design, Angular, Spring Boot, whatever. Yeah.

All the all the stuff DevOps of course as well and Kubernetes of course all the all the fancy stuff what you usually

hear when you do CDD which I refer to as conferenced development. And so

conferenced development. And so it was hard to sort these things out.

Yeah. to really bring in some zens a part of the modernization frenzy.

But I realized there was one person who was resisting very very heavily in that way. And part of the resistance I could

way. And part of the resistance I could understand but there were other parts of the resistance where I really struggled

to get a grip. Yeah. To really get into that why is this person acting like that? and especially in um like higher

that? and especially in um like higher management circles when the management came together in Germany it's called the lancos steering committee is probably the best

English term for that the there was sometimes vetos about things where I was like why why is this person acting like that

and there were quite a few voices that said oh someone from the upper management should get him in control and

uh whatever. And I

uh whatever. And I I reached a point where I was so fed up with that person that I was like, "Okay, I have nothing to lose." I went up to him and said, "Hey, can I have 30

minutes of your time? Why? What do you want? What do you want?" And I was like

want? What do you want?" And I was like sort of a target for him because I was driving part of that modernization.

And I was like the marketing phase also for the modernization so to say. He was

like, "Ah, what do you want? what do you want? Why should I spend time with you?

want? Why should I spend time with you?

Blah blah blah and all that stuff. And

he he agreed to have a meeting with me.

And it was at the end of a business day, like 400 p.m. 5:00 p.m. something like

that. And I was like, "Hey, I don't understand parts of your system. There

is something that I don't see that you see, and I would like to understand that." um you're you have a history of

that." um you're you have a history of over 30 years in that company. You know

way more stuff than I do about this company, about this system and so on.

And I would like really to to really understand where your assistance is coming from because I want to avoid making any mistakes or not understanding

a certain context. Yeah. Not seeing a certain context. Yeah. Maybe I'm blind

certain context. Yeah. Maybe I'm blind because I'm an external consultant and I don't claim to know everything because I'm just an external consultant.

He brushed me off. He was like, "Go away. What is this crap all about? Well,

away. What is this crap all about? Well,

you want to throw everything under the bus and blah blah blah and and and so on."

on." And I was like very dissatisfied with that and left. And two weeks later, he

came up to me. He said, "Hey, let's meet again." I was like, "Oh, interesting."

again." I was like, "Oh, interesting."

And I came into his office and he said, "You need to thank my wife for this meeting." I was like, "Okay, I'm getting really curious now." He was

like, "Yeah, when you came to me, I was really pissed. I was really angry. And I

really pissed. I was really angry. And I

came home and took the anger to dinner."

And my wife was like, "Why don't you tell him what's what's this fuss all about? Tell him." And so he was like,

about? Tell him." And so he was like, "Yeah, okay. I'm going to tell you now

"Yeah, okay. I'm going to tell you now very honestly, and this stays in this room." I am allowed to talk about this

room." I am allowed to talk about this publicly, but in a very anonymous fashion. So I won't disclose the

fashion. So I won't disclose the industry, the area, or wherever. I'm

allowed to tell the story, but no further details. Yeah. So, um I'm not

further details. Yeah. So, um I'm not stabbing his back behind and right now.

And um he said, "Well, listen. I started at this company when I was 16 years old.

I'm going to retire in 5 years."

And I was what you young folks now now nowadays say the rockstar developer of

the company. I created all of this.

the company. I created all of this.

This is my baby.

And now everyone is running around claiming that this system is a pile of crap and that it needs to go away.

And I am struggling with that. are you

actually aware how much money this system earned the company?

And I was like, okay, thank you very much. Now we're talking.

much. Now we're talking.

I understand your context.

I understand why you think that way. And

by the way, what I always say is to any external consultant or to any facilitator when you deal with legacy, that system must have been very very successful in

the past otherwise they couldn't pay your daily rates right now. and always

treat legacy with respect and always assume that no one 20 years ago got up saying, "Oh, let's build a really bad

system." No one ever did that. I'm very

system." No one ever did that. I'm very

sure. And um so so I I was talking with this person and we talked a little bit about context. The context back in the

about context. The context back in the day was what Gregor Hope very often says, economies of scale for systems.

Yeah. So reusabilities, centralization,

Yeah. So reusabilities, centralization, control, but the context has changed and I'm also quoting Gregor towards

economies of speed. Yeah. And I said, well, you made a lot of really good decisions in the context that you were in, but the environment maybe changes.

He was like, I never looked at that from this perspective.

And I said, okay, I'm not going to give you any advices right now. Let's leave

this where it is. I'll think about it and I I'll come back to you. A week

later, I approached him and asked, "Hey, do you have more time? I have an idea."

And I said, "Hey, actually, you have a really cool chance in your career at this moment.

You can be you are already the architect and the the developer the lead developer for the very first very successful systems architecture and

system for that company that earned them millions if not billions.

But you can now open the gate for a context switch of this system.

Yeah. getting that system ready for a changing context that's happening now.

And you can bring in all your knowledge about these things, about the company, about the system to be the path maker for the second very successful

architecture in there. And he was like, "Michael, I want to kick you out of the room right now because I hate your your positive attitude all the time, but I'll

let it sink in." And a few days later, I just received the mail I'm in. And that

opened many doors. And what I want to tell with this story is don't brush off resistance

and always try to find out where this stems from. Yeah, I would say 98% of the

stems from. Yeah, I would say 98% of the people don't work on ill intents or bad

intents. They don't have bad intentions

intents. They don't have bad intentions but they have a certain perspective and when you facilitate things when you don't try and I think that's a key

differentiator between architecture as a hierarchical position of power where you say hey I'm the big boss architect now and you do it my way and shut up and the

discussion is over versus facilitating architecture. I think what what is very

architecture. I think what what is very important when you are a facilitator and when you want to facilitate architecture especially yeah also when you want to

facilitate architectural change you need to have empathy you need to try to understand these dimensions you need

to understand where resistance from certain players and key players stakeholders comes from and then you can actively work with that I

that can open many doors. And this

question hey why are you like that? Opened quite a few doors. Hey, could have also gone

few doors. Hey, could have also gone terribly wrong. Yeah, that they kicked

terribly wrong. Yeah, that they kicked me out uh and so on. But sometimes you you have to take a risk and that's risk-taking. Yeah, these things can go

risk-taking. Yeah, these things can go wrong, but there is no guarantee for that. And also part of that empathy is

that. And also part of that empathy is try to understand the context. And no

one got up and said let's build a horrible system where they will hate us 20 years later. And no one ever did that. No one probably

that. No one probably thought about that system existing 20 years later when they designed it. So

that be my story that I want to tell.

>> Thanks. So you the at the end especially I'm I'm very curious because at the end you say I take a lot of risk and I think a lot of people myself as well in the past taking that that does a lot to a

person when he kicked you out sort of like kicked you out or say it's nonsense right there was two weeks in between how did you feel in those two weeks did you ever meet him then and how did you cope

with that I'm very curious because many people probably find it hard to do this because they feel very uncomfortable getting into

that situation. At least I am still to

that situation. At least I am still to this day feel very uncomfortable with that. Were you?

that. Were you?

I think I have quite a bit of a resilience with these things. So, um I don't know why. I can't tell you. I

didn't train that or whatever.

I can live very well with people not liking me. Yeah. So that gives me that

liking me. Yeah. So that gives me that doesn't mean that I don't care at all.

Yeah. Uh but I can uh I can draw very good boundaries for myself. I don't know why how that came to place. I never

explored that. I'm not a psychology person or anything like that. But it is like that. Of course I encountered him

like that. Of course I encountered him in meeting and I just ignored the situation.

I I just dealt with it like this never happened. I remained professional. I

happened. I remained professional. I

didn't take it any in any personal thing. I always say you can toss a lot

thing. I always say you can toss a lot to my head in a business context and I can still go out to a bar with you.

Yeah. Um so so that doesn't mean that I appreciate any toxic behavior or there are certain boundaries to that. Yeah. Um

but I for myself I can draw very good boundaries I think so that it doesn't bother me too much but I thought about that taking that risk very very

explicitly so I was prepared for various situations how that could go along.

Yeah. So when I do that that stuff I just don't do that intentionally. Oh

let's go in there and whatever. So, I

weigh in the pros and cons and I already have a plan how I deal with that if things like that happen.

>> But I think what you just said, the splitting of the person and the conflict or the topic, something that I feel like makes it very essential to feel respected even though you might disagree

on something. Um, and that already helps

on something. Um, and that already helps people to actually be digest what you just said and about this what you said Kenny like what helped me in this is to

accept that some people need time and especially when it's about switching perspective and being like saying okay I was wrong or this takes a lot of time to

jump over your own like shadow to to be like okay I should maybe I need to I need to switch and this takes time and being patient and to learn to be patient And to tell one yourself every once

again be like hey >> give the people time you won't get anywhere if you stress them let them come back to you instead of forcing it too much that helps me in such situations at least

>> and I think you said something very interesting so I I do uh so everyone's different right so I do have personal problem with people not liking me but what you said was very interesting I

think we should take the same approach which I always tried to ask to people as well and I think that's a learning point is before you go into that discussion or

that conversation try to already imagine and it's a stoic thing actually found out later on stoics do it a lot that stoics are not emotionless they already

went through the emotion before it happened so that in the moment they are more grounded so I think that's an interesting thing that I do as well like

I imagine what will happen during that and I weigh the pros and cons and then I already went through what was going on.

Not always, right? Yeah.

>> I find it really I find it really interesting that you're able to set really good boundaries while at the same time you're able to be highly empathetic. Uh I think that is a very

empathetic. Uh I think that is a very very hard skill cuz I find for example I can have high empathy but if it's someone that is attacking me personally

I find it very hard to like it's something that cost me emotionally. It's

a it's emotional work I have to do. Do

you find that you have to do work or is it you are doing the boundary stuff and it doesn't require any emotional work for you? I don't take these offenses

for you? I don't take these offenses personally to be honest because I think you can for instance exchange me for

Andrew for you Andrea for Kenny and the result would be the same. It's not uh it's not I I don't think that I personally get attacked. I think the

position that I am in is the one that is being charged. Yeah. So, uh, I don't I I

being charged. Yeah. So, uh, I don't I I don't think that this person thinks I, Michael, am a

full-blown idiot. I think this person

full-blown idiot. I think this person has a problem with the task that I have, with the position that I'm in. And I

think that is the first boundary that I draw.

>> Yeah. I wanted to there's so I think there's one thing you said Michael I thought was super interesting because people talk about like certain types of people take risks and they always mean like intellectual risks

or like financial risks or some other kind of risk but you took like an emotional risk with yourself just to like like I would be like Andrea I get very physical reactions to these things

and whether I can like think about you know intellectually I could be like they're talk like everything you said I'll still feel it really physically physically in meetings which is not fun.

Um but then the person as well then you gave them space and they took an emotional risk and I think that especially in software where we get super emotionally involved in what we build and the results of those things

which is exactly what you described right I think that kind of risk is a really big key part of this and it's less it's less talked about I think people are like oh yeah we just we ran

fast and broke things and you didn't you like went slow and like listened to people and that had the biggest impact right the more you push this person, it probably would have got worse, worse, and worse, right? Then his wife would have been, "Yeah, you're right. This

Michael guy is a complete jerk. You

should really make his life hell."

>> But instead, it was different. So

>> yeah, I completely agree, Andrew. It's a

construct, but because we do get emotional because angryness is also an emotion that people don't construct as an emotion, but there's always underneath that. So I think that's

underneath that. So I think that's something we should talk about more often.

>> Yeah. And I mean something that also I tell my teams that I work with when we have discussions that it's not about my idea or your idea but it's about ideas that one person brought up or another

person brought up. But if you get attached to the idea or to your idea or for example in Michael's story to your change if Michael would have said hey this is I want to drive this change because this is my initiative then you

get emotionally attached and then it's harder to detach this from you as a person and that also helps a lot. I mean

sometimes it's hard it's easier to say and to consult other people to make hey don't take it as your decision or your idea still it helps to repeat it for one

other people but also for yourself. I I

have a question uh and this is a very practical consulting question that I think most of us will be able to relate to which is sometimes I see the same thing that that that you see right and

and on the thing of this person why are they acting like this I I do believe people are self-consistent my question is how do you manage to

carve out time because even this half an hour investment and this other hour investment like as consultants we tend to need to uh have to explain all of our

time. Um and sometimes I can't invest in

time. Um and sometimes I can't invest in all the wise I want to answer. Um and

and this is this is a a a hard problem for the consultants and also for the companies. So I think both are

companies. So I think both are disserviceed by our lack of discretion on the usage our time. Sometimes I just do it anyway because I think it's a risk to the project like a high risk but it

also means that we're losing on some uh good key learnings. I wonder how you manage that or if you kind of built in

some some you know discretionary use of meetings or whatever.

>> Um I must say that I've rarely been in an environment where

I had to justify 30 minutes of my time on a time sheet.

Maybe I was just lucky. But that 30 minutes or something or scheduling a meeting with some key stakeholder has never been seen as something that I

have to justify. And if someone would have come to me and asked, hey, why did you what were these 30 minutes on your time sheet for or this one hour on your

time sheet for? I would say hey listen I'm one of the driving architects for this change and I think stakeholder

management and dealing with stakeholders and talking to stakeholders is one of my key tasks of an architect. Yeah. Um I I

would say it's not my task to what I let's say set up some really low-level details in the Kubernetes installation. Yeah,

maybe. Yeah, I think it's my task to bring to align the perspectives of various stakeholders together. Yeah. To

create a shared understanding about this modernization and this is one of the key stakeholders. So I think it's an

stakeholders. So I think it's an integral part of my job to talk to this person and if you have a different

perspective on the work of an architect.

Yeah. Uh we have to talk about my role in general. So that would be the thing

in general. So that would be the thing that I would say if someone would have challenged that.

>> It's great to hear. It's great to hear that because it's like sometimes I hear discussions about oh you know architects shouldn't really need to talk to stakeholders in a one-toone level. I

find it mind-blowing but it's good to see that I'm not alone.

What what I always say I sometimes teach software architecture foundation courses for the ISAQB and what I say in these trainings to

aspiring young architects is that stakeholder communication in a way that is suitable for certain stakeholder groups is one of

the most important key skills for any architects in my eyes. Yeah. So I think if you would ask me what is the key skill of a really good architect, I I love quoting Gregor Hopy. It's riding

Gregor's elevator. Yeah. Being able to talk to stakeholders on various levels with various perspectives in a way that they understand you. Yeah. Don't bring

out a live coding session to the sea level. Yeah. And don't bring Mckenzie

level. Yeah. And don't bring Mckenzie styled slide decks to the engineering team. Yeah. Uh to to to say it in a very

team. Yeah. Uh to to to say it in a very blunt fashion. And I think that's one of

blunt fashion. And I think that's one of the most important skills as an architect >> and and I want to add to that >> not not to an architect to architecture.

If you look at domain design the most important aspect of domain driven design is understand the problem. Who knows the problem? Stakeholders.

problem? Stakeholders.

>> Absolutely.

>> If you don't have the people on board, you cannot drive any change because the change is in the people and not in the system in the end.

This is this is uh it's been uh wonderful to have you in this uh episode. I love the I love the the

episode. I love the I love the the topics that we touched on. Uh thank you so much for for joining us, Michael and Bea. And uh we'll see you again in the

Bea. And uh we'll see you again in the next episode. Goodbye.

next episode. Goodbye.

Loading...

Loading video analysis...