Over the past 25 years, user interface designers and usability engineers have studied and refined human-computer interaction techniques with the goal of improving people's productivity and experience. One result is an increasing number of tools designed to help end users build or customize software solutions for a variety of everyday problems - from email filters, to spreadsheet simulations, to interactive web applications. How far can end users go in meeting their own software requirements? Given the right tools, people and organizations may be able to rapidly develop solutions to a huge number of context-specific computing requirements, eliminating the wait for IT professionals to analyze and engineer a solution. But is this a good thing? End-user programmers are not trained in software engineering or computing paradigms. They have little intrinsic motivation to test their constructions for even basic concerns like correctness or safety. In this talk I argue that the transformation of end users into software developers is well underway and discuss the prospects for maximizing the benefits to society while addressing the risks.