Umple is an open-source programming technology developed almost entirely by students, the majority of whom were working on it as their capstone project through a program called UCOSP. We describe our development process for Umple that has provided a rich educational experience for the students, while at the same time continually improving Umple’s quality. We also describe features of Umple that have been designed to facilitate its use in teaching software engineering.