The current state of traditional software development is surveyed and essential problems are investigated on the basis of system theoretical considerations. The concept of user participation is proposed as a solution. The relation of several different methods of user participation to the specifications, the communications, and the optimisation barrier is integrated into a concept of participatory software development. The pros and cons of essential problems known to obstruct optimal software development and possible ways of solving them are considered. The preparation of this paper was supported by the BMFT (AuT programme) grant number 01 HK 706-0 as part of the BOSS "User oriented Software Development and Interface Design" research project.