Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Getting New Technology Adopted (with Dov Katz) image

Getting New Technology Adopted (with Dov Katz)

Developer Voices
Avatar
160 Plays6 minutes ago

Getting new technology adopted in a large organization can feel like pushing water uphill. The best tools in the world are useless if we're not allowed to use them, and as companies grow, their habits turn into inertia, then into "the way we've always done things." So how do you break through that resistance and get meaningful change to happen?

This week's guest is Dov Katz from Morgan Stanley, who specializes in exactly this challenge - driving developer productivity and getting new practices adopted across thousands of developers. We explore the art of organizational change from every angle: How do you get management buy-in? How do you build grassroots developer enthusiasm? When should you use deterministic tools like OpenRewrite versus AI-powered solutions? And what role does open source play in breaking down the walls between competing financial institutions?

Whether you're trying to modernize a legacy codebase, reduce technical debt, or just get your team to try that promising new tool you've discovered, this conversation offers practical strategies for navigating the complex dynamics of enterprise software development. Because sometimes the hardest part of our job isn't writing code - it's getting permission to write better code.

---

Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices

Support Developer Voices on YouTube: https://www.youtube.com/@DeveloperVoices/join

Morgan Stanley: https://www.morganstanley.com/

OpenRewrite: https://docs.openrewrite.org/

Spring Framework: https://spring.io/

Spring Integration: https://spring.io/projects/spring-integration

Apache Camel: https://camel.apache.org/

FINOS (FinTech Open Source Foundation): https://www.finos.org/

Linux Foundation: https://www.linuxfoundation.org/

Moderne (Code Remix conference organizers): https://www.moderne.io/

Code Remix Conference: https://www.moderne.io/events

Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social

Kris on Mastodon: http://mastodon.social/@krisajenkins

Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/

Recommended
Transcript

Challenges of Tech Adoption in Large Companies

00:00:00
Speaker
I always enjoy talking about new technology, and I'm always happy to recommend the things that have worked for me and grabbed my attention. So I often end up in conversations talking about new tech, and we reach the question, yeah, this sounds great, but how do I persuade my boss to let me use it?
00:00:19
Speaker
And that is a big part of the trick, right? It's all very well finding a great new solution with huge potential. But then there's the problem of having the time and the space and the internal support to actually try it out and use it.
00:00:33
Speaker
The best technology in the world remains useless if we're not allowed to adopt it. a horrible problem, it's a common problem, and its size, I think, varies with the size of the company.
00:00:46
Speaker
Adoption tends to be easier in startups, and it gets harder and harder as the company grows, as a company's habits become inertia, become the way we've always done things.
00:00:57
Speaker
And I've definitely seen some very large companies where change becomes an almost pathological problem. So for all the discussions we've had about new technology, we have to have a discussion about change itself, about how you adopt new technology.
00:01:15
Speaker
And who better to ask about that than someone who works for a huge company getting new tech adopted? So my guest this week is Dove Katz, who works at Morgan Stanley. You may have heard of them.
00:01:27
Speaker
And he gets software practices to change and evolve in that huge company. And i grill him on this from as many angles as we can.

Improving Developer Productivity in Banks

00:01:36
Speaker
How do you get management to buy into something new?
00:01:39
Speaker
How do you get other developers and other teams on board? Do you sometimes have to outsource the problem? If you're a software as a service business that has outsourced the problem and you know you can help, how do you get your foot back in the door?
00:01:54
Speaker
Is open source the answer? Is AI? And how do we get change done? How do we get new things done in those times when we're struggling to get anything done at all?
00:02:06
Speaker
I'm your host, Chris Jenkins. This is Developer Voices, and today's voice is Dove Katz.
00:02:23
Speaker
of cats. Thank you for joining me. Thank you for having me. Pleasure. We're going to find out what's in your brain. i'm gonna I'm going to start this unusually for me. I'm going to start on a cynical note. And it's going to be your job to give me some optimism.
00:02:36
Speaker
Oh, boy. and i' I'm usually the cynic, but OK. OK. Well, we're going to have to try. So I've worked for a few different banks in my time. You work Morgan Stanley right now. um And i when I first joined a bank working as a software developer, I thought, salary is fabulous. It must be because they've got lots of money and they want the best people.
00:02:55
Speaker
And towards the end of my time, I realized, yeah, they're paying a bit more for good people, but some of it's danger money. Some of it is just dealing with the fact that banks are impossible to get anything done in.
00:03:07
Speaker
And it's like compensation. not you think that's fair? You think it was a disenjoyment premium or something like that? Yeah. yeah I don't. Actually, I was ah speaking to a lot of people here, actually realizing that we all share such similar problems and challenges and it really doesn't matter. and These are large enterprises that aren't just banks. so i think historically ah my My belief is everybody's being paid competitively at the end.
00:03:36
Speaker
And ah you know you're paying for good talent, and there's really good problems to solve. Yes, you have to work in a you know a different way, maybe a more disciplined way in larger companies than you would at a you know startup.
00:03:50
Speaker
and Maybe there's a premium to pay if you're you're looking for that that that talent that really just wants to stay in their startup environment and they want to they don't want to have the controls and the rigor of the discipline that comes with being in a large company.
00:04:03
Speaker
But I think overall, the industry, you know people are being compensated fairly, and I don't think that in any way it's a disenjoyment premium. Okay. So I think, I think I'm being too cynical. I think you're being too cynical, and I'm usually the cynic around. Okay. there's a lot of stuff, especially, well we can talk about it, but that there's a lot of work that is and ah not enjoyable.
00:04:28
Speaker
ah that you have to decide from an attitude perspective. Is it, am I gonna let this get me miserable? Am I gonna find creative ways to solve these problems and find a way to enjoy it? Like the people who find a way to enjoy their job do a much better job than the people who just complain about it. Yeah, I can totally believe that.
00:04:45
Speaker
But that that's the thing. this is This is really where I want to get to, the creative solutions. Because I've found that working in these large companies, they're more like lots of small companies who are already overloaded.
00:04:57
Speaker
And I'm not going to name it names, but I was working at an investment bank and I found that any project you wanted to work on, if it involved another department, it was probably sunk because they didn't have time to take on a fraction of your project to help you get it over the line.
00:05:13
Speaker
right And so my question is, like do you recognize the problem of getting anything new to happen in a large organization feels sometimes intractable?
00:05:25
Speaker
And do you have suggestions on how we can get things moving when everyone's already too busy anyway?

Aligning Tech Projects with Corporate Strategy

