Abstract: If you want to get a programmer talking, ask for advice on writing good code. We're all full of it. But when you take a team of programmers and ask them to build a working product with less money, time, and resources than desired, something bad can happen. The result isn't really very pretty. Linden Lab, the developers of Second Life, have provided a very interesting case study in medium-scale software engineering. Second Life's client application (known as the viewer) was open-sourced last year, after having been developed in a proprietary environment for several years. It provides an interesting platform to take a look at some suboptimal coding patterns that seem to occur frequently in professional software development. As a software developer for Linden Lab, I'm currently working on improving the viewer. We'll examine a few of the things that could have been done better, as well as some of the psychology of why such things happen, and some rules of thumb regarding how to avoid making such mistakes on other projects.