Into the Open: OpenWorx and the Future of Open @ Discover
In order to accelerate our path through Runway, Discover's technology transformation initiative, we needed to create scalable practices around component Reuse, InnerSource product delivery models, and safe consumption of and contributions to Open Source software. In order to do that, we created OpenWorx - a set of practices to enable our engineers and developers to work smarter, deliver value faster, and innovate at scale. In this talk, we will share how a small team of engineers is engaging the community to create an unprecedented movement of knowledge and efficiency uplift.
Chapters
Full transcript
The complete talk, organized by section.
Anthony Cox
[00:00:50] Welcome. We're glad you're all here. That was the video that we used to launch the OpenWorx program at Discover earlier this year.
[00:00:58] Before we get into the program, just a little bit about us and the team here at Discover. My name is Tony Cox. I've been an engineer with Discover in a variety of roles for almost 20 years.
[00:01:11] When I'm not working, I like fishing, playing pool, jamming to Metallica, and harassing my teenage daughters. Along those lines, pro tip for all you parents out there: when your teenage daughter comes up to you and says, "Dad, are you really going to say that you're jamming to Metallica?" just turn to them and say, "Of course not, sweetheart. I'm going to say it just like you would: bruh, no cap, Metallica is gas." They will beg you to return to the way that you were speaking before.
[00:01:50] It is my honor to be on the stage today with literally a living legend at Discover Financial Services, the one and only Mrs. Priya Krishnamoorthy.
Priya Krishnamoorthy
[00:02:01] Hi, I'm Priya. I'm an expert application engineer at Discover Financial Services. I have been with Discover for the past 20 years, and I'm currently at the Technology Capabilities and Innovation area. When I'm not working, I like to sing, I love to camp outdoors, and I watch my son's musical performances. And I'm going to watch Katy Perry tonight for sure.
[00:02:23] I would like to acknowledge and thank Roland Krocin and Andy Smith, who are the founders and leaders of OpenWorx.
[00:02:38] Let me talk a little bit about the great company I work for, Discover Financial Services. I'm sure you're all very familiar with our award-winning Discover credit card services and personal bank offerings. What you may be surprised to learn is that we are more than a financial services company. We are a leader in the technology space, featuring some of the best engineering talent.
[00:02:59] We work in small, autonomous product teams delivering customer-impacting solutions, and we are focused on innovation and learning. That said about Discover, Tony, why are we here on the stage today?
Anthony Cox
[00:03:11] Why are we here? A couple different reasons. One, we've been doing a lot of the same things that all of you have been doing over the past number of years. We've made the shift from monoliths over to distributed, containerized microservices. We've moved away from a waterfall project-management model into small, autonomous teams that have a product mindset and follow our agile ways of working. And we made a huge technology shift from our on-premise data centers to a hybrid model of cloud technologies that we keep both on-prem and leverage in public cloud spaces.
[00:03:48] As we've made these changes and these shifts, we realized that there are different ways that we need to work in order to stay ahead and get better. A few years ago, Discover launched an umbrella program to help with this transformation called Runway. There was a presentation done by our own senior vice president, Angel Diaz, here at DOES last year, and I strongly encourage all of you to take a look at that to see how Discover overall organized ourselves to make this transformation.
[00:04:22] As part of the umbrella program, we realized a number of things that we needed to change. One, we need to move from siloed work, or work done in silos, to more community-driven development. We also need to reduce the cognitive load on our developers and start ending questions like, "Where the heck is that?" or "How the heck was I supposed to know that?" and make more of our processes and information more easily discoverable.
[00:04:51] A quick word on Discover's PR and legal department: they were not impressed with the original words that I chose for this slide. I can assure you that your developers are saying to themselves things like, "What the heck is that?" or "Where the heck is that?" but they're probably using a different word that might also end in C-K. That's probably more closely aligned to my original phrasing that they didn't like but that I can't disclose to you here today.
[00:05:30] We've also shifted to leveraging and using much more open source technology. That also means that we're no longer proprietarily developing what we now consider to be commodity capabilities. As we move into these new changes, we have to look at new ways of working, and that's what OpenWorx was created for: to address that exact problem.
[00:06:02] We're not just offering products and services to our engineering community. We're also trying to change the culture. To go from a siloed mindset and just doing product delivery to more of a community mindset takes a lot of work, takes a lot of effort, and really is quite a big cultural change. With that groundwork for why we did OpenWorx, Priya, do you want to cover some of the core tenets and pillars of the program?
Priya Krishnamoorthy
[00:06:31] Of course. Now that we know how open source and open ways of working are critical to our business strategy, let me share with you what OpenWorx is and how it will enable us to work smarter and innovate at scale.
[00:06:44] OpenWorx is our program fostering principles of open development models at Discover around component reuse, consumption, and contribution of InnerSource and open source. All this is grounded by the three Cs: contribution, community, and consumption. We support one common theme: to reduce the cognitive load on all our developers, to be able to work smarter and build only what matters.
[00:07:11] These open models of working have transformed the industry, and they will help us achieve our Runway goals of being faster to market. Today we'll be sharing a bit more about the four pillars of OpenWorx, designed to help us build better communities and experiences, and more importantly, make our engineers' lives easier.
[00:07:28] These pillars are Reuse Hub and Reuse Catalog, the one stop for reusable assets at Discover with code, packaged code, and patterns. The next one is InnerSource, where you can find all the internal InnerSource projects and their contribution guidelines. The third is Sandbox. This is where we incubate innovation. And the last one we call OSPO, Open Source Project Office, where these practices are defined.
[00:08:01] This is OpenWorx, launched here at Discover six months ago. With that overview, it's time to dive in a bit deeper into each of those pillars of OpenWorx, starting with the Reuse Hub and Reuse Catalog. Tony, take it away.
Anthony Cox
[00:08:18] Thanks, Priya. Duplicate work: we want all eliminated. We still have value streams that operate in silos. They're creating common solutions for common problems they have, and there are other people solving the same problem in another silo, and they don't know about each other. We've seen multiple instances of repeated code patterns, tutorials, solutions, et cetera, across all of our silos.
[00:08:41] One, we want to reduce that extra effort. It is essentially waste. If I have multiple people solve the same problem twice, solve it once. Second, we wanted to reduce the cognitive load on our developers. There are two ways that we want to do that. One, don't spend brain cycles solving that problem that somebody else has already solved, so we need to elevate those. Two, we want to make you not have to search hard. We want to make those solutions easy for you to find and easy for you to discover and not waste time with that.
[00:09:12] The primary goals of the Reuse Hub are to accelerate teams: reuse solutions, don't delay cycles, get faster to market. Second, promote best practices. Once we have solid solutions that are reusable, the more people reuse them, they inherit those best practices into their application stack. Because we're now doing more community-driven development and sharing solutions across those silos, that's also going to promote more community development, and we all know we work better together than by ourselves. This is also going to drive consistency. The more those common solutions are used, the more consistent our technology environment becomes, and that provides better continuity for our customer experiences across all of our business channels.
[00:10:02] One of the keys to making this happen is discoverability, and that is where our Reuse Catalog comes in. The Reuse Catalog is our centralized, searchable repository for all of the assets that have been tagged as reusable at Discover. That was a huge step along our journey. We have all this information, but it's in all these repositories, little documents, schemes, Teams files, and all over the place. To get it all in one spot where everybody can find it and it's searchable for a particular thing they're interested in.
[00:10:35] We support a large variety of reusable asset types. There are some that we care about more than others. Really, we want to see more code, more solutions, more standards that people can leverage and use. However, we don't want to stifle our community's commitment to contributing back to the Reuse Catalog, so we let them contribute whatever they want because we rely heavily on them to build this out. We wouldn't have gotten as far as we are today without that community continuously submitting new things to our catalog for other people to see and use.
[00:11:15] Again, to truly maximize reuse, you need to have that community-driven mindset. To drive that community-driven mindset, the OpenWorx team has made great strides in promoting similar open ways of working, and Priya is going to go over those now.
Priya Krishnamoorthy
[00:11:29] Thanks, Tony. About InnerSource practice: InnerSource is when a project team opens their product to external contributions within the company so that the community and the product team build the features together. InnerSource helps to drive visibility for your product. It also solves the resource bottlenecks and helps with capacity. InnerSource also helps you to build a community around your product.
[00:11:58] At Discover, we have created a framework around InnerSource. We have created guidelines around InnerSource principles, contribution guidelines, roles and responsibilities, and we also offer InnerSource training by roles. We also have a catalog of InnerSource projects so engineers can contribute to that. I'm proud to say there are some products at Discover that have evolved from InnerSource, and the features are being built by the community and the core product team working together.
[00:12:29] The next one is Sandbox. Innovation starts with all of us here. Sandbox is community-led, not product-supported, but it has the potential to evolve into a supported product one day. It is basically an experimentation environment, a playground. This is where, when an engineer has a great idea or a project, they bring it in, register with the Sandbox community, and other engineers who are interested contribute to that, and the product evolves. Our end goal with Sandbox is to connect these experimentation projects to a sponsor so it has clear product ownership.
[00:13:12] Now we are at the final pillar of OpenWorx. Tony, can you explain what OSPO is?
Anthony Cox
[00:13:19] Sure. We all know how powerful open source is and what it's done to transform our industry. But in order to leverage open source, you have to use it properly, and that means you need to give teams some guidance.
[00:13:29] Teams who want to bring open source software into our ecosystem need to know a lot about license types and what the ramifications of using open source software under those license types means for them as developers. Second, they need access to be able to get license waivers to appropriately use it. Third, they need to know what to consume. There may be multiple open source projects that offer a similar set of capabilities. We need to provide some guidance and an opinionated view on which ones we want them to use.
[00:13:58] We also need to make strategic decisions about how we're going to keep up with those open source projects and how we're going to keep up with things like vulnerability management within them, so that we can tell our developers and engineers which open source products, and what versions, we want them to use.
[00:14:16] Finally, and maybe most importantly, one of the biggest things that we're trying to exercise is this whole mindset of upstream first. Meaning that when you consume an open source project and bring it in-house, if you're going to make modifications to that, contribute that back up to the upstream. Make that available to the rest of the open source community. They open it up to you and you're leveraging it, taking advantage of it. When you make improvements to it, make sure you give that back to the community.
[00:14:44] That's a muscle we're really starting to flex, and it's really starting to grow. We've already contributed back to six different open source communities at Discover so far, with many more coming on the way. Some of those contributions include RabbitMQ, Backstage.io, and Drupal in our payments area.
[00:15:02] If you're thinking about starting up your own open source project office, I'd highly recommend that you check out opengroup.org. It's a great resource for you to find out some of the processes and procedures that you might want to put in place, and there's a large community supporting it to provide guidance along your journey.
[00:15:23] There's a quick update of the four pillars: the Reuse Hub and Catalog, the centralized searchable repository where we keep everything for our Discoverers to find and consume; the InnerSource open way of working, where teams accelerate their development and velocity by co-opting that development initiative with other teams; our Sandbox, our community-driven idea incubator where the great ideas that people have come to life; and finally the Open Source Project Office, where we enable our engineers to unleash some of the most powerful tools that are available to us in our industry.
[00:16:00] With that said, as we started off this OpenWorx program, it's only been six months and we've already started to see some really good results. Priya, do you want to go over those?
Priya Krishnamoorthy
[00:16:11] For sure. Near the initiative, we want to assess the impact of OpenWorx and make sure that the outcomes are valuable to our customers. We have 500-plus reusable assets in our catalog. Everything is searchable and discoverable. And as you saw, there are many different asset types.
[00:16:31] We are focused on improving our developer experience. We have created common developer journeys. We have three Golden Paths, which were launched a week ago and Tony will be covering on the next slide.
[00:16:44] About educating our communities, we have 50-plus learning modules and learning journeys around open source, InnerSource, external training, internal training, as well as reuse. We have 50 product teams who have gone through our reuse learning as part of their sprints.
[00:17:04] It is great. We have launched OpenWorx and we have a catalog of resources. So how do we raise awareness across the organization? This year we had 50-plus events around master classes, lunch and learns, listen-in sessions around all the OpenWorx principles and practices, and we have weekly newsletters delivered to our inbox around reuse content.
[00:17:31] To talk about open source culture, as we said before, we have contributed to six external open source projects. We also encourage community-based development. We have three internal InnerSource projects contributed by our Discover engineers. And we also have three projects which matured from Sandbox to graduation status, which means with clear product ownership for those.
[00:17:55] Even though we have had great impact, we know it's not all perfect. Before we go over some of the challenges we are facing, Tony is going to walk us through the next evolution of OpenWorx.
Anthony Cox
[00:18:07] The next evolution of OpenWorx is our initiative called Golden Paths. We just launched a week ago. A Golden Path is an opinionated, tutorial-style guide to help our engineers walk through some of the more complex processes that they might need to go through in order to get something done at Discover. That something could be standing up a website, creating an API, creating a back-end data flow, or registering a new system or component. We're trying to put all the information they need all in one place, so we can end the "Where the heck is that?" or "How the heck am I supposed to know that I'm supposed to do that?" questions that are being said today.
[00:18:47] The really great thing about the Golden Paths program is that we're doing it using all of the OpenWorx paradigms. First of all, we're borrowing it from open source. Golden Paths is not a Discover idea. Golden Paths is a brainchild of the Spotify engineers who created the product Backstage.io, and they use it to support the Golden Paths for their own developers. We're borrowing that idea, and we're hoping that we're going to bring in Backstage as one of our open source products to help support the Golden Paths initiative.
[00:19:19] While we're doing all of that, we're also InnerSourcing this. This is not going to be us writing Golden Paths for our engineers. It's going to be our engineers contributing what they want, how they want it presented, and what they want to see to make their lives easier and accelerate their time to market.
[00:19:38] As we pick up momentum with our Golden Paths, the next step is not just having the information, but then closely working with other systems teams to build systems integration and automation in order to make those Golden Paths for some of these common tasks easy buttons: where they submit it and all the back-end orchestration happens; they're registered in all the places they need to be registered; they get all the constructs they need to get started; and they get all of the things they need to get moving and moving quickly. We're really looking forward to seeing where that goes.
[00:20:11] Now we're done with the lollipop and unicorn show. We launched a great program. We've got some great tools. We've had some great success. But let's be honest: lollipops get sticky, and unicorns still poop. It's not all perfect. Let's take a look at some of the challenges, opportunities that we still have with our OpenWorx program.
Priya Krishnamoorthy
[00:20:39] Every challenge is an opportunity for the greater success of the OpenWorx program. As there are more and more contributions to our content, the biggest challenge is the quality of the content. If the consumers are to trust the catalog and they want to use everything, then we need to provide best-in-class assets. We are working on an approval process involving experts from different technology areas to make sure these assets are secure, architecturally directionally approved, and meet well-documented standards.
Anthony Cox
[00:21:12] Duplication and silos are still there. We still have a ways to go. We still need to find those duplicative efforts. We need to raise awareness, and we need to make sure that we're bringing those things and elevating those, bringing those teams together to do more collaborative solutioning.
Priya Krishnamoorthy
[00:21:29] About reuse mindset: the world will definitely be a better place if we learn to write less and reuse code more. It is a mindset, and it's very hard. We offer coaching on consumption of reusable assets in the catalog before you develop anything new. We also provide guidance on contribution: are you developing with good interfaces, good documentation, and ensuring core engineering principles are addressed? These are all part of the technical training we offer as part of our dojos.
Anthony Cox
[00:21:58] Community engagement was the hard one. That's the one we hear everybody ask: how do you get somebody to come out of their day job, where they are delivering features for their value stream, and think, "Oh, I should contribute it back to the community," instead of getting back on with your day job and delivering more value and features for their value stream? You can't even be mad at them. You're delivering value, you're generating revenue, but I want you to stop or slow that down and contribute that back to the community. That's a real hard sell sometimes, so you have to show value and keep engaging the community by showing the results that you can get when you work together as a community.
Priya Krishnamoorthy
[00:22:40] To talk about InnerSource adoption, it's a pretty straightforward concept, right? You just open a contribution guide and open a product for everyone to contribute, and expect the magic to happen. But it never does, because InnerSource requires a very thoughtful approach. You need a core product team. You need to know what features you're opening for the community to contribute. You need to understand the roles and responsibilities of the community versus the core product team.
[00:23:04] This year we have taken steps to build the foundation for InnerSource: understanding the roles and responsibilities, guidelines, differences between community-led and product-supported, and offering master classes so that we adopt InnerSource the right way.
Anthony Cox
[00:23:22] Open source contribution and readiness: we still have workgroups that are forming and putting together things like policies, tools, standards, and ownership models for open source software that's brought into DFS. We're still early in our journey. As we said, we contributed back to six open source projects. We're hoping to get many more of those going on the way.
[00:23:44] That's some of the challenges that we have, probably some of the same challenges that you'll have. Let's do a quick overview of some of the things we hope you can take back to your organizations as things to think about from what we've covered here today.
Priya Krishnamoorthy and Anthony Cox
[00:24:00] We learned it's important to promote reuse, contribution, and consumption of reusable assets for all of us to move faster. We learned about the InnerSource model: leveraging InnerSource and learning about it, especially going to places like innersourcecommons.org, is a great way to increase teams' capacity, transparency, and speed. Don't assume that everybody knows everything. Coaching is very important to do it the right way.
[00:24:30] Open models of working and communities will help us build together better, with better quality. A model driven by community development really takes a long time. That's a mindset. It's a cultural change. Be patient, but start somewhere like we did.
[00:24:46] With that said, we are almost at the end of our presentation. If any of these sounds like problems or challenges you would like to solve, join the Discover community. Here is a QR code to explore all the opportunities Discover has to offer, and Tony and myself will be around here to answer any of your questions. We would love to share your experiences with us. We'd love to talk to you.
[00:25:09] Thank you so much for coming and joining us today. Enjoy the rest of your conference and have fun.