Hacker News new | ask | show | jobs
by ilikebits 1070 days ago
Excellent question, and this was a serious concern for us. And we have experience with this! We had one deep Haskell expert on the team who helped build a bunch of core primitives who has since left to another company.

One of the motivations for adoption for us was strong interest on the team. Looking back on our team...

1. We started with me (enthusiast), our expert,and a Go developer with no Haskell experience.

2. Over time, at its peak, the team grew to us 3, Python developer who had dabbled, two Ruby developers who were interested but had no experience, a frontend expert who had dabbled, and another engineer who I didn't work with closely but I think had a background in Java?

3. Our expert left the team before or around the time that the last person (maybe-Java person) joined, I think.

4. On the second Haskell team I spun up, it's me, one person from the old team, a Ruby/JS developer, and a JS developer.

We were able to get all of these people productive in Haskell. It got easier once we had more experience teaching folks. There are a handful of _key differences_ between Haskell and ALGOL-family languages (mostly around evaluation model and effect tracking), and once you nail those down, the rest is pretty smooth sailing, and your SWE experience and intuition begins kicking in again.

Although we miss our expert very much every day (they were a very cool person! They drove a motorcycle!), their departure has not had an outsized impact on our velocity.

A sibling comment recommended a bus factor of 2-3. I think this is roughly correct, although I would think of this as not merely your "don't get hit by a bus" group, but also your core teaching group.

1 comments

This is the biggest thing that scares me as a manager. KISS protocol rules.