Software development: Some critical views

Abstract
We argue that the software development process can be interpreted as a knowledge-intensive system, incorpor- ating the expertise and skills of many different people over extended periods of time and facing high levels of internal and external uncertainty. Such a perspective enables us to question some current fashions, challenge some powerful and pervasive ideas and assumptions, redefine some problems and open up new debates and opportunities.