When Things Go Wrong

Learn how to avoid demotivating the new developers.

We’ve built our first prototype, and the new leaders are starting to, well, lead. It may seem like a feedback loop that’s just too suspiciously positive. Don’t worry. Things will eventually break. Expect periods of success followed by frustration. At some point, the team will stall on the learning curve, and how we address that challenge will make or break adoption.

Keep in mind how much developers can learn. The old languages don’t work as well anymore precisely because they’re missing core concepts that new systems need. Functional programming, concurrency, and distribution are all demanding disciplines. Learning them won’t happen overnight. If we expect some pushback from the team, we’ll be better equipped to handle it.

The trick to breaking through with a new concept is to minimize the time each developer is stuck. We do that by pairing inexperienced developers with experienced ones. Whether that happens in a classroom setting, a conference, pairing sessions, or code review is up to us. The key is to keep attitudes receptive and positive while we’re opening learning channels through real coding experience.

Some concepts may be hard to break through. What clicks immediately for one developer may require time for other developers to digest. When that happens, it’s OK to put it aside and revisit it later. Programmers are a sum of their experience. When we’re learning a new language, it’s inevitable that old programming habits carry over to the new language. ...