Grow Together (2022)

30 May 2023

Grow Together (2022)

It’s coming in late, but here is the Coupling yearly round-up for 2022!

waits for wild applause

Tough crowd. Anyway, I was a bit nervous about how these were going to turn out before collecting the data, but it’s possible that nervousness was misplaced. Sometimes I can be a twitchy fellow, after all. Let’s look!

Numbers

I have a new calculator for determining the numbers this year - doing less “download the whole database” and more “let the service do the calculations for me”. Way more civilized this way. But the rubric has changed, so for 2022 we get total 580 spins.

Now, that’s less than the 994 I logged for 2021 in that blog. But, if I run the same new stat system for 2021, I get 761. So 2022 is still less than 2021.

Let’s look at some of the other numbers: about 22 parties used Coupling, and 175 players. That means the average party had 8 players. Four pairs! Makes a lot of sense - that’s about the size when struggling along with manual pair assignments gets really, really tough.

It looks like pin popularity has leveled out - those 22 parties had 13 pins among them all. Those pins though were applied 404 times, which means that 2/3 of all spins had a pin. That’s pretty good traction for that feature! I’m curious what people are specifically using it for: on my team in 2022 we had a pin for “error watch”, and it served its job well.

There were still some power-user teams in play! One team had 58 spins: looks like they were averaging a weekly rotation but had some extras. That’s a full year of use! Another had 66 spins, and a weekly rotation. Another had 68 spins, and was spinning about every two days. Still another had 93 spins… and they were spinning every day!

So you can kinda tell, there’s a fun diversity of usage here. Weekly users, bi-weekly users, daily users. And all of these groups are really sticky: these teams have either been using the tool for years, or have brought the tool with them to their new team.

Features

Ok, I don’t recall doing much this year, especially compared to 2021. But lets see…

  1. Converted all CSS to emotion templates. The value delivered by the css module system I was engaging before was pretty universally supplanted by the emotion template plan, so its -all emotion- now.
  2. Gradle Configuration Cache support. This means local builds start lickity split, being able to skip the configuration step. This required rewriting some Gradle plugins and such (including replacing Gradle Semantic Release with my own simplified rewrite Tagger), but I learned a lot in this process.
  3. Changed the word “tribe” to “party”. I heard of one complaint about the term, and decided that “party” was more consistent with the application’s metaphor.
  4. Started using a CDN for a few dependencies, and built into the build system the ability to ensure it matches the version used for local builds. You’d have thought there were more javascript libraries for solving this problem, but most of the ones I ran into were out-of-date and no longer functional. I have my own hand-rolled system now that uses jdelivr as its backend, and I’m very happy with it.
  5. Switched from CircleCI to Github Actions. That was wild: I was an outspoken advocate for CircleCI for years and years. But I was running into enough friction keeping it working, and Github Actions kept getting better and better… it was impossible to justify not pulling everything over. So it happened!
  6. Switching the Coupling SDK to be entirely Ktor-based. While its kind of a chunky implementation (size-wise), it was good practice in working in purely multiplatform-compliant Kotlin, both for REST and websocket communication.

As you can see, it was a year mostly focused on build improvements & study, with very few user-facing changes. What can I say, I was busy!

What features would you want added? I’ve heard from a few people that some kind of official “mob-mode” would be useful, though that sounds so different than the existing app that it sounds like a large undertaking, with a design I wouldn’t have a lot of personal confidence in creating. If that’s something you’d like to help make, let me know!

Other things that have crossed my mind:

  • webhook support: automatically calling a webhook on events.
  • insights / recommendation system
  • conversational UI
  • other form factors (desktop, phone, tablet)
  • git integration
  • github integration
  • notion integration
  • JIRA integration
  • shortcut integration
  • pivotal tracker integration
  • azure devops integration

I’d love to hear ideas, especially ones that solve a real and pressing problem.

Anyway, that’s all I have for today. Take care, and solve it together!


If you’re wondering, yes, I filtered out data that was clearly people just toying with the app. Toy away!


Image generated by Bing Image Creator, from the prompt “splash image for medium article titled “Grow Together”, which is about how a program has been used over the last year.”