We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Adding Developers to the DevOps Process

00:00

Formal Metadata

Title
Adding Developers to the DevOps Process
Title of Series
Number of Parts
45
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
As a developer, you don't really think you'll ever get deep into Chef code. As an ops person, you're not sure you want developers messing with your infrastructure anyway. Those were mindsets present at our company until about a year ago. With more software being written and deployed as the company grew and our ops team getting closer to burnout dealing with it all, something about our process had to change. The developers and ops team came to a mutual agreement that the developers should join in to learn how to work with our Chef deployment infrastructure. This talk will cover the process taken to get buy in from developers and how we spread the Chef knowledge around. In addition to less pressure on our ops people, this talk will cover additional benefits gained. Then it will conclude with a few pitfalls that you need to be aware of if you want to go through a similar process with your development team.
Software developerProcess (computing)RootArchitectureProgrammable read-only memoryBuildingThermodynamischer ProzessRight angleCartesian coordinate systemComputer filePhysical lawNatural number1 (number)Information technology consultingSoftwareThread (computing)Local ringProduct (business)Rule of inferenceComputer architectureArithmetic meanCodeDesign by contractComputing platformVelocityNP-hardWaveService (economics)Point (geometry)Context awarenessGroup actionGreatest elementPattern languageFront and back endsWeb-DesignerSoftware testingMultiplication signMathematicsData storage deviceEndliche ModelltheorieNumberView (database)Integrated development environmentInformation engineeringConfiguration spaceDirection (geometry)Moment (mathematics)WorkloadDecision theoryDiagramClient (computing)BitShared memoryInternationalization and localizationSoftware bugDebuggerOperator (mathematics)Software as a serviceSquare numberRepository (publishing)Online helpData managementWeb 2.0Web applicationMultiplicationRuby on RailsRootJSONXMLUML
Repository (publishing)View (database)Maxima and minimaServer (computing)Instance (computer science)Host Identity ProtocolIntegrated development environmentWeb pageThermodynamischer ProzessOperator (mathematics)Web pageCodeSquare numberProcess (computing)Presentation of a groupOnline helpMultiplication signSoftware testingWave packetWikiRootBackupConfiguration spaceMathematicsPoint (geometry)AdditionGroup actionModal logicRepository (publishing)CASE <Informatik>CurveLattice (order)Self-organizationData managementWorkloadDecision theoryCore dumpEmailBitFront and back endsInformation engineeringScheduling (computing)Spherical capComputer fileArithmetic meanSocial classTheoryCasting (performing arts)Field (computer science)Focus (optics)Graph (mathematics)WritingStaff (military)Nonlinear systemProduct (business)FeedbackPhysical lawInsertion lossMereologySound effectDeadlockComputer animation
Data managementComputer fileWeb pageSquare numberMereologyProcess (computing)NP-hardComputer networkPlastikkartePunched cardServer (computing)RootCodePulse (signal processing)Graph (mathematics)Key (cryptography)Operator (mathematics)Service (economics)Error messageMathematicsSquare numberType theoryThermodynamischer ProzessServer (computing)CodeInformation engineeringRight angleRepository (publishing)Context awarenessPortable communications deviceSoftware testingInformationINTEGRALSoftware maintenanceMultiplication signRootConfiguration spaceWorkloadCartesian coordinate systemTemplate (C++)Online helpSheaf (mathematics)Integrated development environmentLimit (category theory)Arithmetic progressionComplex (psychology)Control flowComputer fileShared memoryAttribute grammarSuite (music)Flow separationAutomationTheory of relativityTime zoneData managementFrustrationMereologyPoint (geometry)Different (Kate Ryan album)Self-organizationPattern languageCurveSlide ruleTwitterTheoryDemosceneGoodness of fitLibrary (computing)LoginSound effectProcess (computing)Task (computing)Numbering schemeInferenceStaff (military)XML
Operator (mathematics)SoftwareWorkloadThermodynamischer ProzessMultiplication signContext awarenessFile viewerNumberInfinityPattern languageDemo (music)XMLComputer animation
Server (computing)Operator (mathematics)Template (C++)Formal languageInformation engineeringLink (knot theory)Thermodynamischer Prozess2 (number)CodePower (physics)Integrated development environmentGene clusterMathematicsMobile appProcess (computing)Cartesian coordinate systemProblemorientierte ProgrammierspracheComputer architectureQuicksortMultiplication sign1 (number)Personal identification numberGroup actionClient (computing)Revision controlBus (computing)Goodness of fitMetropolitan area networkInteractive televisionCASE <Informatik>MereologyElement (mathematics)Source codeData miningNatural numberNumberShift operatorOnline helpVideo gameSpherical capDivisorReading (process)Task (computing)Social classResultantLecture/ConferenceMeeting/Interview
TheorySocial classMultiplication signExpert systemGroup actionPropositional formulaSoftwareContext awarenessSquare numberWave packetChainShift operatorMathematicsCodePerspective (visual)Roundness (object)WhiteboardProduct (business)Point (geometry)Software bugQuantumEvent horizonNumbering schemeContent (media)Cartesian coordinate systemVirtual machineProcess (computing)RootData managementLogical constantMereologyStandard deviationShared memorySelf-organizationOperator (mathematics)Perfect groupLine (geometry)Server (computing)Level (video gaming)Extension (kinesiology)Latent heatMeeting/Interview
JSONXML
Transcript: English(auto-generated)
Thanks, everyone. As I said, my name is Annie Tse, and today I'm going to discuss how developers at my company, Square Root, ended up working with Chef and kind of the process that we went through.
A little bit about me. I'm a native Austinite. Welcome to my great city. I wish our weather was a little more like this trick here this week, but it's okay. I've been a full-stack web developer for about seven years. I've worked mostly with Ruby on Rails on the
JavaScript and mainly Angular on the front end. I worked for the company Square Root for about two years. We started out ten years ago as a consulting firm, and a little before I joined the company, we decided to transition the company to build a software-as-a-service platform for our automotive and retail customers.
Basically, what our software does is it combines data insights in a platform that allows our customers to take corporate initiatives down the in-store execution and make all
their stores perform like their best store. Before I begin talking about the process that we went through incorporating our developers
into writing Chef code and the DevOps process, I wanted to explain to you a little bit about our decision-making process, about why we went through this. There you go.
Initially, in the beginning of our company, we had one local software architect, and all of our development was done by offshore contract developers. We started out with a very basic monolithic Rails application, and the architecture was simple enough that our software architect could handle all of the infrastructure requirements manually.
As more developers joined, we decided that there needed to be a way to share configuration files that were like our production environment so that developers could work on software
locally. Our software architect started this Chef repository to share these files. It was kind of an anti-pattern of using Chef at that point, but because all of the developers worked in Ruby, and Chef is based in Ruby, it was kind of the logical conclusion to
use Chef. Fast forward to today, at Square Root, we have a growing team of developers as we move towards the SaaS platform. We have a local engineering team of 20 people, including nine full-stack developers on multiple web teams, and four people on a data engineering
team. With this growing number of developers, we also have an ops team now, but the ops team only consists of three people, and one who was specifically hired because of his Chef knowledge. Our software architect drew this diagram last year to kind of show how our architecture
has changed. As you can see, we have some front-end clients now, and we have a lot of services and APIs in the middle to spread the main knowledge to the front-end, as well as basic infrastructure foundation that all web applications need.
And down at the bottom, we have our data engineering pipeline to get our data flowing into our front-end applications. And so not only do we have this kind of complex architecture now, but we also have development, staging, and production environments to make sure any code changes go smoothly into production.
So this is kind of our off-through at the moment. They're constantly fighting fire day in and day out, and this isn't really sustainable for them. It definitely affects their work happiness. And so they kind of want developers to help share in the workload to kind of help them so that they don't have to fight fires all
the time. Sorry, I'm still trying to get this to work.
And also, they wanted to make infrastructure more resilient because they knew they couldn't have complete coverage of all the infrastructure. And so they wanted to start using Chef as more infrastructure management, like its typical use. And also, we use Jenkins to deploy code and data changes. And sometimes, you know,
developers would have their code QA ready to go to deploy, but then something would go wrong in the Jenkins build, and it would fail. And because developers didn't really take ownership of the code after it moved to
deploy, we would have broken builds that would take a while to fix. And also, because ops team were the only ones working in our Chef repository, it was kind of hard for them to have all the application context that they needed to make the appropriate changes to our infrastructure once our software
changed. And this was the developer's view. They were constantly waiting for the ops team to make changes to the Chef code so that they could release new features or even just bug fixes. And it kind of reflected poorly on the
developers, both internal to the company and externally. Internally, other departments would be confused about why things were taking so long to move along to production. And then also, our customers would be promised bug fixes that were kind of a long time coming.
And so developers were kind of interested in learning Chef to see if they could help the ops team make these changes and move the software process along faster. Also, some developers, especially me, when I first started out at square root,
wondered, you know, like dev and ops, they're kind of divided by a wall. Like, why do developers need to know what's going on in ops? It was kind of like an old view of a wall separating developers in QA. You know, a lot of developers before were like, well, it works on my machine,
so let's throw the code to QA and they can take it from there. But now, developers have a basic understanding that they need to know the basics of testing and it can help improve their code quality. And so in the same way, developers need to understand Chef and ops and infrastructure in general so that they can know exactly how their code is
working in production and can build better software that way. So developers and ops were kind of in agreement that developers start moving in the direction of writing Chef code and helping ops out. But we had to have management approval as well.
And so our VP of engineering, he used to be an ops person. He kind of knew the industry was headed in the direction of dev ops, developers and ops working together. So he was okay with this. And he also wanted to make sure everyone working underneath him, the engineers and the ops team, were happy.
And he knew with all these fires that the ops team were constantly fighting, that they were growing unhappy. And so he knew this was a way to kind of lighten the ops team's workload and make them happier. And also, our core company values are something that we take very seriously.
And they help drive our decision to move towards dev ops. For one thing, we like to think big and do bigger, which meant we have a culture of experimentation. So the developers were willing to give working in Chef a try. And if it didn't work out, it didn't work out. But we had a good feeling about it.
We also go through playlist post-warms when something bad happens. And we're just very customer focused and want to make sure we're delivering the best value to our customers. And we also want to help each other learn in the process. And all employees at Square Root receive an annual training budget.
And some developers knew that they already wanted to use this training budget to learn more about Chef. And so we all converge on the idea of integrating a dev ops culture into our engineering team and our developers learning Chef. So here's kind of how the process went.
So my team was standing up a new API. And we knew that the ops team, having to create this new infrastructure and stand it up, would take a long time and we wanted to be able to move faster. So we had kind of been mulling the idea of learning Chef anyway.
So we decided, how about we as developers start learning Chef and with the help of the ops team, kind of stand up our own infrastructure as necessary. So all of us had read access to the Chef repository
to be able to retrieve the configuration files that we needed. But now everyone was granted write access so that we could start contributing to the Chef repository. The ops team spent a few hours with my team going through a deep dive of how to set up Chef and AWS.
Now this involved giving all the developers AWS credentials, which is a little nerve-wracking because an inexperienced developer could actually do a wrong move and kind of blow up production. Luckily, we had backups in place
that allowed everyone to feel comfortable working in AWS. And we also had the culture where this kind of experimentation and possibility of failure was allowed. Now in the beginning, all code changes in the Chef repository had to
go through a pull request and code review process. By the ops team. And so this initially slowed down the ops team, because they had all this code that they needed to review. And this was just another job responsibly of theirs. But in addition to the developers learning more about Chef
from the ops team this way, the ops team actually learned more about how to write maintainable code from the developers. And also, the developers and the ops team together kind of grew this code as infrastructure or infrastructure as code mentality.
And as more code reviews are done, developers felt more comfortable helping other developers as they made their pull request and review their code to lighten the ops team's workloads.
So initially, because of the way we had been using the Chef repository, we didn't have any testing before a code was merged in. And with more developers working the code and more chances of things going wrong, we had to go through a substantial Chef upgrade and then
added Test Kitchen so that we could at least have a little bit of manual testing for our infrastructure management. So along the process, it was kind of gaining steam. My team kept getting interested in learning more about Chef,
especially how to use testing now that we had it. And as we were writing Chef code and we were talking about it amongst the engineering organization, more teams became interested in learning Chef, and we started seeing benefits of it,
and we started sharing it to others. And so they started getting interested in how they could work Chef into their own team's workflow. And so our ops team also went and gave deep dive presentations to the various engineering teams. But this is all very time intensive still for the ops team.
And so the ops team came up with the idea of a DevOps guild, a cross-team group that would come together regularly and kind of go over best practices and how they apply to our organization. And that way, all the teams could be on the same page regarding Chef.
But this didn't quite work out the way we wanted it to. I think it was the idea came about too early before developers really understood that for the rest of their time working at Square Root, that they would be working with DevOps in their day-to-day workflow.
And so they weren't really interested in adding other meetings to their schedule and adding this additional facet to their job. So it fizzled out. But we still had more knowledge sharing going on. The developers would reach out to the ops team for kind of one-on-one meetings.
And the ops team would send out emails to kind of explain further topics. But they soon realized that they were answering the same questions over and over again to individual developers. And it was because developers, they not only wanted the syntax
and nice commands and the practices, but they want to understand the why behind it. And so we have a company wiki that's kind of a conglomerate of all of our documentation. And so the ops team decided to add Chef documentation to this company wiki so that developers
can continually refer back to it. Developers ended up also reaching external to a company to learn best practices, such as learning Chefbook and also in-person Chef training classes.
Eventually, we reached a point where developers were comfortable enough working with Chef that they even went in and added and edited the wiki documentation that the ops team had created because they wanted developers to be successful
with working with Chef and wanted to share what they learned. So the process had a few more bumps in the road than I think any of us had realized when we first started out. So I wanted to share a few of them with you. First of all, Chef does have a pretty steep learning curve.
And not only that, but you know how in the beginning all of our developers knew Ruby? Well, that wasn't the case now. We had hired developers based on their Python knowledge for data engineering as well as their JavaScript knowledge for front-end development. And so because these developers didn't know Ruby,
they additionally had to learn Ruby before they could actively work in the Chef code. Also, testing led to a lot of developer frustration. Because we didn't know best practices using Chef when we first started out, we ended up with a few
very monolithic cookbooks. And so running them manually through test kitchen to make sure that code changes didn't break anything took upwards of an hour each time. And this led to developers being idle and just wasting time, and it was very frustrating. So developers ended up taking it upon themselves
to break apart these monolithic cookbooks into smaller sections that could be more easily tested. And we ended up with cookbooks that only took about 20 minutes or so to manually run through. There's also a lot of existing anti-patterns in the code. One example is when I had to do an early pull request
to add a template to one of the cookbooks. I looked back through the code, and I saw that these cookbooks were using hundreds of role attributes. And this is an anti-pattern in Chef. It's actually not a good idea to use role attributes
for various reasons, but I thought this was a good pattern to follow. So I wrote my template using these role attributes, and thankfully, during the ops team review of my code, they caught this, and they cared with me of better practice, and I cared enough
about the maintainability of the code and having best practices in the code for future developers that I changed my code and used these values elsewhere. Another kind of bump that we hit was that documentation quickly grew out of date,
and developers, when they saw this out-of-date documentation, they thought the information would be kind of useless. And so they ended up going to the ops team a lot more often to ask the same questions over and over again, and so we learned the importance of maintaining documentation so that the ops team wouldn't have to go through
and repeat themselves over and over again. Another challenge we faced was actually cultivating the right culture for DevOps. We had the additional complexity of having offshore developers, and due to time zone differences, there is really a limited amount of time
that we could do knowledge sharing with them. Also, they had kind of different values than us. They didn't exactly follow our company values, so that made having them learn Chef kind of a challenge. And also, we had developers who were just reluctant to learn Chef.
They thought, you know, we're application developers. We only deal with application code. You know, they still saw the wall between developers and ops as firm, but as we continued on and more developers got into writing Chef, and we kind of evangelized
more and more of how this was helping us to be better developers and have better workflows, even the most reluctant developers kind of joined in and started learning Chef. So I was talking to Jeff, one of our developers, a few weeks ago, and I remember this quote,
so I thought it was really interesting. He said in relation to working with Chef, if it's not part of your main job, it's hard to value and retain the knowledge. And I found this interesting because Jeff is by far, is a developer that has by far and large
contributed the most to our Chef code. And if he felt this way about Chef and DevOps, you know, you can be sure that almost all the other developers felt the same way. And at Square Root, we found a good way of tackling this problem, is just to have better documentation that's easy to refer to, that developers can constantly refer back to
as they're working with Chef and DevOps. So this is kind of the timeline of commits of our Chef repository. We started this process in the latter half of 2015, and it took about six months for
most of the developers to get ramped up in Chef. And all, it's been about 18 months through this process. It's taken us a little longer than we wanted to to get all developers working in Chef. But as you can see by our current repository, we have 59 contributors, and that's pretty much
all the developers that have worked on Square Root code. And so we view this as a great success. Especially in our data engineering department, they used to have hundreds of configuration files that they would mainly copy to every new server that they had to stand up.
And through learning Chef, and kind of using Chef for its intended purpose of infrastructure management and configuration, they were able to automate this process so that new servers could be stood up very quickly and automatically with less errors happening.
All in all, our new services and environments used to take weeks, even possibly months, through the manual configurations and tweaks to stand up, and now with everything made through Chef,
we can automatically set up a new environment with several servers in just a matter of minutes. And now Dev and the Ops team are working together. We have great shared application context and infrastructure context so that we're much happier
working together, we are fine dealing with Jenkins builds when they break because we all have that shared context and those types of issues get fixed much faster. Now there's still a work in progress.
Of course, as I said before, we can always have better documentation to help developers work with Dev Ops. And we still have existing anti-patterns from the old code that we still haven't been able to change due to our Ops team just trying to keep up
and maintain status quo in our Chef repository. Looking forward, we hope to integrate InSpec into our Chef repository, into our Chef code, so that we can make sure we're compliant and actually have a kind of automated test suite
to make sure that changes that we do don't break things. And this will help improve developer happiness because as I said, one of the main pain points is testing takes an extra long time. Also, we hope to integrate Docker and use containers to help portability of our services and servers in general.
Also, after viewing the keynotes this morning, I'm really excited about bringing Habitat into our Chef repository, into our Chef workflow, so that we don't have to deal so much with application dependencies and maintaining those.
So all in all, we've viewed this as a great success and I encourage all of you, maybe you're an Ops person and you're like, yeah, my workload is quickly becoming unbearable and I wanna share this workload with developers,
kinda here are some takeaways from the process that I hope you can take back to your organization. First of all, start before you need to. We thought this process was gonna be pretty simple and straightforward, but as I said earlier, it took a bit longer than expected
and our Ops team actually had their workload increase dramatically before it got better. And so you need to start this process before your Ops team really has their hair on fire. Also, take care with onboarding. You're adding an additional piece
to the workflow, to the data workflow of developers and so you need to take care and make it easy for them to kinda integrate this extra piece, whether it's with documentation or just easy access to Ops team to get questions answered.
Also, all in all, integrating developers into the DevOps process has led to greatly shared context and a greater ownership of both developers and Ops for the software and this just leads to better software being built and deployed.
And that's it. I'll probably take any questions at this time or any comments. Great, let's give it up for Annie and I'm gonna hope, if you have a question, please raise your hand, I'll bring you the microphone
and then please speak your question in the microphone so that our viewers later can hear the benefit of your question. So you said a very good story about transforming developers. I got a tough job to transform about 500 developers where I work into the Chef realm. So how long did your journey take?
I don't know how many developers total. 59 whatever number. Is it two weeks, two months? How long did it take? So for the basics of Chef, just getting their initial Chef PR took a couple of weeks.
But as I said, it was kind of a piecemeal process where my team first integrated into Chef and then other teams, after they saw the results of my team, kind of went along with that. And so each time a different team got into a Chef code, the Ops team had refined the process of onboarding them
and so like with the latest developer who just joined our team six months ago, it only took her a few hours before she submitted her first Chef PR after learning about Chef. Does that answer your question? So it kind of varies, you kind of learn as you go.
First off, great talk. This two-part question. First off, when you saw your developers start to do things, you started asking them to do things, what kind of cookbooks were they generating for you? Were they infrastructure ones or more app deployment?
And second off, how did you democratize the work processes of like environment pinning and cookbook creation and promotion to Chef Server? Great question. So first of all, we were building, we were doing a lot more app environment setup,
but the data engineering team, they were setting up Postgres servers and Kafka clusters and kind of that sort of architecture. So it was kind of both. Oh yeah, so that was kind of another bump in the road because we ran into issues where developers
would forget that they needed to upgrade the cookbook version after they made changes and so things would kind of blow up on the server. Luckily it was just dev, but we ran into those issues and then so the ops team kind of had to formalize processes after we learned what didn't work
and then we added that to the documentation. And we kind of have like highlights and bookmarks like make sure before you submit a pull request that you do this or make sure before you run Chef Client on the server you do this. So that helps with that.
Yeah, in my company we have a large development group that's very good in JavaScript, they're very good at things like that, but we're also very fast paced and the concern that I have is that we're going to hear a lot of we don't have time.
What's the biggest landmine you ran into with that sort of mindset and how did you get past it? Kind of a reminder of like how long it took our ops team to make changes that were necessary
for our application code to be deployed and how long the developers were kind of waiting for those changes to happen. And it was kind of reminding them that with this time that they're waiting for the Chef code to change they could actually be learning Chef and do the changes themselves so that they could move faster
and then also all these developers are smart, they've learned languages before, Chef is kind of a domain specific language and so they understood the process of it and they understood that it would make the pace of changes faster in the long run.
I think like many of us, I'm also trying to go through the process just with a very large company here and we don't have time and they like the benefits until they learn they have to learn something and then they're not as interested. But I'd be curious if you noticed
did the adoption get easier and quicker once you had more of a foundation of cookbooks for people to use as reference or for reuse and once they were able to reuse and saw the power did that help like get the ball rolling faster? Yeah it definitely helped especially with our documentation.
Sometimes our ops team would just be going through cookbooks and they'd be like oh this is a great example of this best practice in Chef and so they would copy the code snippet into our documentation so that when future developers came along and they're like hmm, I wonder how to do this in Chef. They could kind of refer back to documentation
and have a link to a cookbook or a template that did this especially well. And so it helped developers ramp up and move faster.
Quick question, from a training and readiness perspective did you guys go and send developers through training classes with Chef or bring anybody in or do any of that kind of work? No we actually relied on the one ops person that really knew Chef very well and was hired because of his extensive Chef knowledge.
It was only after we had exhausted all of his knowledge and then developers wanted to know more then we reached the external resources to learn more about Chef.
Perfect time for one or two more questions. There's any out there. Did you guys set up your Chef team as kind of a standardization team or how did you I guess set up your specific experts
in Chef to be able to train others or expert? Was that his main role then? That's not his main role but he was the one that we turned to most often when we had questions. It actually kind of grew organically. I talked about the idea of a DevOps Guild
as kind of a cross team group and ideally it would have been the person who worked most with Chef out of each team would come together and share best practices and talk about them. But that was another reason I kind of fizzled because we didn't really appoint a person
to be part of this Guild. It kind of grew organically as more developers worked in the code. Like I became the go-to Chef person on my team because I really enjoyed working with Chef. I had worked with infrastructure management before
in a manual way and so I was comfortable working around servers and other infrastructure. And so we've just been lucky that it grew organically and we've managed to find one person on each team that can kind of be the point person for the rest of the team to ask Chef questions to.
Thank you for the talk. How did you actually make the value proposition to the developers? You mentioned that the majority of them are remote. Did they send them a pizza or buy them drinks or anything to help convince them?
Well, we also chose a few examples of times when software had worked correctly on their local machines and also development and staging but somehow went wrong in production. Like something didn't work correctly in production
and it was because the ops people who had made the changes didn't have the correct context. And so something had gone wrong in production. We kind of used that as an example of if you had more context into what was actually happening with the infrastructure and how it was all set up,
this stuff wouldn't be happening with your code. You wouldn't have to be going back through and making quick bug fixes and such. So that was kind of the value proposition that we used with our offshore team. Especially as they valued more, not necessarily,
I guess not necessarily more customer value but they valued putting more correct code out there, pushing more code constantly. And so when they had to slow down to do these bug fixes since the infrastructure was a little off, then that kind of hurt their bottom line.
This will be the last question. Great talk, by the way. And I just kind of wanted to share my experience to see if it was kind of similar to what you're saying because I think it sounds like it's a resounding question. I know when we started Chef, what really helped our developers get on board is just having people talk about Chef and be passionate about Chef.
It was something really cool. It was really seeing the efforts. We actually at Disney have our own supermarket that our developers can contribute to and that just kind of lit a fire. So if you can get the passionate people about it and get it going and evangelize it, that really spreads throughout the whole organization.
And it started in a small group in Disney and now it's been spreading like wildfire throughout the company. So I don't know if that's kind of, did you have kind of that same experience with Square Root? Yeah, definitely. Like I said, we had a couple of very reluctant developers get into it but as developers work in Chef,
these reluctant developers kind of saw the benefits of how quickly our teams are moving due to working in Chef and they saw these additional benefits that could help their job as application developers. And so due to this kind of evangelizing, as you said, yeah, we found more developers get into it.
Perfect. Let's give one more round of applause for A. Se.