Michael DeHaan is CTO and co-founder of the configuration management tool Ansible. In my interview with him prior to the All Things Open conference in October where he'll be speaking, Michael tells me about what it's like to work in open source tech.
He gives an idea of what the Ansible open source community is all about, including the rewards and challenges of working with users who also happen to be talented developers. He answers this and more, like what he'd work on if he could just add one more hour to the day.
What makes you passionate about provisioning and configuration management?
It's more of something I've fallen into I guess. I have this strange habit of existing in between things like between GUIs and firmware, or between ops and development, etc. Programs that help code get rolled out are one of those ignored layers that having better solutions for completes the picture. In some ways I feel it [automation] is where more innovation can and still needs to happen, and it's somewhat nice as you get to have developers as users. I don't think I could exist making, for example, an online store—not that there is anything is wrong with that, but making tools is somehow more interesting to me personally. There is a multiplier effect to building things that people can build things with.
What are the biggest challenges are for provisioning and configuration management technologies today?
Today everything changes much more quickly than it used to. GitHub and social media amplify the ability of an idea to spread and evolve, so you have to keep up with not only the pulse of what is hot but also all the APIs and distros changing underneath all you at once. To handle that, to an extent, you have to transfer out of the role as the primary code source to being more of a shepherd of like-minded contributors, but still keep this pointed in a common direction. Folks want more features but also stability, so it's always about weighing tradeoffs.
Tell me about your average day at Ansible? What's it like to have an active open source community supporting your project?
It varies a lot day to day. I answer a lot of email from users with ideas about what they need or want Ansible to do and talk a lot with our team about upcoming feature development, and we work on what code we are testing and merging. A lot of the discussion is about what is right for the project and what are some of the most important things to do next. I think one of the nice things about open source software is you can have so many data points to help decide where to go, because you can see all of those patterns. But if you're not careful, you can drown in that, so you have to stay the course.
Our users make some great additions for sure—but one of the most interesting things is when you see folks giving presentations to others after work at local meetups; not only does that feel great, but it is how you get more contributors too! Lately we've seen that happen in such diverse places as Paris, Tokyo, and Budapest. I'm also a big fan of everyone that likes to help out with documentation and helping other users with questions.
Now that Ansible has been around for a few years, how do you feel about the project's maturity versus when it first began?
I think because of the way it was designed—being very modular with a tight core—it has been very mature throughout it's lifecycle, but what has really changed is the pace of contributions. Having hit almost 900 contributors by now, it changes the way you work a lot, but in a good way. I'm certainly not anywhere at the level of what Linus does, but I am starting to definitely feel how hard it is to do what he does.
Keeping everyone happy is hard to do. I like to quote Star Trek 2 a lot. We definitely optimize for "the needs of the many." I know Spock dies after he says that but he does get to come back.
I listened to some of your music while thinking of interview questions to ask you. My favorite is this song. What's one thing you want everyone to know about your music?
Ha, thanks! That song was made with a free iPhone app called Songify, from the "auto tune the news" people. The rest of the songs were made from a lot of analog synths. They are very disconnected from my computer gear but are lots of fun.
Tell us more about your session at All Things Open.
Greg and I are basically going to talk about how to build and manage large scale communities and how that requires community architecture but also software architecture. People should come.
Is there something you've been wanting to work on but just haven't had the time for?
For Ansible, I'm going to keep most of those plans up my sleeve but that's the great thing about having lots of help with Ansible—we do have time for those things.
Elsewhere, way too much. As far as side projects go, I'd like to do some more with this algorithmic composition music theory app idea I never really started, write some video games, and play with the synths a lot more than I get time to. I'm sort of eyeing Go and Rust from a distance on the programming side but haven't really been needing them. I'm waiting for a new language to really excite me. Maybe an ASCII mode cow simulator?