<p>One objection that folks regularly raise to the "toy problems" used in developer learning exercises is that they're too simple compared to real software. But here's the thing: when software's designed well, it looks a heck of a lot like a network of loosely-coupled "toy problems".</p>