Research discussed at WEUSE V: The 5th Workshop on End-User Software Engineering indicates that, in the US, there are about four times as many people who do programming at work (12 million) as there are professional programmers (3 million). Add in another 55 million of us who use spreadsheets and databases (and thus may also be considered to be doing programming) on the job, and that means there’s probably a lot of undependable, error-riddled software being created. As workshop participants noted: “When the software that end users create is not dependable, the people whose retirement funds, credit histories, e-business revenues, and even health and safety rely on decisions made using that software can face serious consequences.”
The workshop participants discussed end-user programming with a specific focus on the software engineering that is required to make it a more disciplined process, while still hiding the complexities of greater discipline from the end user. Proceedings from the workshop are available in a report at http://www.sei.cmu.edu/library/abstracts/reports/09sr015.cfm.
One approach reported on in the workshop: distributed cognition, advanced by Margaret Burnett et al. From the SEI report: “Thus, instead of trying to build systems that solve this type of problem: ‘What can the system figure out automatically so that users need not think too hard?’, [the] distributed cognition perspective is that the problem statement becomes: ‘How can end-user software engineering tools help end users think?’ “