Cameron Philipp-Edmonds: Danielle, do you have anything to add?
Danielle Roecker: No. I completely echo Jay's comments.
Cameron Philipp-Edmonds: All right. Fantastic. What have been some of the challenges of switching from a waterfall mindset to an agile one?
Danielle Roecker: I think it kind of boils down to the technology and the people when it comes to our challenges. From a technology standpoint, our mainframe systems just tend to be a lot bigger, bulkier, a lot more complex for us to work with. So trying to really look at that in some new ways and look for as many efficiencies. Then on the people side, we've found there's kind of two groups. There's those choosing to move to agile, and there's some in the mainframe environment that really have no desire. So trying to get their mindset around agile and really trying to educate them, teaching them what's really a lot of the basics of the agile and how they can use that and how it's important.
Cameron Philipp-Edmonds: You talked about having the right education, the right knowledge, and kind of the willingness is kind of the challenge there, but is there a specific aspect of the agile transition in respect to legacy tech that often proves difficult for most companies?
Jay McFarling: This will be really specific, I guess, but at Nationwide we've predominantly adopted Scrum as our preferred method. We do implement some other things in there, but what we've found is when you break down the work, it becomes difficult in a legacy system because things are bigger and bulkier. I guess the way I would define the challenge here would be how you define working software. Within a two week sprint, the goal is to have working software at the end and that tends to be a difficulty, a struggle for many people utilizing Scrum for the first time in a legacy system or mainframe technology.
What we've had to do is really kind of redefine what is that working software and trying to break down some of the patterns and feelings of developers that you can break things down into smaller chunks of work.
Danielle Roecker: I think that also goes along with one big transformation is the communication. Teaching our agile developers, agile teams, as well as our stakeholders and our business, what it means to work with an agile team and what they should expect to see. When they come to see the work traditionally, they would have seen the entire project. When they come at the end of two weeks and they want to see working software, understanding that this is a small piece of it and that this is mainframe technology, so maybe work our way through the flow of the system, showing them what can impact them, but not necessarily this great looking web development, new website, like a more object oriented team might have.
Cameron Philipp-Edmonds: What are some ways that teams can better modernize their development practices?
Danielle Roecker: At Nationwide we have been going through a project called "COBOL Modernization" and the point behind that and the reason that we really feel, in general, for others it can be important, is modernizing the tools. Jay has kind of mentioned bringing on new developers and trying to be able to on board them.
We're finding that there is a complication with mainframe development, to be able to just switch between. Maybe you've worked in another technology, making COBOL and our mainframe technologies just to be a different language, not a whole defined world for a developer to have to learn or team to have to learn. Really looking at that as well as using automation. We use automation in a lot of our testing but also looking at it from initiating the project. How can we use Ruby? How can we look for efficiencies in our practices by using technologies?
Cameron Philipp-Edmonds: You guys are going to cover a lot of great things at your session at the conference, but is there a main take away you'd like attendees to get from your session?
Jay McFarling: Yeah. I would say the big thing is don't discount agile as an option for mainframe development. Anything is possible. I think a lot of times people overlook agile in mainframe technologies, but we have found is that in most cases the challenges of applying agile to mainframe development are very similar and in some in cases, identical to the challenges of applying it to any technology. So just because the solution to these challenges might be unique in the mainframe world, it doesn't mean that they're not possible to overcome or that it's a problem that doesn't exist for distributed technologies.
Cameron Philipp-Edmonds: Now I have some more general questions. Danielle, you use your background as a software developer, project manager, and Scrum master to help teams embrace agile. How has your background in those positions really helped you help others?
Danielle Roecker: I really think it gives me a great understanding to perspective when working with the teams. I can speak to my time on the team from an individual contributor as well as more of kind of a master, leadership role, and as well as with the project manager. As we're looking to transform in the entire organization, being able to really understand where everyone is coming from. Agile is always different, and that's what I really love about agile, is there's no really defined solution for anyone or any team, and so being able to look at the problem, have real life understanding of what those roles are thinking and testing and being able to try and come up with a best solution for them and help them maybe see a different view.
Cameron Philipp-Edmonds: Now Jay, you've been managing software development projects since the days of COBOL, and COBOL to me is one of the first things I think of when someone actually says legacy tech. However, COBOL is still widely used in today's tech world, especially in our government. With that being said, does some legacy tech still have a place in today's affinity for agile?
Jay McFarling: Absolutely. Because COBOL is used so widely and it's going to be used for a foreseeable future, it's really critical that we breathe new life into the development of COBOL. Agile software development is one of the most available ways in which we can accomplish this, because it attracts that next generation of developers. We have to make it more flexible and manageable for, perhaps, today's changes, and we have to achieve quality in faster and cheaper ways. Agile is one of those things that can bring that even into a mainframe technology like COBOL.