# Ansible Survey 2024 - Analysis & results

**URL:** <https://forum.ansible.com/t/ansible-survey-2024-analysis-results/39904>\
**Category:** Blog\
**Tags:** survey, rhel, ubuntu, awx, ee\
**Created:** [January 29, 2025, 2:40pm UTC](https://forum.ansible.com/t/ansible-survey-2024-analysis-results/39904 "2025-01-29T14:40:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![gwmngilfen](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/gwmngilfen/32/6_2.png) [@gwmngilfen](https://forum.ansible.com/u/gwmngilfen)\
**Post date:** [January 29, 2025, 2:40pm UTC](https://forum.ansible.com/t/ansible-survey-2024-analysis-results/39904/1 "2025-01-29T14:40:22Z")

</div>

It’s been 2 months since we closed the Ansible survey, so I’ve had a little time to sit down and start going through it. We’ll dive into the raw data, and a few more detailed plots and thoughts.

This is going to be **long** post, so strap in, and let’s go! ▶

## A huge thank you

Let’s start with thanks - we had 1,117 responses to our survey, which is **amazing**. Our previous biggest survey was the docs survey in 2020/1 which got ~900 replies, so I’m very happy to have exceeded that. This survey was also much larger and time-consuming, so my heart-felt gratitude goes out to everyone who took the time to give us their answers. THANK YOU! 🎉 ❤

## What this survey isn’t

There are a few things we can’t do with this data, and it’s worth touching those:

#### Not linked to the wider community

It’s usual in surveys to ask some demographic questions that you already know the answer to, because doing so allows you to weight your replies such that you can start to draw conclusions about the wider population, including those who didn’t fill out the survey.

Unfortunately we don’t have that demographic data (no, we don’t even know the distribution of Ansible versions in the “wild” because we don’t do telemetry!) so we can only draw conclusions _about the people who answered the survey_ - so bear that in mind. Anecdotally though, we know these people tend to be more engaged and more more likely to run later versions, so you would expect the views of those on slower-moving distributions or more glacial enterprises to be under-represented.

#### Not trend data

This is the first really big survey we’ve run for Ansible in, well, forever as far as I know. As such, we only have one data point for many of these questions. That’s valuable in itself, as we’ll see, but it means we _can’t_ answer questions about whether something is getting better/worse/bigger/smaller.

#### Not highly modelled

This one we can fix, eventually, but right now I’ve only had time to do the raw data (that’s still ~60 plots!) and a small amount of modelling. So don’t expect to see “these 5 factors are the biggest influence on DevTools usage” or similar.

These things are _possible_ though - the problem is that there are _millions_ of ways to combine these questions, and I clearly can’t do them all. So rather than try to guess, I’ve decided to publish the raw data, and ask _you_ what more detailed analysis you want to see. So, if you want to know how Ansible version varies with experience, or if EDA, network automation, and AWX are correlated, or anything else, let me know!

## Survey Goals

So what _was_ the point? Well, this was a wide-ranging survey, with input from many groups on things they wished to know about. We can’t build that trend data without a first data point, so we have to start here. We also wished to get some baseline demographic data on the project, for dealing with that weighting as well.

Ultimately, there’s just a lot we don’t know, and this is a first step to addressing that - but I expect this will throw up more questions than answers. What’s important is that we keep digging into it.

## Results

Let’s get into it. The format is as follows - each question gets its own plot, with raw counts and percentages. For free-text replies, I’ve “tokenised” the replies (split into individual words) and then made a table of the most frequent words in the response.

Many of the plots are self-explanatory, so try to keep the length manageable, I’ve only commented on plots I think are interesting.

At the end, I’ve put two examples of more detailed analysis, looking at ratings compared to free text, and stacking the ratings together. This is a mere taster of some of the more detailed work we can do if you come to me with ideas 🙂

#### A note on sample sizes

We had 1,117 responses, spread across various sources as follows:

 ![image](https://us1.discourse-cdn.com/ansible/original/2X/8/8de185858a755d8878ec3cc10e32cf82e47abb1f.png)

I find it _really_ interesting that the docs banner was so much more impactful than even the forum - a reminder that despite the forum’s success, it doesn’t have the reach to the average user that the docs does. Also noteworthy is how little things like social media contributed, though I expect that is because the people who saw it there had _already_ seen it on the docs or forum.

### The plots

These are (mostly) in the order they came in the survey. In most cases I’ve stripped out “NA” empty responses because that way the proportions respect the portion of the community who replied to that. However, for straight Yes/No I’ve replaced NA with No so we get a proper sense of how many people use that feature.

 ![unnamed-chunk-2-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4047409271365edf49c677c71fb6f8789c97ddb1.png)

 ![unnamed-chunk-3-1](https://us1.discourse-cdn.com/ansible/original/2X/9/9c43d937fc0525c7c4b6a7f8ca74e4c33b023151.png)

Very slight uptick in newer users, but probably with the margin of error. Bear in mind this is unweighted, so we’re likely skewed towards the more experienced user anyway.

 ![unnamed-chunk-4-1](https://us1.discourse-cdn.com/ansible/original/2X/8/84712edd3a312ff1bb4bb1c3d34672fc2fa71ec9.png)

“Other” here needs some work, I suspect that if we went through and hand-classified it, the other bars would increase a bit. Job titles can be very special, after all 🙂

 ![unnamed-chunk-5-1](https://us1.discourse-cdn.com/ansible/original/2X/b/b6a9e099f46499a1924243a5fac766795cd0f979.png)

Now this is interesting - because words like “homelab” and “development” are as common as “services”, “government”, “finance” and so on. Just serves to remind us of the breadth of usecases that Ansible serves.

 ![unnamed-chunk-6-1](https://us1.discourse-cdn.com/ansible/original/2X/2/2b4e23a985db54735b4fe571a6dd4905eea9a996.png)

I’ll be honest, this caught me offguard, because the tech world likes to  
hype on the new use case. So, it _shouldn’t_ surprise me that Linux and  
application management come top, but it did. It’s good to be grounded  
once in a while 😉

 ![unnamed-chunk-7-1](https://us1.discourse-cdn.com/ansible/original/2X/d/daf1b8b500ac4c724da6eb978073545b70688d8a.png)

I knew we had a strong European base for our commuity, but I had  
expected it to be closed to North America. Maybe evidence that  
AnsibleFest needs to return to Europe? (Don’t hold me to that!).

I did hear from Sandra that this matches the geo-ip data we have from  
the analytics on [docs.ansible.com](http://docs.ansible.com), so that’s reassuring for the validity  
of other survey results.

 ![unnamed-chunk-8-1](https://us1.discourse-cdn.com/ansible/original/2X/e/e809b273580daa206a91e2b2c6c0583d846ae749.png)

 ![unnamed-chunk-9-1](https://us1.discourse-cdn.com/ansible/original/2X/a/ac9287919f099548d6ce05bf1c43ab526e906fde.png)

This is one area where I’ve done a fair bit of modelling, as “score” is  
a nice outcome variable to work with, and see what influences it.  
Notably, people tend to give higher ratings as experience (time)  
increases, but even the newest users are more likely to give 6+ than  
anything lower, so I think we’re doing OK.

For an interesting use of this variable, see the “chatterplots” at the  
end 🙂

 ![unnamed-chunk-10-1](https://us1.discourse-cdn.com/ansible/original/2X/9/98d28a26c0198a0ef0be517083562f9ad1895dbc.png)

 ![unnamed-chunk-11-1](https://us1.discourse-cdn.com/ansible/original/2X/6/6996952151e605d19c5b408bac5dccd44aa56fb7.png)

This one really made me think! The fact that (marginally) more people prefer to use the OS-provided package over `pip` is a real surprise. There’s probably  
several consequences to this, if we really take it to heart - it  
certianly helps to explain the long tail of older versions we see in the  
previous plot.

We also probably need to make sure we’re holding good communication  
channels with our various downstream packagers, as a good chunk of our  
community is going to base their experience (and thus that score above)  
on the package created for the OS. We can’t just wash our hands of it.

 ![unnamed-chunk-12-1](https://us1.discourse-cdn.com/ansible/original/2X/f/fa408d9f5bcd7acda809d126ff6e9fb35dbfb041.png)

 ![unnamed-chunk-13-1](https://us1.discourse-cdn.com/ansible/original/2X/6/616bc2bd15fcbe70dac3679b430f53e737c4616e.png)

 ![unnamed-chunk-14-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4feb569ddc5b710c603c9b77af30c1309635ec80.png)

Nothing too surprising, but I’ll note (a) that cloud deployments seem to  
trend smaller than physical ones, and (b) that (predictably) use of AWX  
etc trends towards larger deployments. Good to see _some_ things we  
intuit come out right!

 ![unnamed-chunk-15-1](https://us1.discourse-cdn.com/ansible/original/2X/d/d6e2f7b037d1fb8b6da82fcae60b2413d0e3468c.png)

 ![unnamed-chunk-16-1](https://us1.discourse-cdn.com/ansible/original/2X/f/f909c7f560bd1cdb95201ae50f050d7b1762eb01.png)

OK, this needs some more massaging 🙂 - but the takeaway is pretty  
clear. Linux still dominates, with RHEL, Ubuntu, and Debian taking the  
largest share. Combined with the pip vs packaging result above, I think  
this helps us to know what packages to facilitate.

It would perhaps be interesting to do this table once-per-install type,  
and see which OSes are common to those not using pip…. let me know if  
you want to see that!

 ![unnamed-chunk-17-1](https://us1.discourse-cdn.com/ansible/original/2X/9/9e6fa6c9ebe65d06f5626532ca09f9d54e1ae8e2.png)

 ![unnamed-chunk-18-1](https://us1.discourse-cdn.com/ansible/original/2X/6/6d2732b3154addd9c2dc00b7a54e9de49ec04ce8.png)

Genuinely surprised to see VSCode so far in front here. Maybe I’m just  
old 😉

 ![unnamed-chunk-19-1](https://us1.discourse-cdn.com/ansible/original/2X/e/eac4815af846966d17a1db9f8ba804b1be79572b.png)

Processing note - this was a “top-5” question, so I totalled it by  
giving 5 points for 1st place, 4 points for 2nd, and so on. Then I  
summed the scores and plotted the above result.

We know `community.general` is a bit of a grab-bag, but this shows just  
how many key things are held there. We might want to think about what  
that could imply for future work, whether it means more effort on community.general  
itself, or splitting more things into new collections … I don’t know,  
but it seems a disproportionate score in some way.

 ![unnamed-chunk-20-1](https://us1.discourse-cdn.com/ansible/original/2X/f/f19fa60f1d74a941388792172ce21cf4568182b9.png)

 ![unnamed-chunk-21-1](https://us1.discourse-cdn.com/ansible/original/2X/e/e1d360e898d48776721492c980a11a0ca0226f1f.png)  
 ![unnamed-chunk-22-1](https://us1.discourse-cdn.com/ansible/original/2X/a/ab01ff5a650574e9fee74d53b287e0b86e13bdab.png)

Still a lot of role-activity!

 ![unnamed-chunk-23-1](https://us1.discourse-cdn.com/ansible/original/2X/e/e682a37c9b317e8e465cb215a71318a29198c9ce.png)  
 ![unnamed-chunk-24-1](https://us1.discourse-cdn.com/ansible/original/2X/b/b79c8403094244c2771d47970457e7b788a924ea.png)  
 ![unnamed-chunk-25-1](https://us1.discourse-cdn.com/ansible/original/2X/3/39d7ca052db3acc1891359cb718cf837ce931844.png)

Somewhat less that the main score, but only a little. That makes sense,  
writing is harder than just consuming other collections, but it’s good  
to see what’s coming up as issues.

 ![unnamed-chunk-26-1](https://us1.discourse-cdn.com/ansible/original/2X/2/2f329f0beee2f9e86aee5e00d25418b8a9b36c0c.png)  
 ![unnamed-chunk-27-1](https://us1.discourse-cdn.com/ansible/original/2X/d/df06e2f40174a908c8c333c53585e4914ab9f541.png)  
 ![unnamed-chunk-28-1](https://us1.discourse-cdn.com/ansible/original/2X/3/34314137620a365b7abea2fec6374fc751df366d.png)  
 ![unnamed-chunk-29-1](https://us1.discourse-cdn.com/ansible/original/2X/5/56bba678ada9d7b5bdaba6244ea75f1b925dfe81.png)

Examples coming up a lot here - not a big surprise, as keeping that kind  
of content up-to-date as the collections and the language evolve would  
seem to be a big task, to me.

I’ll be honest, I don’t have a lot of insight into Cloud & networking,  
so the next few plots are straight-up, no-commentary. See you further  
down the page 🙂

 ![unnamed-chunk-30-1](https://us1.discourse-cdn.com/ansible/original/2X/0/0ff95c9e8aff0d31728bf2779fdd2e40f108452c.png)  
 ![unnamed-chunk-31-1](https://us1.discourse-cdn.com/ansible/original/2X/0/0dfc1bb377f1181a96c48ced33caf9bc1573e5a7.png)  
 ![unnamed-chunk-32-1](https://us1.discourse-cdn.com/ansible/original/2X/0/0f1c79c35cf2721a67fdb0bcdef413a8e69115b8.png)  
 ![unnamed-chunk-33-1](https://us1.discourse-cdn.com/ansible/original/2X/4/43580d5c5aa08ec437115d1e282e52119f685fef.png)  
 ![unnamed-chunk-34-1](https://us1.discourse-cdn.com/ansible/original/2X/1/13fbc5157dcc1b9048d186fbbaabeaaadfa5a67a.png)  
 ![unnamed-chunk-35-1](https://us1.discourse-cdn.com/ansible/original/2X/c/c8271dd50c13f1ff0fd2cf1dfcdc096e295b3893.png)  
 ![unnamed-chunk-36-1](https://us1.discourse-cdn.com/ansible/original/2X/5/50074b3dd538728692ba03682d4cb61009e36786.png)  
 ![unnamed-chunk-37-1](https://us1.discourse-cdn.com/ansible/original/2X/d/d15561317b6e20abf05692b917e7a4fa881781e3.png)  
 ![unnamed-chunk-38-1](https://us1.discourse-cdn.com/ansible/original/2X/7/7270b4447571a990f7689380babb054e6ef360e6.png)  
 ![unnamed-chunk-39-1](https://us1.discourse-cdn.com/ansible/original/2X/2/27352baa886dab1448bb226844b1910a613d97d2.png)  
 ![unnamed-chunk-40-1](https://us1.discourse-cdn.com/ansible/original/2X/9/9aca80f97337d1728646a7d3a954b853312db049.png)  
 ![unnamed-chunk-41-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4989d3233e2ce9bdd0d97e975a08a9330f0e0721.png)  
 ![unnamed-chunk-42-1](https://us1.discourse-cdn.com/ansible/original/2X/9/987d8dad2253ed851fdb201558645253c52c0b48.png)  
 ![unnamed-chunk-43-1](https://us1.discourse-cdn.com/ansible/original/2X/6/662d2e2ced3534d668b33528c37857aa14244784.png)

OK, I’m back, phew! 😀

 ![unnamed-chunk-44-1](https://us1.discourse-cdn.com/ansible/original/2X/6/62cbc20e19eac1beabe26a070ef419e092c031c7.png)

32% of ~1,100 is a decent chunk of the community, and higher than I would  
have guessed (my take was ~20%).

 ![unnamed-chunk-45-1](https://us1.discourse-cdn.com/ansible/original/2X/1/1e05ff2faa82dd92ddbd0255856b07ce2205e6aa.png)  
 ![unnamed-chunk-46-1](https://us1.discourse-cdn.com/ansible/original/2X/5/58919a24cbeb99dc4067a38d22a93f5a7c5bac29.png)  
 ![unnamed-chunk-47-1](https://us1.discourse-cdn.com/ansible/original/2X/6/69c6b44559b0914b2760d8b7c01413845577d2ff.png)  
 ![unnamed-chunk-48-1](https://us1.discourse-cdn.com/ansible/original/2X/0/0641b494a3b02613af9cacdb1f9ec0270651d57e.png)  
 ![unnamed-chunk-49-1](https://us1.discourse-cdn.com/ansible/original/2X/a/a2951da6a7d1edb851ec74db7a343bf46beb3bb4.png)

Coming out at very close to the overall project score, for a complex  
part of the ecosystem, is a pretty big win, I think.

 ![unnamed-chunk-50-1](https://us1.discourse-cdn.com/ansible/original/2X/b/b97b025ca61a57bf5eb56347634de161cf313291.png)

EEs are required for certain ways of using Ansible, but the uptake here  
is higher than that, so people are clearly finding value in EEs more  
generally. It would be good to hear back from some of our EE users about  
how we can make that better, or educate other users on your usecases.

 ![unnamed-chunk-51-1](https://us1.discourse-cdn.com/ansible/original/2X/b/b327b6a3430f3c0babd8ba311553f4beb5cc70b3.png)  
 ![unnamed-chunk-52-1](https://us1.discourse-cdn.com/ansible/original/2X/1/11cc6b5482b58c07a19b8a26a030213a64ab2a92.png)  
 ![unnamed-chunk-53-1](https://us1.discourse-cdn.com/ansible/original/2X/d/d54e258c7728467f8e7dc4b0de0757c376efb295.png)

EDA use remains really low, but I wonder if that’s a usecase problem or  
a deployment problem. Ideas for what to subset this with to see if we  
can identify patterns in EDA use are very welcome!

 ![unnamed-chunk-54-1](https://us1.discourse-cdn.com/ansible/original/2X/2/2759d76164537731bf54326d48d80b21232f5c97.png)  
 ![unnamed-chunk-55-1](https://us1.discourse-cdn.com/ansible/original/2X/e/eba528a7494cb29d9f2bc28b6b9b8391849b1a26.png)  
 ![unnamed-chunk-56-1](https://us1.discourse-cdn.com/ansible/original/2X/3/3396eb625d1dbdc252c131e319e4dae549f2be9c.png)  
 ![unnamed-chunk-57-1](https://us1.discourse-cdn.com/ansible/original/2X/d/dc70144975947e0e2ab36d637c5152f8a0295012.png)

I don’t find this especially surprising, we’ve known that people like  
using Ansible with Terraform for years. Python / scripts makes sense  
too. Nice to see ARA, Semaphore, etc in the top list too.

 ![unnamed-chunk-58-1](https://us1.discourse-cdn.com/ansible/original/2X/8/82f672cef874472ad05b099e25d516c0c47607c8.png)

It’s a busy world, I know. We won’t judge you, but a big thanks to those  
who do find the time to keep up to date. I’d also point out that this  
relates to the install-type question at the top - if you use OS packages  
you also have a lower burden of things to update manually….

 ![unnamed-chunk-59-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4bd287b433562455c6653c40c390c58a90606024.png)

I can’t fix the lack of time (although I’m first on the waiting list if  
someone else does, please). But I would love to challenge the idea that  
people don’t have enough experience to contribute! Speaking as someone  
who got started in FOSS 20 years ago by hanging out in chat rooms and  
answering questions (frequently badly!) I know that your perspective and  
usage bring something, even if _you_ think you’re doing nothing special.  
Hang out in the forums, and sooner or later there’l be a question you  
_can_ answer, and then you’re off 🙂

 ![unnamed-chunk-60-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4882ccf75be398e708568d80c8548d523719809a.png)  
 ![unnamed-chunk-61-1](https://us1.discourse-cdn.com/ansible/original/2X/a/a76866a506a1626e0b775e0716dc7c874e9cb438.png)

The Steering Committee asked for these two questions, as the maintenance  
of the current package as raised some concerns. However, it seems most  
users feel the package is roughly on-point!

 ![unnamed-chunk-62-1](https://us1.discourse-cdn.com/ansible/original/2X/c/ca0886f7d3815c94ebc5d91c8ba0cddec3448c12.png)  
 ![unnamed-chunk-63-1](https://us1.discourse-cdn.com/ansible/original/2X/4/4d1aa4c135ff5a718cf9b8f189fc61064b465b5a.png)

The amount of positivity in those top words for final comments is always  
going to bring a smile to my face 🙂

## Extras

### Chatterplots

That’s all the questions, but I promised you a couple of extras! Let’s  
start by looking at open-ended replies, and the ratings questions - and  
then see what words are associated with higher or lower scores.

 ![unnamed-chunk-64-1](https://us1.discourse-cdn.com/ansible/original/2X/e/e0a15ae6db28cb9c5640c8fa77c84a66c44a680c.png)

Take a moment with this - we’re saying that words higher up (bigger Y  
value) are more frequent, and words to the right (bigger X value) are  
associated with higher ratings (the 1-10 score question). The black  
vertical line is the average score, 7.99.

On the right we see a lot of love for the docs, the community, and even  
the survey itself! But I think it’s interesting that words like simple,  
language, programming, and so on are more negatively rated - perhaps we  
are no longer as simple & easy to use as we once were?

What other “text vs score” plots would you like to see? Let me know!

### Ratings stacked

Another thing we can do is take all the 1-10 rating questions, and stack  
them together:

 ![unnamed-chunk-65-1](https://us1.discourse-cdn.com/ansible/original/2X/0/0cd593c8b38afdc0e39c46bb9c38bff5fb944060.png)

This gives us the chance to see all those score historgrams stacked  
together, along with the number of responses to each score question.

I don’t think this is too surprising - but it’s good to see that ratings  
are _all_ largely positive.

### Lenses / faceting

It’s often useful to ask how one question varies with another. As an  
example, let’s look at how the overall score of the project varies  
across

 ![unnamed-chunk-66-1](https://us1.discourse-cdn.com/ansible/original/2X/a/a9973c57c722dbb543923ccbd2d81a2ac7d62285.png)

So we can see that while all the scores are pretty happy, there’s a  
noticable trend towards higher values once users get to 3+ years.

This is actually a very simple model - we’re using “Experience” as a  
_predictor_ for Score (the _outcome_). This can work for most pairs of  
variables in plot form (e.g perhaps Geography vs DevTools?) but we can  
actually go further and make bigger models. In that case we’d say  
something “we thing X, Y, and Z are relevant to the outcome, but lets  
see which is most important…”. These models take more time, so I’ve not  
prepared any to show you here, but if you want to suggest one, we can  
discuss it!

### Next steps

Again, this is mostly just raw data and some interpretation. In many  
cases, we’ll have to wait for a second survey to see how they move from  
one year to the next, but in the meantime we can try to look for  
patterns in the relationships between the questions. I’ve said it  
before, but _do_ come talk to me if you have thoughts on what you’d like  
to see for such facet / subsets / models - I’d love to do a follow up  
blog in a month or two with a collection of these ideas.

In the meantime, another _huge_ thank you to the people who filled out  
the survey, and also to _you_ for reading to the end! Until next time!
