Ninety-nine years is a blink of an eye in the grand scheme of things, but a lifetime in IT. So when a 99-year-old company like State Farm Insurance modernizes its application portfolio and platforms, addressing technological and human inertia will always be parts of the process. Thankfully, they’re challenges that can be overcome with the right training and an organizational commitment to change.
In this episode of Cloud & Culture, State Farm architecture manager Jeff Anderson discusses his journey from writing COBOL applications to overhauling the company’s web platforms, and how that experience helps him with his current mission—getting developers productive on modern platforms like Tanzu Application Service and Kubernetes. Anderson covers the topic from a number of angles, including the importance of knowing your developers, implementing robust training programs, and generally understanding why certain applications will work best on certain platforms.
The highlights below include a lot of useful insights for anybody trying to do similar things inside their organizations, but you’ll definitely want to listen to the episode for the whole story. And for more from Anderson and the State Farm modernization story, you can check out his SpringOne 2020 session: 18 Months to Migrate 800 Applications: State Farm’s Transformation Journey.
Overcoming decades of developer experience on old platforms
“We have data centers with on-prem tech, chock full of everything from mainframes to commodity x86 network appliances, and a lot more. We have mainframes with tons of data on them. We have … VMs with our own custom-created legacy PaaS system. But we also have Tanzu Application Service and Kubernetes clusters available for our developers. And then also we have access to public cloud providers. The latter ones are the more strategic platforms for our developers.
“So in order to modernize and get there, a huge challenge that we face is going to be, ‘How do we untangle these huge databases and monolithic apps that are years old, and get those into product-based microservices?’ Questions like, ‘Where do we host them? Are we going to host them on-prem or in the public cloud?’
“Picture a couple hundred development teams in State Farm immersed in the platforms of which the apps they manage reside, and gaining a lot of expertise in each one of those platforms, and really feeling like maybe they haven't had the chance to branch out and learn about some of the newer tech in the more strategic environments that we're asking them to go to. My team assists those teams by working with them, and we learn by doing through what we call our cloud native dojo.”
Moving to a new platform? Know your devs and connect the dots
“I think one of the most critical things when you come up with a new target platform, or you want to move applications off of a legacy system, is just to know the background of the developers who you're asking to make these moves. ... When we sunset technologies, we know what our developers are used to because they've been consumers of a specific platform for a while. And then you ask, ‘So, how similar is the new platform or technology to what they've experienced before?’
“And really, at that point, you have the ability to understand and tailor the coaching and the onboarding to those development teams. It's analogous to the old saying: ‘Know your customer and you're going to be successful.’ Know your development teams and the platforms that they're moving from, too. And you set a date goal, support from the highest levels of leadership, provide the funding, track the progress and hold people accountable, and it will happen.”
An audio excerpt of Anderson explaining why learning disciplines is better than learning specific technologies when moving to the public cloud.
Transformation is hard, so support is critical
“There's pockets of developers who are really charged up by the prospect of shifting to the left and doing more and understanding more, because IT has been their passion. And when they go to work, they do IT at work, but then they go home and they do more at home for personal projects and stuff like that. ... We do have other developers that I would say aren’t maybe as charged up, but they're good at their jobs and they understand the importance of shifting to the left and learning everything. It's just, you will get some feedback that's like, ‘Wow, this is a lot more to know than what I was anticipating.’
And I think that's why teams like mine exist, and we do a good job in trying to spoon-feed a little at a time for teams so that they don't get completely inundated by everything that they have to do. And I do think that we do a great job at State Farm with not only learning materials and providing a lot of access to different online tools and things for people to learn, but we also have a lot of great teams that are specialized that'll help [other] teams with whatever they need help with—from us doing cloud native dojo, to other teams that coach how to do continuous delivery and pipelines and be agile. We have SRE teams, we've got performance teams. ...
“It is a lot. The landscape of IT today is that there's a lot for developers to learn now, especially as these cloud tools give them access to really do everything. But we have good support in place for them.”
The faster you get to production, the more you learn
“One thing that I'll say has been absolutely huge for us [is] we moved a fair amount of applications to what's Tanzu Application Service now. It was, I think, 800 applications that we got moved in about a year and a half. And when you do those kinds of migrations, you're kind of like, ‘OK, how much can we ask for development teams to change and to maybe adopt? What kind of things do you mandate?’ You want to be careful because all the extra stuff that you add, you maybe jeopardize your date goals.
“But one of those things was mandating automated software change deployments. So, basically, application teams have pipelines that they can run where they can deploy a change in minutes instead of what used to be days or weeks. I think that has been one of the biggest things that has increased developer's happiness. … I think if you can provide a system and support them in [proving that their code works and getting it into production] super fast, that's a huge thing.
“And I would say that's critical also in learning, as we really encourage learning by doing. So whether it's a system like Tanzu or Kubernetes or public cloud, having that automation and the pipeline and the speed to get their applications to test and then eventually to production, to be able to rapidly prove how application features and technologies work or don't work, failing fast. I think that has been one of the biggest things to really help increase happiness with our developers.”
About the AuthorMore Content by Derrick Harris