00:05:31
Speaker
I think, I mean, when everyone's too busy, there's a question of prioritization. I think that the right new things do get the support they need to move forward.
00:05:43
Speaker
Not everything new needs to happen, ah you know just because it's new, right? the right things, like if you're prioritizing... To take today's theme, if you're prioritizing tech debt reduction and and you've got certain things that you want to do that are going to help leadership show results in that area, they'll get prioritized even if they're new.
00:06:01
Speaker
They'll take a little bit longer. There's a rigor in the review process. You can't just bring in outside technology that may not be safe to run and and just run it. But there's there's definitely a... yeah there's There's a way to get things through. They need to be aligned with the strategy of technology or the you know the strategy of the company.
00:06:19
Speaker
And if they are, then those that's what's important. you You set a strategy because you're defining what's important. And so okay things you things you're looking to introduce, the environment, need to align with that.
00:06:31
Speaker
Does that mean that either you need, if you're picking a new project to work on as someone in the middle of the organization, does that mean you either need to pick projects that align with what management are telling you they want, or you need to get good at telling management why this will make them happy?
00:06:47
Speaker
there's there's a There's a point. I mean, this is being a but is a very generic, you know yeah but... but there's There's a point where you know you get together and discuss your strategy, and that's where the right people sit around the table deciding yeah what's important.
00:07:02
Speaker
Obviously, if it's in the technology organization of a bigger business, this technology needs to support the business. This technology needs to support its mission as the business's mission to do its commercial purpose, whatever that might be.
00:07:13
Speaker
ah It'll be different if you're a tech company and if you're a bank or healthcare whatever, they've set that strategy and now it's a question of that the reason they do that is my view is that those things drive decision making for everything else. So if you're able to connect everything you do back to the strategy, back to kind of a set of guiding principles, like does this make sense? So let's go to this very specific. Let's get back to the theme maybe of of of the conference, right? If, in your strategy, you have a whole focus on being modern and evergreen and being able to move quickly, and that's become one of your technical principles, and that's become a you know pillar of your strategy is, yeah maybe it's to attract talent, maybe it's to to get ah you know new technology, you know introduce the environment, which may be shackled behind some of this legacy tech debt that you can't get rid of.
00:08:02
Speaker
um if you If you do that, that helps the whole process of, okay, we're going to prioritize things that help enhance that. We want to you know be measurably better at this later on, you know in at the end of the year, at the end of the measurement period.
00:08:14
Speaker
want to be better at this. those You'll get people's attention if you're looking to improve something that the you know leadership has already said this is important to us.

Automating Tech Debt Remediation

00:08:23
Speaker
the investments they're going to make are going to be hopefully aligned to the things that they said are important to them. So investments that get made in technology and infrastructure are aligned to whatever the strategic themes are that they've declared.
00:08:36
Speaker
And so you know staying staying kind of close to that well will help you introduce the right and important things to an organization. Yeah. Yeah. Okay. So I'm getting a sense of where... but Tell me specifically, right? So you've been talking at this conference about using Open Rewrite as a system of automated refactoring tools, right?
00:08:58
Speaker
did you How did it happen for you that you were trying to get that off the ground as a project at Morgan Stanley? did you so They said, we want to modernize, and you go looking for something that will help you modernize? or it's very i mean it's i mean I've been in the developer experience, developer tool and developer experience space for quite a while.
00:09:18
Speaker
The introduction of Open Rewrite was almost an accident. and We were talking with you know another company about another product that did something else for developers that we were interested in exploring.
00:09:33
Speaker
And you know that used Open Rewrite in its technology stack. And to help explain Open Rewrite, they introduced Jonathan to us, and we got a little bit of an overview of the framework.
00:09:45
Speaker
And seeing the potential of automating some of the tech debt remediation and knowing the frustrations of our you know thousands of developers that are dealing with you know a constant and growing list of things that they need to do that are not their business requirements. They're these technology debt remediation things. yeah And yeah I started to say to myself, we really need to explore what I called it at the time, like upgrade at scale. Like what is the the scaled approach to dealing with technical debt?
00:10:17
Speaker
Let's get a group of people together and start thinking about what what what could we do in this space that's fundamentally different than historical approaches to this, which is managing a list of these challenges we want to do, making sure teams are tracking and burning that list down over the year. We want to take the highest priority items. We want to bring in outside help when we need it find tools when we need it. And just you're constantly battling like the book of work you want to deliver it for your business with this technical debt.
00:10:43
Speaker
So we started to really look at that and say, yeah And so this accidental introduction of Open Rewrite had me down the path of what can we do with this thing? Let's let's try this out. What other tools are there? And let's start to like map out the landscape and see what what's available to us, what would resonate with the developer community, what would they want to use.
00:11:04
Speaker
And do we want to start to make an investment thesis about this, something that we can put together, explore, evaluate, and go back to leadership and say, hey, this aligns completely with the strategy that we put forward.
00:11:16
Speaker
And when it's the time to be able to propose, let's go you know bring a product in or go do something, we want to have the argument made. And then it's up to, is there budget and is it important enough? right it's it's you know There should be nothing about the merits of the approach that is questioned at that point.
00:11:33
Speaker
So, but but if there's no budget or it's not important enough relative to priorities, fine, because we're not doing it. But doesn't mean it's the wrong thing to do. Like, well um my goal is like, let's see if, what's the best we can do with technology to solve this problem?
00:11:45
Speaker
And then we can decide as a group, or the the leadership can decide as a group, Is this worth investing it it's worth spending money in, putting the budget, the cycles, the resources into it?
00:11:56
Speaker
Or are there other more important things to do? right that That's kind of where we decided to take it. Does that mean your job is to find like potential improvements? Or you on the hook for, go out and make it better?
00:12:09
Speaker
um no seven this So my my main focus is driving developer productivity. We have you know a collection of teams that are subject matter experts in the various programming languages that are commonly used at the company.
00:12:22
Speaker
They build curated open source with some proprietary ah libraries, like stacks of libraries, that the majority of production applications are built on top of. you know between the libraries, configurations, and things that were chosen, these are matching the architecture standards and the security the you know the security rules. They you know may be connected to internal data that's commonly used, whether it's company, HR, not HR, it was like a corporate directory, so like modeling that out. So everybody who uses you know people records have the same you know same way of interacting with it, or standards in logging, standards in secure logging, whatever it is that we're doing.
00:13:01
Speaker
um we provide those you know stacks across the different languages. And so that's my main focus. And obviously our customers, our developers internally, or are we need to keep them up to date on the latest yeah know versions of those stacks. And so we know the pain they're going through.
00:13:16
Speaker
As app devs, we're trying to make them always more productive and introducing commonly used features, maybe UI component libraries that everybody's building their UIs on, like that kind of stuff. So this is a common problem that people have around you know maintaining their code.
00:13:32
Speaker
Therefore, you know it's an obvious extension in my mind that that we want to do anything we can to possibly make their lives easier. And you know seeing the potential of this tech, I made it a mission of mine to figure out if this is tech that needs to be introduced to the developers. like so the you know We sit right

Engaging Developers and Intrapreneurship

