The official goal of this course is to give students first-hand experience of working in distributed teams. There are lots of other lessons to be learned, though, lessons that can only be learned by working on real applications. Take the performance bug that we just found in Basie, or the seemingly-simple problem of deleting tags (1, 2, 3, 4, 5, 6, 7). Neither is a coding bug: in both cases, we’re going to have to re-think a significant chunk of the system’s design. Problems like this just don’t come up in assignment-sized programs; as Simon Peyton-Jones observed in another context, scaling things up often changes their nature in important ways. It takes more effort for students to ramp up, but we think it’s worth it—do you?