TL;DR: This text brings together ideas on all the human issues of software development: quality and productivity, teamwork, group dynamics, personality and programming, project management and organizational issues, interface design, human-machine interaction, cognition and psychology.
Abstract: This text offers practical insights into the human side of software development. It brings together ideas on all the human issues of software development: quality and productivity, teamwork, group dynamics, personality and programming, project management and organizational issues, interface design, human-machine interaction, cognition and psychology.
TL;DR: It will be argued that whereas Kuhn's concepts of "scientific revolutions" and "paradigm shift" can partially explain the large- scale, radical change from "traditional" software methodologies to Agile ones, Popper's critical rationalism seems better suited to the small-scale, piecemeal methodological approach of Agile methodologies.
Abstract: This paper critically evaluates the use of revolutionary and evolutionary theories of scientific method, respectively those of two prominent 20th century philosophers, Thomas Kuhn and Karl Popper, to account for change in software engineering methodologies. The paper will predominantly assess the extent to which the Agile software community's use of Kuhn's theory of revolutionary scientific change, particularly in Kent Beck's Extreme Programming (XP), is justified. It will be argued that whereas Kuhn's concepts of "scientific revolutions" and "paradigm shift" can partially explain the large-scale, radical change from "traditional" software methodologies to Agile ones, Popper's critical rationalism seems better suited to the small-scale, piecemeal methodological approach of Agile methodologies. The ethical implications to software engineering of Kuhn's and Popper's theories, as well as the work of the Peopleware authors and the architect, Christopher Alexander, will be discussed. Finally, the ideas of the Frankfurt School will be used to broaden the Popper versus Kuhn debate. A critical reflection on the soundness of applying theories of scientific methodology to the practice of software engineering concludes this paper.
TL;DR: In this article, the authors present a survey of the state of the art in the field of software development, focusing on the following: 1. The Basic Concept of Personal Software Processes (PSP) 2. Software Reuse.
Abstract: I. DECLINE AND FALL, REEXAMINED. 1. The Original Premise. An Update of the Original Premise. What Do Software Customers Really Want? Conclusion. 2. Peopleware. The Basic Concept. Breaking the Social Contract. Other Changes in Peopleware. Strategic Implications. 3. The Other Silver Bullets. Software Process Improvement. Object Technology. Software Reuse. Software Metrics. Summary and Conclusions. II. REPAVING COWPATHS. 4. System Dynamics. Models of Software Processes. Visual Models. Some Examples. War Games. Summary and Conclusions. 5. Personal Software Practices. The Concept of Personal Software Processes. The Practicality of the PSP. Summary and Conclusions. 6. Best Practices. What Are Best Practices? Best Practices at DOD. Worst Practices. Implementing Best Practices. Summary and Conclusion. 7. Good-Enough Software. The Concept of "Good Enough." What Prevents Us from Building Good-Enough Software? Defending Good-Enough Software. Building Good-Enough Software. The Implications for American Software. Summary and Conclusions. III. THE BRAVE NEW WORLD. 8. Service Systems. Why Do We Recreate the Same Old Stuff? Core Systems, Infrastructure Systems, and Service Systems. Strategic Implications. The Impact on the American Programmer. 9. The Internet. Who Cares? Why This Matters to the Average Programmer. Who's Going to Win the Internet Race? 10. Java and the New Internet Programming Paradigm. What Is Java All About? The Java Environment. The Java Language. Alternatives and Competitors. Strategic Implications. Summary and Conclusions. 11. The Microsoft Paradigm. Microsoft's Approach to Software Development. The Dark Side of the Force. Into the Belly of the Beast. 11.4 Peopleware at Microsoft. Development Practices at Microsoft. 12. Embedded Systems and Brave New Worlds. Why Embedded Systems? Some Potential Examples. Trends and Implications. Who Will Prevail in the Field of Embedded Systems? 13. Past, Present, and Future. Appendix: An Updated Programmer's Bookshelf. Index.