00:13:50
Speaker
next to, I guess, like the shared dev tooling team and the DevOps team.
00:13:54
Speaker
I used to be on the DevOps, I used to kind of lead the DevOps tool chains and things like that. I'd say I shifted left of DevOps because now I'm like doing development. I guess that's before DevOps even. so say i didn't think you could shift left of DevOps, but I did. so so i'm um yeah We're all like a collectively responsible, I guess, for the developer productivity and the outcomes in the company.
00:14:14
Speaker
um you know This fits somewhere, but you know for me, it was more important that that its voice was heard than who owns if that makes sense. It wasn't like, oh, this is definitely my mandate. right I don't know whose mandate it was. It just needed to be presented to the community and and to see if it was something we wanted to do. Give it a chance as a possible solution to move you forward. Yeah, yeah.
00:14:34
Speaker
I can see that. and I think I'm going to allow myself one one more cynical point. okay You can be cynical the whole time. as Well, i'm going to try I'm going to try and get more optimistic. I'm not normally this cynical.
00:14:45
Speaker
It's just I've got bit jaded from working for certain banks. And it's like, it sounds like, i mean, you could you could easily sit at a department like this and say, all I want to do is make sure all our projects are using Spring version X.Y harder.
00:15:01
Speaker
And now I have to go and run a pilot and talk to management and convince them this is worth doing and talk to all developers and get them on board. It seems like one of the problems with an organization that's so large is the thing you're trying to achieve seems so small and the knock-on effects are so large.
00:15:21
Speaker
and the The number of different departments you need to talk to, the number of people you need to get interested, in the amount of capacity you need to build. I guess I'm exasperated by that, but you see it as as a role you can take on and like really sink your teeth into. it if If I tell you I'm responsible for the productivity, yeah were elements of the productivity of 15,000 to 20,000 developers, this easily is something that will keep me up at night.
00:15:45
Speaker
If the reason they're not productive is they're you know working on manually fixing tech debt instead of some something that can make you know and enhance the business. right If they're competing priorities there, um So I easily see you know my role there. Number two, I'd say that us as providers of curated stacks, including by the way, like you you know internally developed APIs that are designed to connect with firms infrastructure, you we have challenges of getting people to upgrade on the latest versions of APIs that we produce and we ourselves as library creators would want to provide an easier upgrade path for them. So creating open rewrite recipes that correspond with our own changes to our own libraries
00:16:24
Speaker
And I think that's that's a use case in and of itself where we might become the delivery mechanism for a lot of the language-specific recipes that would go into a marketplace like this. yeah okay um And therefore, it's very much core to my mission.
00:16:37
Speaker
so And so, yeah, I mentioned it earlier at the conference. yeah Technical debt remediation is probably one of the most demoralizing, this goes back to your cynicism, is the most demoralizing, underappreciated, under-rewarded discipline in the software ah you know in in kind of software development lifecycle. It's just people you know neglect it.
00:16:57
Speaker
They don't like it, they don't like being told to do it, and then you know maybe maybe there's a disenjoyment premium to pay for people who do that. yeah my my My goal is to kind of let technology change that narrative a little bit and make it, A, fun, because you can see yourself doing this and it affecting lots of code at a time, um but also just ah you there's new ways to do it now, and we we need to change our attitude towards it.
00:17:21
Speaker
Do I think, and this is the real question, is like, Will this help us now do a targeted push and just get farther along on that curve of of of like, don't evergreen or whatever? Or is this going to fundamentally change the equation so never again will we fall behind?
00:17:36
Speaker
That's a question I don't know the answer to. I kind of hope that we end up you know all the way where we're now in this you know self self-healing environment of just always staying up to date. But people have been talking about that forever.
00:17:47
Speaker
it's You do a push, and at some point, you know you're on to another thing, and some stuff falls behind. So I think hopefully we get to a place where you know, the library creators who make a breaking change will produce an open rewrite recipe or some other technology to get people off. You see it with code mods in JavaScript and you see it with some of those. It would be great for everyone who has their stuff consumed to give you a solution instead of a problem and they have to when they have to like get you upgraded to the latest version. it's too hard now.
00:18:16
Speaker
yeah Yeah, I've seen this in some like um small fledgling languages, like I'm going to say Gleam and Elm's done it, like where a new version ships and it comes with a tool that will rewrite your ah old code.
00:18:30
Speaker
There is some hope that we could take what we do all the time, take something boring and rote and teach a computer to do it for us so we don't have to worry. But, okay, so let's get into specific strategies then you've seen to deal with long-term technical debt. And we have to start with the the host of the conference, Open Rewrite. Yes.
00:18:51
Speaker
So we've done a podcast on this already with Jonathan. But from, mean, we talked about abstract syntax trees and things like that. But from a kind of higher level thing, what what are you actually using it to do? Is it just simple stuff like upgrading spring libraries? Or how ambitious are you finding being with that?
00:19:10
Speaker
So it's not simple. It's not only that. So obviously within the marketplace, there's like 3,000 recipes. And yeah there's no way for us to know exactly what to use what on what.
00:19:21
Speaker
um But we we are taking the tens of thousands of repos that we're exposing to the platform and we are trying a bunch of things out, whether it's Terraform applying best practices to certain infrastructure that we have.
00:19:33
Speaker
I think there's a whole there's a whole opportunity for that really with ah yeah the non-Java languages too. The JavaScript's coming, C Sharp's coming, Python's coming. But on the Java side, We have combinations of people using the out-of-the-box recipes and just let's get the stuff that's been on our to-do list for a really long time done.
00:19:51
Speaker
And then there's people with custom they they're people are writing custom recipes. We've built ah ah you know an inner source repository where a developers are able to contribute you know their approach to some somebody's doing specific application frameworks that are internally developed. they have yeah They're doing exactly that vision of like,
00:20:07
Speaker
writing the upgrade path for people and publishing it into the marketplace. And yeah we have other cases where we're trying to switch build tools. We have a legacy Java build tool. We'd like everyone to move to kind of the latest versions of Gradle and whatever, and we want people to do that.
00:20:21
Speaker
ah It's historically been my tre dreaded by developers. It's the it's a really big change to the way they work. can we create a recipe that would automate that? So we've spent a lot of time working on that, and that's been actually one of the most popular recipes we have, a couple thousand repos that need to move over.
00:20:39
Speaker
Is there enough consistency? Because you've got like tens of thousands of repos. Is there enough consistency of these problems that you can identify a large class of things like that and automate it away?
00:20:49
Speaker
There is. i think that the trend is certainly to consolidate repos also. So at some point there's, you know, the the desire is to have way fewer number of repos than than than we have. Obviously there's a lot of like code that could be retired, know, projects that are naturally consolidating into platforms and things like that.
00:21:07
Speaker
But yeah, there's there's there's tons. When you're dealing with numbers like that, you find, you know, a significant amount of just about anything. When have like diverse sets of business problems being solved by by by the organization,
00:21:19
Speaker
you're able to find you know enough of really impactful things to do, ah starting yeah with their core Java support and then moving on to some of these other languages as they become available. There's there's plenty to do. And my goal is really make sure that the leadership sees the size of the problem with the plenty to do thing, and then make sure that the actual people doing the changes are the developers and the architects in very local areas of the org. So the i might run i might run some analysis to say, hey, there's like,
00:21:52
Speaker
25,000 hours of recoverable capacity to give back to the dev teams if we automate this work. But I would expect that that work would not be done by a central team. It needs to be done by the developers. And then when you get down to that, the numbers are much smaller. This team might have 500 hours of of recoverable capacity. This one might have less. you know You really need them to own the problem.
00:22:13
Speaker
You can't just let some central team solve it for everybody. So my goal is get them the tools that would make them the most productive, but get them excited about using the tools so they go do it. How do you do that?
00:22:24
Speaker
and so Because you're talking to management and you're talking to developers, and those are two different audiences you need to get. You need you need to do both, right? you And you need to do both in parallel. You need to have developers you know banging on the door to get their hands on the tool while you're working with leadership to make sure they understand the value the tool can offer. and so we have we have ah an excellent network internally of kind of change agents who are eager to, we everyone wants, from a developer perspective, everyone sees the pain.
00:22:55
Speaker
They want to solve this problem in a fundamentally different way. And so, you know, we're we're working with them to, you know, their enthusiasm is infectious and we're working with them to make sure that they have access to the tools and they have access to materials that can, know, help present.
00:23:10
Speaker
I was doing some presentations and and now there's other people doing the presentations in in different regions. They're very motivated to to to try it out. And while that's going on you know working with leadership to say, let's let's set the bar for what the hypothesis we're looking to test is. like What would need to be successful for us to say, this is worth us spending some money to to work on next year?
00:23:32
Speaker
Or do we want to continue? Or it's really good idea, but we don't have the budget, or we don't have the prioritization. So, you know keep it in the back burner and just continue doing as much as you can the other way. right Those are, the let's say, the two options.
00:23:44
Speaker
um And then developers are asking. They're asking their leadership. When you speak with kind of the leadership circles in the different departments, you're able to share the potential here. You want you want that to get ah want to create a lot of awareness. So, at the end, it's not just like ah yeah yeah whatever the product is. right It's not a question of,
00:24:03
Speaker
um you know You don't want to be like, okay, we want to bring this in next year and have people go, what's that? ah You want people like, oh, for sure. right yeah You want them to fully be aware of the value yeah and and be willing willing to use it.
00:24:15
Speaker
Right, yeah. So you are, I think that one of the skills you have there, which doesn't come naturally to geeks like me, is you are actively thinking about selling the idea to different audiences, right?
00:24:31
Speaker
yeah I'm going to use the word selling. yeah' it so You are trying to get someone to adopt an idea. that Because I'm a central ah function, the ability to... ah The money is centrally funded from the entire organization.
00:24:48
Speaker
And for the most part, yeah we have a very clear mandate of the, let's say, the toolkits, the stacks that we're you know helping supply to the organizations and all that. when There is a big thing we want to do new.
00:25:02
Speaker
It needs to go through the right the the right process to get investment dollars allocated to it. And because we are in the central team, we tend to do things centrally.
00:25:13
Speaker
So you must be out there creating awareness. yeah We're not doing a tiny thing for a tiny project off to the side. that That doesn't scale very well as a central team. So in order to do things, yeah we have to think big when we do it.
00:25:25
Speaker
Do you find Hello, you? You are almost another startup within Morgan Stanley, like whose job is to, as you as you see with like companies around it, your job is to kind of go to internal conferences and pitch your ideas to people.
00:25:41
Speaker
I can tell you, i I saw the word somewhere, intrapreneurship. Intrapreneurship. I don't know. But but um I think it's it's fun to be able to...
00:25:53
Speaker
It's fun to see people get excited about something that that you're excited about in general. like So if I'm excited about something, get other people excited about it, that's it's validating that it's a problem, it's it hits a pain point.
00:26:04
Speaker
ah it's Not my day job, but I guess anything related to developer productivity could be my ja my day job. So ah yes, I have to do it. um i don't think I think in in certain cases, I've had this happen a few times in my career, something really important doesn't have the voice it needs.
00:26:28
Speaker
And therefore, it just won't get done. It's not because it's not, just it just doesn't have the right voice it needs. It doesn't have the right champion behind it. So it's not getting the awareness it needs to get. It's not getting the support it needs to get. know, I felt this one was, you know super important because it it fundamentally addresses a problem that the old way of addressing is not compatible with, you know, the growth of the problem and the new tools that are out there.
00:26:50
Speaker
Yeah, yeah. I felt like this this had to be at least give it our best shot of getting people aware. I don't know where it would lead us. i don't know if it would mean I would need to you know increase the size of you know the organization so we have people dedicated to supporting it. That's just like consequences. I don't care if it lives somewhere else.
00:27:08
Speaker
I just think as developers, and then as a former developer, a developer like I want this thing to help my own code. So I imagine everybody else wants it too, and it just becomes ah you know kind of like that. So I do...
00:27:20
Speaker
i do When I do my travel, I tend to have like a couple of roadshow topics that i speak to, and it's either career advice for early early career developers. um and Occasionally, there's some big topic that's like on my mind and becomes something. and this is This is currently what I've been doing over the last year as we've been trying it out. yeah Look, we tried it out. Look, it could it changed code. I will you know pick people from the audience and ask them like what department they're in and pull up their code.
00:27:46
Speaker
and run run something that yeah runs something that points out a you a fixable opportunity in their code and just the do a pull request for fun from the from the room. I'm sure they decline it, but like some some have approved it. like Simple fixes just to say it's that easy.
00:28:01
Speaker
you know go Go see if there's stuff on your list of tech remediation that we can get out of the way like that shouldn't dominate your backlog. Yeah. and This I definitely get, that that feeling like you found a great idea and you don't think enough people know about it. yeah And it's just like the burning drive to stick them out, the idea It's fun. It definitely feels entrepreneurial at times. Yeah. And I think it's important. I don't think it's limited to any one person. I think anybody could do that with anything. it's ah You find something really amazing. You want to show it to other people and you want them to, you it's not it's not in my job mandate to do it. I've done it a bunch of times in my career over various different things.
00:28:42
Speaker
You know, it's led me down the DevOps pathway back when. it just becomes a ah feature, like ah a side thing.

