This is a cool idea and I’m always excited for new ways for Exercism to monetize and be sustainable. That said, I think it’s worth focusing more on what problems you’d be solving in exchange for their money; “track each others’ progress” seems a little shallow.
I think there’s broadly 2 groups who would use a paid Exercism team:
- Companies (probably tech, but not necessarily)
- Schools
I don’t imagine friends would go for it since the free version is already great and it’s worth a little hassle (checking someone’s profile manually) to not have to pay.
Companies
I work for a big-but-not-ginormous tech company. I’m not totally sure if we’d go for something like this at work, but I think it’s possible if positioned correctly. The company encourages “professional development” and we’ve got a paid O’Reilly plan we can access on a limited basis. But, we’re also there to create value for our customers, so actual work always comes first.
We do expect new hires to be proficient in our stack (Ruby, Java, TypeScript, etc), but they can already do that using the free Exercism offerings. In that sense, you’re sort of competing against yourself. I don’t think our managers would get any value from seeing their employees’ track progress. They might look at our public profile occasionally, but all they ultimately care about is our output (not our progress on a specific track).
That said, I think Exercism could really shine with custom private tracks. We’ve got a lot of propriety libraries we use internally that have a learning curve. Today, we solve this with an “Engineering 101” course for new hires (that I teach periodically). They make basic common changes to our codebase, like adding a new API endpoint, adding a new database model, etc. It helps them get a feel for our tools and ecosystem. But, they only do half a day on each topic, so there’s a ton of information that they have to learn later in docs. If we could make custom tracks with stub versions of our actual packages, we could introduce many more concepts and tasks interactively, which would work. I could see a lot of value in that. But, with access to proprietary code also comes much more stringent privacy and security requirements on our end.
Team membership wise, everything is tied to our corporate email addresses (including new, corp-only GitHub accounts). So if the company was paying for seats on an Exercism team, they’d definitely want the email-allowlist vs “any Exercism account can click this link to join”. If you’re targeting companies, SSO is also a very common feature in this segment. Triply so if there’s anything non-public available to accounts in that team (if you go the route of custom tracks mentioned upthread).
Alternatively, you could allow paying customers to self-host the whole platform. That would simplify some things (access controls) and make other things harder (tech support you don’t want to be doing). It would also simplify billing, since you could charge a (high) subscription fee and not worry about the mechanics of per user per month pricing (which has a lot of edge cases). This is what GitHub does.
School
I haven’t been in school recently, but I’d imagine their focus is more around controlling costs and generating graded reports.
A teacher would only want to pay for each student for the duration of the class (a semester, or ~ 4 months) and would need to be able to lower their bill if students drop from the class early. Also, I’m not sure that admins should count against a team’s head count. If you’re teaching 3 classes of 10 students each, I’d expect to pay for 30 students, not 3 teams of 11 members (10 students + 1 admin).
In a use case where a specific set of 3 exercises are this week’s homework, I’d imagine the teacher would want to be able to:
- generate a report of the whole class to see how far each student got so they can be graded
- ensure all submissions happened by a deadline (and maybe restrict submissions between a start and end timestamp so students don’t run ahead in the work)
- check for similarity between student solutions to catch cheating
There are also privacy concerns with comments & kids (at least in the US, laws might be different in other countries). I’d imagine that teachers wouldn’t want it to be possible for internet randos to comment (or maybe even see) student solutions.
Lastly, you’d probably want to change how community solutions work on a team. You might:
- restrict access to (or hide entirely?) public community solutions before a student has submitted a passing iteration. They could still see them in an incognito window (since they’re public anyway), but adding a little friction to get to the homework answer is probably good.
- have a “class solutions” section to show community solutions, but only from members of the class
- Support for featuring solutions to members of the class, so a teacher could showcase their own as an example (or a particularly good student solution)
It’s probably worth getting in touch with some actual teachers to learn more about their needs. Teachers who participate in the Microsoft Teals program might be place to start.
Conclusion
I think a team offering is a really promising direction for Exercism as a whole! It might be worth focusing on a single use case (companies, schools, or else entirely) rather than going for a generic “teams” offering, at least to start. Needs in this space are complex (and often non-obvious) so the more you can learn about your target demographic and cater to their needs, the better a chance at success you’ll have. It will also help on pricing, since companies and schools have very different budgets and willingness to pay for this sort of thing.
Happy to expand or chat more about any of the above as well, if that’s helpful.