Yeah, I love CI/CD. My story at Walmart – I joined to work on React components, because… You know, when you think about Walmart and having these separate apps that need to consume similar data and be able to not have so much code that’s just copy pasta – that was a really big selling point. And if you look at Walmart’s open source stuff for the React world, they’re working on things like Electrode… Which is kind of what spun out of what I started to work on.
When I joined this team, we didn’t have any tests, there was a huge drift across all of the developer tools that we were using, so… You know, Webpack was a different version, ESLint (if it was even there) was a different version, so… When I came in, even though I was gonna work on React components, I wanted to tighten up that story of making sure that our code, especially if tons of people are gonna be using and contributing to it, making sure that we keep it clean and making sure that we have ways to be able to see if that code is working, and then how much the test coverage is changing.
It kind of started out that way, where I just wanted to make everything a little nicer, and I ended up owning a Jenkins instance around October 2015. In December they spun up a new organ, asked if I was interested in CI/CD, and starting at getting these Electrode components to where everything was just flowing really nicely, and then getting the apps out the door. And I was like, “Yeah.”
To me, if you can make it so that your code is mostly something that you feel like you can have some kind of assurance about and be able to get it from the developer to production in a way that’s not too convoluted, those kind of things for me… Yeah, they just made me so excited, and I think it really comes out of that thing I was talking about earlier, which is that if you can make developers happy, they’ll deal with other things a lot better.
You’re gonna have politics wherever you work, you’re gonna have some crappy things wherever you work, and if you have really good things and if you’re not having to deal with bureaucracy, or if you don’t even know if your app is gonna work when you push that in production – those are bad things… So making it so that your code is stable and making it so that there’s good tooling around that so that people can run tests locally and then run it in CI, and then deploy to prod, reducing the friction on that to me I think is one of the most important things that any organization should be thinking about.