Balancing Tools and Governance for Tech Debt

00:28:49
Speaker
I have my day job, like, then I have whatever the side thing is that's ah that's also, you know, occupying some of my time, which is interesting. Yeah, I do sometimes think that In order to succeed in a large system, in any large system, you have to, firstly, you have to make space to do something different. and But you also have to get a certain joy from saying, this isn't really my job officially, but this this is something that will change. It's almost more fun when it's not your official.
00:29:14
Speaker
Yeah, yeah. and i'm wondering how then then you Then you get the project, then you're on the hook for delivering it, and then it is your job. And then there are stakes. No, but it's fine. It's ah it's important. And you if if there is someone else that wants it and wants the exposure and the career growth, great, yeah by all means.
00:29:31
Speaker
um But it's it's not going to die on the vine because no one's you know no one's advocating for it. At least just some, whatever the idea is, people should have the ability to yeah know go out and hopefully they have ah you know some sort of captive audience that they can share it with. And that yeah it's been effective historically for me.
00:29:47
Speaker
Yeah, can that. And for many others in the company. i would What do you think of, because I know some companies that their way of dealing with tech is to just say, okay, I'm thinking of Jeff Bezos here, right?
00:29:59
Speaker
Everyone has to upgrade to this version by this date or you're fired. That'd be great. You have to prove of that. Okay. If they have to, let's say they pick pick like a mandate, like you have a specific thing to do.
00:30:13
Speaker
We have that all the time. like If there's some really important thing that has to be done, it's done. yeah Period. And there's no there's no negotiating out of it if it's important enough for whatever the the reasoning. however Do you want to do it by hand or do you want to do it in an automated fashion becomes the question.
00:30:28
Speaker
and People obviously pushing back. They had releases they wanted to do. They had software features they wanted to add for the business. And now you know there's some really strong mandate for some really, usually a very valid reason why this is now the more important thing to do.
00:30:41
Speaker
You know, so, so fine. So get them the fastest possible way to do it. So that, that's where you want to find new technology. Telling a bunch of people to go, you know, back to their keyboards and kind of battle through it isn't necessarily the most efficient use of everyone's resources and skill. know, if you have, if there are new technologies to help you with that.
00:31:00
Speaker
And so, you know, my mission through this process is to find the new technologies that I think would be most useful. and help expose the developer community. And we're still on the journey, right? But I think that the, know, it seems to have struck a chord with developers and it seems to be, you know, showing itself to be valuable to help with a lot of the bigger problems that people wanted to do.
00:31:22
Speaker
So now I'll tell them, wait, you know, do it this way. It might be easier, at least get you 80% of the way there so your work is the the last 20%. Yeah, yeah. yeah yeah i I personally lean towards that kind of deterministic sort of system.
00:31:37
Speaker
And I can definitely see how at the scale of something like a big bank, Morgan Stanley, the problems that come up repeatedly are large enough that you will see patterns and you can automate them away.
00:31:49
Speaker
But I want to get your opinion on the other side of the determinism spectrum that everyone's talking about right now, which is just make AI do it. Where do stand on that? Definitely the other side of the determinism spectrum.
00:32:03
Speaker
yeah I think AI is brilliant. There's some really amazing things that it's doing for developers, and we're seeing it yeah everywhere. every every yeah the The amazing tools that are coming out, some of which you know many, many big organizations already have their hands on.
00:32:19
Speaker
i think When you look at doing things at a small scale, AI is great. when you and so I find that, like let's say if you let's go go back to like refactoring code.
00:32:32
Speaker
Refactoring code tends to be a very deterministic operation. If you're looking to do specific things to a tree that you compiled, you can do that yeah with a very deterministic way. open rewrite is a great example of that.
00:32:44
Speaker
um and AI can't do that with the same level of accuracy, and it's doing it on much more expensive compute. So there's a place for AI, but yeah what I would want is you know AI to determine what to do in the code, what to change, what recipes to run, and then yeah use the recipe runs that take place separately. So a lot of a lot of my initial journey was just rationalizing the tool space, like what what is out there to do what.
00:33:13
Speaker
So when you talk to leadership and you're saying, we need to get this new generation of tooling in place to help us tackle our tech debt. There's gonna be AI in that and there's gonna be non-AI in that. It's important that people understand what to use for what. It's not, you know, AI is the hammer and every problem looks like the nail, right? it's not it's not it's it's ah you know AI is great with maybe estimating your your your story points or or your your your capacity that you need to do development based on the requirements.
00:33:40
Speaker
AI is great for helping you better articulate the architecture decisions you're making. It's great for checking the yeah another pair of eyes, so to speak, to check your code reviews and that the code changes don't raise any you know alarm bells to what you'd want to do.
00:33:56
Speaker
um It's not a necessarily substitute for humans on that, but it's another, you know should always just have that in a loop too and see if any insight comes out. It's good at re-imagining code bases. So if you want to like completely deconstruct your code base into its requirements and then re-implement it a different way. We have an internal message bus thing that we wanted to replace with Spring integrations or Apache Camo something else.
00:34:19
Speaker
you know and It's great at deconstructing what you're doing and then give you like the the first stop of like how would you reapply that in a different ah framework. It's really good with that. done that. We've done that. We actually did it with AI and we then converted what we found that we needed to do into an open rewrite recipe. so once you see The creative process is super helpful, but the repetitive process is when you start saying, hey, let's mechanize this.
00:34:45
Speaker
Make it deterministic. So I used to divide up the tooling into ah things that that scale very well at very large scale. There things that are deterministic and they run on very cheap compute to things that don't scale necessarily well are extremely valuable and they are less deterministic. They're somewhere deterministic spectrum. I like that term.
00:35:04
Speaker
um and they And they run on very expensive compute. And together you will you'llll you'll need a combination of those tools. to tackle what we'll call like the the optimization of your SDLC, not even just tech debt, right?
00:35:16
Speaker
You'll need that collection of tools. And so it's very important that when leadership gets a pitch, that they aren't being confused by the most shiny tool in the toolbox and that that it's going to do everything. like ah you know I'll be the first to tell you, like Open Rewrite is not going to convert your Perl code into Python.
00:35:33
Speaker
AI can get you some of the way there. But you know you don't need AI to migrate, you know let's say, a version of X to Y of some library because Open Rewrite can do that. so there's isn't there yeah It's necessary to to view the the arsenal of tools you need and have some sort of like combination in your head.
00:35:51
Speaker
And when you go ask for investment, you need to be aware of that like duality of of that that could everything existing together because at the end, they're not looking for an investment in a tool. They're looking for like an investment in solving the problem.
00:36:04
Speaker
And that's going to be a combination of things. Yeah, yeah. Do you find that this... Like, you must find some people are more enthusiastic about one than the other. do you do you try... I mean, do you try and corral them in that side and find some...
00:36:17
Speaker
I think there's a lot of people that have done great things yeah with AI, both both internally developed and off-the-shelf solutions, um who are less familiar with maybe the the Open Rewrite ecosystem.
00:36:30
Speaker
And there's a lot of people with Open Rewrite who you know think it solves everything out there and therefore maybe aren't aware that some would be best. My my goal has always been, and even though I you know obviously launched ah you know an effort to get us the the Open Rewrite ecosystem brought in,
00:36:46
Speaker
My goal is to make sure to never talk about this as like this is the mission. The mission is, yeah know here's the whole landscape. yeah i want i always want to see the the kind of slide that is inclusive of both categories of problem solving so that everybody can make up their own mind. But certainly don't confuse A for b because that's what you saw first. yeah like that's That's the worst.
00:37:08
Speaker
It'll take you 10 times as long. And then all this automation benefit, you're wasting time she's using the wrong tool. so yeah You've got to keep your eye on the broader context. yeah and you have to And you have to make sure that the community who receives the marketing and the sales, as you put it, is aware of the broader context so they're not just enamored by the better presenter of the better tool that day. like yeah They need to know what to use. And one of the things ah large companies tend to have is a...
00:37:34
Speaker
a governance process for tracking and this tech debt, whatever the process is and there's a yeah they They keep track of, like here are the big programs of work that we need to do. We want to eradicate these old versions of run times.
00:37:44
Speaker
want to move these versions of like the OS. We want to move off of these versions of database, whatever that list looks like. um the The real cultural change is the people who are accepting into that list, because those lists get reported to management and to the you know the the application owners, like your apps are falling behind on whatever our targets are for this, all that tech debt, right?
00:38:05
Speaker
The people receiving that list should not take any new items onto that list unless there's a clear automation opportunity being presented along with it. So if someone says, hey, um the you know product X, we believe we want to stop using in the company.
00:38:19
Speaker
you know So you can find an alternative and you need to, um here are the projects we identified using Project X. We want we want to take that out. So if that happens, usually the the governance group will take that, they'll add it to their list and they'll start notifying app owners, some new work has been added to your plate that's this mandatory work.
00:38:37
Speaker
whatever Whatever the process will differ by organization. but You know, those people should reject it unless there's a clear automation strategy on there. And for them to have that automation strategy, they need to see the full landscape of tools to know what they should be thinking about when they try to automate If they only know about, you know, andt open rewrite, if they only know about AI, then their thinking through the automation is going to be They're not going to know enough about what's out there. So you really want the community to be aware of the tools because part of their productivity comes from choosing the right tool at the right time.
00:39:07
Speaker
Yeah, yeah. It's kind of almost hinted a new kind of software role, almost, because we're so busy building the thing we're trying to build, there's There's a kind of change management component to software which is in itself a discipline of knowing the tool set, knowing the techniques.
00:39:27
Speaker
We all have a bit of that as programmers. but it's like ah It's like an intuition that we need to make sure that the developers have. um They need to know you know when to play around with the code assist tool and when to you know not because it's just going to give you the wrong answers every time. yeah I was actually playing around once. I have and some open source project that I'm a maintainer on that we released ah And it ah I got to a point where I needed to, you keep getting these updates, you know there's invulnerability, you have to update something in the Node.js ecosystem, some JavaScript.
00:39:58
Speaker
And like every time I would try to start, i would end up in some dependency hell that the combination of things that resulted were not gonna do it. And i kept going to you know I kept going to a code assist tool in my ID and I'm like, and this was at home, i how do i how do I fix that?
00:40:13
Speaker
And it was give me some other advice that would just still fail over and over and over again. yeah and I'm like, the hell with that. I'm gonna go to ChatGPT, again, on my home computer, um for like an outside project, I'm gonna go to ChatGPT, I'm gonna give it my my entire like package JSON. I'm like, this is the JSON file, and these are the errors.
00:40:29
Speaker
And um you know it came back and just gave me a ah correct combination of dependencies. yeah And it's like, sometimes the best tools, you know Just go to the raw the raw AI. Did it for me better than all the tools that I was trying out before.
00:40:43
Speaker
I'm genuinely surprised by that. It was frustrating because I would spend like every Sunday morning, like after coffee, I'd have a little bit of time to myself. I would say, maybe this is the weekend I'm going to try and get this thing upgraded. And then I would get to this point where it's like, okay, get to the same dependency hell. I ran out of, like life caught up. I didn't have that much time.
00:41:00
Speaker
if so So finally I tried this approach just to, because I'm basically desperate to not spend a lot of time on this problem. And that that's the one that works for me. So I'm like, it's fascinating. That really surprises me that you got an accurate answer. It surprised me too. Rather than an answer that looked the right shape. Yeah, well that's the problem. But yeah, so it got me over the impasse. So if you ever stuck, you know, and it worked for me for what I needed to do. So I just moved on.
00:41:22
Speaker
But it was just there's another thing when you're really desperate to to try, but it's a combination of tools. so Sometimes I found this with parenting, actually. The worst problem you can have is to run out of options to try. Yes, I don't even go into parenting. Definitely, yeah, definitely. yeah Let's just stick to the easy stuff like tech debt.
00:41:41
Speaker
Yeah. Okay. So let let's let's turn the spectrum into a triangle. Okay. Because there was one more point you made that seemed like another approach to this generally, which must come into the picture somewhere, which is you were talking in your talk about um having centralized platform teams and a way of dealing with versioning to say, okay, for some infrastructure stuff, we will have a dedicated team and you use them and then the problem becomes they can upgrade one or two repos manually.
00:42:07
Speaker
Yeah. <unk> um I'm getting a sense you're going to say that is another piece of the puzzle. Where do you think it shines and where do you think like you want to go to deterministic or gen AI type solutions?
00:42:20
Speaker
ah There's two things. so If you have a central platform team and their job is to you produce a singular stack and everybody has to be on it, yeah you potentially can be in a very good place in terms of staying up to date because they are maintaining it and they're preventing you from consuming their older versions and all that.
00:42:40
Speaker
it becomes a very opinionated stack. So people, depending how uniform your business problems are, depend like sometimes it's not business problem specific, but if it is, then you know you probably can't do one in opinionated stack for everything you're doing.
00:42:55
Speaker
But if it's fairly generic stuff, then you can. And then you will solve your your tech debt problem because it's only in one place. Like a giant monorepo with you know a single choke point to these dependencies will give you a better outcome for the thousands of developers working on that giant monorepo.
00:43:10
Speaker
That's great, but that's not achievable for everyone all the time. um So I'm not sure if you meant that kind of central team, or you mean the central team that's going to do the upgrades for people. i'm I'm thinking like... Even there are thousands of repositories. If you find... I mean, you're looking at this pattern of 20,000 repos and you see that 12,000 of them use Postgres.
00:43:27
Speaker
Right. Okay. So that's central team. if There are a lot of companies that offer the services there are a lot of companies who hire the services where they'll be, ah you know, you get some consultancy in who's going to look at a problem like that. Let's say tens of thousands of repos and this thousand or two require an upgrade from a, let's say, let's take a simple example. You have a database version that needs to change.
00:43:49
Speaker
There's a driver involved. There's some SQL dialect changes. There might be some Java API changes associated with the driver change. I'm making up an example, right? And you can either have all your talented developers like stopping the world to go work on that, or you can hire an outside company that's just gonna go get access to the projects and polish up.
00:44:08
Speaker
This is a pre-AI, right? They'll go get they'll go get the the project, they'll polish up a pull request, send it in, and that's the service, right? yeah And historically, i've I've heard it described as like an upgrade factory. like That's the term that gets used.
00:44:20
Speaker
And that was great because it certainly limited your developers brainwaves on these like kind of simple commodity problems. But it doesn't scale because you know just there's there's the no end to the number of problems. And developers will never take ownership and responsibility for their code if someone's going to come and clean it up for them all the time.
00:44:37
Speaker
Yeah, yeah. I like to refer to that as the F word, the factory. And I think that the yeah anyone who has a factory clearly has the kind of budget they need to look at some of the new generation of tooling because that's the budget you'd use.
00:44:52
Speaker
So to the extent that's possible, it won't be possible with everything for sure, but that's a good place to start looking for budget for you know investing in tech tools. but you will need developers motivated. Just like you'll need developers motivated to merge in those pull requests, you'll need developers motivated to use these new tools. so But i definitely, central teams, they've been helpful. If you are on a tight deadline and everyone is too focused on something else, I'm not gonna discount it completely.
00:45:17
Speaker
I think longer term, there are technologies which should take the place of most factories so that they're only really used where you have to have a human doing some very sensitive work or whatever it is, and we just can't find a way to automate it. Then go yeah go go do it. but The default should be, can this technology automate this problem?
00:45:33
Speaker
And then then you go back to that. Right now, we're in that transition phase. There's people still doing it. This technology maybe not rolled out or not mature enough for every problem in the world. But over time, I think that you know a lot of that kind of hiring humans to do repetitive tasks goes away either by AI or by like massive rescale, yeah yeah upgrading at scale kind of tech.
00:45:53
Speaker
I always think as programmers, our job isn't to do work. It's to teach a machine to do work. Exactly. Yeah. So you're you're hinting on, you're bordering on something I've always, I've often seen, and I've wondered and I want to talk to you about, which is um I have seen banks where they want a new initiative and they just can't get it done.
00:46:13
Speaker
um And you know, they've got the budget for it but they can't make it happen because of internal problems. And what ends up happening is two or three guys work at the bank, quit their job, get a contract with the bank to build it independently as a startup.
00:46:28
Speaker
and then sell a license back to the bank. And that actually works. That approach works because it just clears away all the admin debt. right So let's start by saying what you're asking what you think of the bud-off approach to software development. I think it's it's clearly happened over the over the years, like in the industry and not in any specific industry. I'm sure it's happened everywhere where there's friction to doing something. A sufficiently large company. But again, what you really see is passionate individuals who see a real problem as an opportunity to fix it. And they think it's probably an opportunity to fix it in more than one place than where they're working. And they start a job. They start to go develop that idea and you know solicit investment. Sometimes it's welcome investment sponsored by the yeah the place they left.
00:47:18
Speaker
um but But I think there's nothing wrong with it. um It happens. I don't think it's, you know, large companies with billions of dollars in tech budget have, like, real responsibilities to govern that budget and be, you know maybe it doesn't move at the pace of a startup.
00:47:32
Speaker
So sometimes it's just easier to innovate without some of those limitations. But I think a lot of the companies are getting much better at, you know supporting innovation from within. There are like sandboxed ways to do it that are safer, for you know that they don't break any of their own kind of concerns around security.
00:47:48
Speaker
But yeah this this this still happens. so My opinion, I mean, there's many times like casually we've had a conversation about something. It's like, it so cool if we went and started a company X that did this because it's so hard to to you know find the right solution or whatever. but ah it's ah But nothing wrong with that. Kudos to people who make it happen.
00:48:06
Speaker
there's it's It's completely okay to have that take place from time to time you know for for companies to benefit. without necessarily you know the the and like internal things. I was trying to think if there's any kind of analogy I can create to that. But I feel like you want to have unfettered access to create a product outside of your customer because once you sell it to your customer, you're kind of you kind of doomed into supporting it the way your customer is using it. yeah think that freedom is very important to give to the innovating community and being able to do it outside is fine.
00:48:41
Speaker
Okay. Yeah, yeah. yeah i There's a business model. that but we can We can tie from that into another business model because because what often happens with those sorts of teams is they branch off from a bank, leaving with a contract to sell back to the bank. It works. They start selling to other companies. And before you know it, you've got a thriving software as a service business.
00:49:04
Speaker
But you also get that, and the nice thing about that is they get a kind of built-in first customer sales contract before they make the leap. But you also get people building software as a service things, trying to sell it to companies like yours. yeah And for the sake of the people who are doing that and the people who might one day start those kinds of companies, as a representative of one of these giant organizations that has the budget, if I'm building a software as a service thing that I think you might like and I look at your sales pipeline, which is at least 18 months, what should I be doing to try and get in your doors?

