Our collaborative research activities in software development (at the University of Colorado's Center for Lifelong Learning and Design, the University of Tokyo, and Software Research Associates) have focused on understanding the implications of the quickly disappearing distinction between users and developers. We've also concentrated on establishing new software development methodologies by viewing software systems as continuously evolving sociotechnical systems driven by design activities of both professional software engineers and users. We believe that domain experts, as the owners of problems, need to be in charge of developing the software they require. Toward that end, we've created the metadesign framework, which reformulates software development activities as a continuum of different degrees of design and use. In addition, on the basis of our research and our findings in the research literature, we've developed a set of guidelines for supporting domain experts in software development.