Enterprise Readiness and Open-Source Collaboration

00:49:42
Speaker
oh i could tell you I could tell you some things anecdotally from talking to colleagues, you peer and know peers in the industry. and They probably apply to most large companies, I would hope, that have like a rigor around kind of supply chain management. They probably apply to company you companies that have yeah regulated industries. but but it's It's very generic, yeah the the types of things.
00:50:07
Speaker
So first of all, I think that the the products need to be like enterprise ready. And by that I mean like the architecture needs to, you're going to have a lot of a lot of things that security is going to want to look at around the sensitivity of the data, around you know how does it connect to the internet if it's going to the public internet and it's a SaaS product. ah like Is it encrypting the data in transit? Is it leaving a lot of data out there? you know what's the the the process that's being you know What's the process that happens for you know the connectivity between what you have and what they need you know external to your doors?
00:50:42
Speaker
right So there's there's definitely an element of that. I'd say that there's a need for you know good, robust administrative roles, like the the whole like role-based access control.
00:50:54
Speaker
It tends to be very primitive when it's first built. A lot of companies, and some enterprise-first companies get that right earlier in the stage, but a lot of a lot of products, not just SaaS, but like in general, there's like and know it's usually like admin true false and that's it. And they have like a tremendous amount of rights and you know and in certainly you know in in large regulated places there tends to be this principle of least access. We want to give people as little access to you know any features as you possibly can because they shouldn't have over-provisioned access.
00:51:28
Speaker
And what that's caused in a lot of places, I wanted to open source some stuff around it also, but like people are shutting off admin access to the tool and building wrappers around the whole tool, like when it comes to privileged activities because they need more more flexible admin access granted subjectively for certain things. so if you're yeah it's It's with all the developer tooling yeah know that people have to do that. And they're building self-service portals to give to developers.
00:51:55
Speaker
And before they operate some task on behalf of the developer, they enforce their own logic around what the developer can and cannot do to what project or not. so but like you know Getting that right is very important. So speaking with a design partner that understands the organization, the layers of access, organizational awareness in general. Like um someone will come with a reporting tool and the reporting tool will be, ah you know it'll show you kind of like your individual project and will show you all the projects.
00:52:22
Speaker
But usually you need a cascading like concentric circles of different parts of the org that would want to see a report relative. you know yeah They'd want to see things differently and making sure the reporting function is robust enough because it's about that right manager seeing the value the product gives And it's not always the kind of the person in the cockpit of the whole organization needs to see that big view and then down to the individual, let's say developer, there's all these steps in between. So getting ah like an organizational literacy built into your reporting is very important because that's what sells the product.
00:52:54
Speaker
And so a lot of times you get very primitive reporting functions. But, and and that and that that may make it more difficult for the internal champion of a product to go pitch it to their management because they can't see how it would look you know for that org or for this person who's influential and needs to be able to see it. There's a lot of things like that that that come up.
00:53:15
Speaker
I think that'd be very hard for someone to understand unless they've worked in a large organization and seen all the constraints and then gone off to do the entrepreneurial thing.
00:53:26
Speaker
Yeah, i'd say I'd say they definitely would benefit from some insider knowledge on that. And I also think that this is where if the product has a decent amount of merit and there are like you know incubators or or like like places and labs in these companies that can try it out, getting a design partner would go a long way. like Sometimes it's so okay to not know, but it's having the design partner means that the the right person, the right ah company can help shape the product.
00:53:51
Speaker
And so that that's another way to get around it. yeah without Without just ah coming with a finished product that is doesn't hit the mark on certain organizations, it might just make the sales process more difficult.
00:54:02
Speaker
Yeah, yeah, yeah. Because I think especially I've been largely a small company indie kind of developer for most of my career. And the idea of taking something I've built I love and turning it into enterprise software, it does give me pause emotionally. It's a tall order, but I don't think that it's...
00:54:21
Speaker
yeah The antithesis of what a small company needs, I think it's just you know more rigor in the design. and like Whether it's the level of recoverability needed for a big enterprise to say, we're going to rely on this thing. it needs to be and yeah I need a tighter like service level obligation that we might give.
00:54:40
Speaker
Or whether, for example, another one that comes up very frequently. is ah you know I can only, <unk> I'll give you like a sealed container and you'll run that in your environment. um Sometimes it's so complicated that that's the black box you kind of want it and other times I'd rather just be able to you know get the, i don't know, the jar file and run that and then containerize it myself because there's too many nuances to our environment that aren't quite like the The black box isn't helpful.
00:55:07
Speaker
So being flexible about that stuff makes a huge difference also. Just ah some things assume you can run everything as root. like No controlled environment lets everything run as root. Yeah, you're not going to sell that into a bank. But it's it's it's it's it's so common. And like you're you're doing this sales cycle and you're working with an enterprise. And like once you hit a roadblock like that,
00:55:25
Speaker
It's a month or two of getting it on someone's product roadmap, getting it approved, getting security to sign off that it's been done correctly. That's like an extra four months of time just because like no one thought that. So again, goes back to the principle of least access. If you don't need something to run as root, make it not run as root.
00:55:41
Speaker
If you don't need something, don't just do it because it's easier. um or you'll like you'll alienate a whole audience that for them it's extremely important that these privileged accesses aren't granted to you know outside software or whatever. yeah i'm making up some of the examples, but the the know this is its very common.
00:55:57
Speaker
Or for example, if you If you need to provide config options, you know make sure you're being flexible about the design of that. Are they coming in environment variables, flat files, databases, whatever you need to do?
00:56:08
Speaker
Don't only give one option. You never know when someone has a different way that they manage those configs through their infrastructure management. They want to send it in a certain way. yeah The more flexible you are, i think the better designed your product is.
00:56:20
Speaker
And it also is more inclusive to some of the more yeah restricted environments it might need to run. Yeah, yeah. The theme that runs through all the things you've been saying here is management, developers, large organizations you're selling to, you've got to understand your target audience. Yeah, and understand the disciplines that they that they are that are important to them, that they adopt. and you know And adopt those disciplines, you'll understand your customer better, where where that's a possibility where that's appropriate. Yeah, yeah, okay. there's So there's one last piece to your you know huge suitcase full of ideas, which is we talked about like selling stuff.
00:57:02
Speaker
the The antithesis of that, the other end of that spectrum is just giving it away free. You've been doing a lot of stuff with Finos, which is an open source organization for financial software, right?
00:57:13
Speaker
I understand the acronym and the headline, but tell me more, like what what is it? What is it actually? so Finos is it's the FinTech Open Source Foundation. It is part of the Linux Foundation.
00:57:26
Speaker
It emerged in, I want to say, 2000 and I can't go back to the days, probably 2015, 2016. It can't be 10 years old yet unless I'm just, that's scary if it is.
00:57:43
Speaker
um At some point there was a ah yeah desire by some financial services to launch a ah communications platform that one of the banks had built.
00:57:54
Speaker
And in that process they decided they were going to put the source code in in kind of like an open source place so that no bank that wanted to use that would feel you know unfairly disadvantaged because they didn't have the code. okay And that became like the first like cross the The first recent cross-financial services yeah open source foundation, over time that grew to be a general sort general purpose open source foundation. it was originally around banks creating plug-ins for the messaging system.
00:58:20
Speaker
It grew into a much more general purpose one where any of the financial services companies and their vendors and their partners and regulators, whatever, we were able to collaborate on common problems in an approved way. It totally changed the attitude um associated with financial services and open source. There was stuff going on.
00:58:39
Speaker
But this became a very big force amongst the industry to be able to mutualize some of the challenges that they had and work on them together. Things that were not forms of competitive advantage. so anything and these are like Anything from I've got a visualization framework, I'd love to open source, other people can use it. Maybe it's specific to financial services, it's a high density display, very very like the trading screens.
00:59:01
Speaker
Maybe it's a ah framework that can control how you commit things to GitHub so that they are going through whatever the bank's restrictions are. It's like a special proxy for that.
00:59:13
Speaker
um there are There are other ones that translate data between multiple data models. There are some building that are kind of like a common domain model around the financial concepts that regulate you know the regulations like to reference so that you can normalize the data.
00:59:26
Speaker
It's a bunch of things, right? Things that were, aren't sources of competitive advantage and better worked on together. Another one, for example, is the controls you would apply to your cloud infrastructure. Just, you know, ah you what is the financial services like they tend to want? You can open source the tooling around enforcing those controls and applying them. I think it's a great it's a great thing to have the ability to do that.
00:59:49
Speaker
um There's a new one on AI now that they're working on some things together. A lot of the AI is like, should we agree on some common guardrails and maybe, you know, mutualize that together as a group rather than each each of the institutions evolving that on their own.
01:00:01
Speaker
The list goes on. There's a lot of things. And it's a it's a great organization where just you people can work ah you know collaboratively across organizational boundaries that have never really been possible. Now, what makes that possible? Because I would have thought getting banks to talk to each other openly is not only hard, but there's someone else in the bank saying, no, don't get go and talk about this openly.
01:00:21
Speaker
i think I think leadership has embraced the fact that just how much open source is already used ah you know within within these companies. and it's Some things are better supported if you can contribute back. so already you know companies using big open source projects would want to contribute back to the community changes that they have. Otherwise, they're maintaining a fork of something.
01:00:42
Speaker
yeah I mean, there's there's probably projects over the years that have had heavy financial services consumption that died in the public because nobody ever contributed back because it was not allowed.
01:00:54
Speaker
And they're probably good ideas that just died over the years because the heavy active community was secretive and it wasn't allowed to. It's a tragedy for something a big tragedy, yeah. To have this happen is really great because it it it allows for institutions to give back.
01:01:09
Speaker
It allows for, let's say, ah you know some sort of regulator wants to do something a certain way, and this allows institutions to collaborate on how they implement the ret. Things like that are now possible.
01:01:20
Speaker
And I think that over over the, it started with this messaging platform, it's moved on to other things, the the value kind of proved itself. So it started as, let's say, myself and my organization and peers and other organizations kind of like injecting the gravitas of open source into the narrative, into the conversation, you now go on these more senior calls and it will come up by itself.
01:01:42
Speaker
And that's how you know it's become relevant and important. And there's tons of articles you can read about. that There's the financial services kind of sea change relationship with open source in the last couple of years.
01:01:53
Speaker
Recently is I think the This year there was there was one i think I did with Business Insider, a couple of them. And it really just, it's it's it's a breath of fresh air into the industry and it's great to see it thriving like it is. That does sound very healthy. Perhaps the last question then, specifically what do you to do to make that happen?
01:02:11
Speaker
Because I'm guessing you could be cutting code, but you're probably not. oh One of the things I contributed needed that upgrade, so I was doing the chat TV team for it. but um what In general, there is a yeah know there's a board governance structure, and we're helping shape the the direction of the foundation.
01:02:29
Speaker
has over 100 members, and you know we're we're very involved in helping really understand like what's its mission at this size? What's the mission for this foundation? What are what are the challenges we want to solve? what What started off as, let's collaborate on the open source readiness maturity of individual companies that were that were members.
01:02:48
Speaker
Maturity is like ah like a given, but you know maybe AI adoption governance as a maturity is the next thing. So now they're looking at at ah at ah creating a separate you know work stream focused just on AI at an industry level.
01:03:02
Speaker
I'm interested in thinking about, well, maybe we take some of our tech debt remediation, which is certainly a commodity commodity problem. yeah Everyone's stuck with it. can we I envision a year from now we can be having financial institutions collaborating on whether it's open rewrite recipes or on other technology to help each other stay current.
01:03:19
Speaker
um That can happen out in the open with a foundation that gives us a a fair and protected and safe place for us to collaborate with each other. These aren't problems that we should be solving on our own.
01:03:30
Speaker
And so I see a lot of opportunities that are coming out of that, but it's really advocating for that. there's ah There's events that they have twice a year where really like every, all the technologists from the industry get together and the partners and the vendors and the, you know, it's a great thing to see thrive from having started know, been involved with this yeah since its inception. So it's a,
01:03:51
Speaker
An almost terrifying decade. Yeah, it's nice that they have a vertical just for financial services. and it's It's really cool to see it. It makes sense. It's such a huge part of the software world. yeah So I get the sense that your job is almost entirely building bridges to places I would find hard to build bridges to.
01:04:07
Speaker
It's entirely fun. I can tell you that. Thank you for building a bridge to me for an hour. And thanks. Thanks so much. It was great to be talking to you.

Conclusion and Acknowledgements

01:04:15
Speaker
Cheers. Cheers. Thank you, Dove. That episode was recorded live at a conference called Code Remix earlier in the year.
01:04:23
Speaker
So I just want to say thank you to the organizers, Modern, for inviting me and giving me some space to record podcasts with their interesting speakers. Modern have been big supporters of this podcast ever since I opened the doors on Patreon. So thank you over there.
01:04:38
Speaker
As ever, you'll find links from today's conversation in the show notes, as well as links to Patreon if you'd also like to become a supporter. And if you want to support us in an easier, quicker way, please take a moment to click like and subscribe and maybe share this episode with a friend.
01:04:55
Speaker
And we'll be back soon with another interesting developer's voice. So until then, I've been your host, Chris Jenkins. This has been Developer Voices with DoveCats. Thanks for listening.