Building bug-free O-O software: An introduction to Design by Contract: Advanced use of assertions for clearer specifications and greater software reliability. By OO guru Bertrand Meyer, creator of Eiffel.
Classic Mistakes Enumerated: Description of 36 ineffective development practices: people-related, process-related, product-related, technology-related. (Sample chapter from Steve McConnell's book Rapid Development.)
Classic Testing Mistakes: The role of testing, Planning the complete testing effort, Personnel issues, The tester at work, Test automation, Code coverage
Heavy Rotation: For business software, faster-cheaper can be better too.
High-Pressure Steam Engines and Computer Software: Software safety. Parallels between the early development of high-pressure steam engines and software engineering that we can apply to the use of computers in complex systems.
Introducing Demeter and its Laws: Adaptive Programming - specifying the connections between objects as loosely as possible. Makes programs more flexible, more resilient to change, and more adaptable to varying configurations of classes within a given domain
Large Software Systems - Back to Basics: John Evans; Crosstalk, June 2000. The importance of software architecture, and related items such as unambiguous requirements and coding standards.
Lessons Learned -- Current Problems: Technical and managerial best/worst practices. Based on study of US Department of Defense software projects.
Major Causes of Software Project Failures: Lorin J. May; Crosstalk, July 1998. Based on interviews with software consultants and practitioners who were asked to provide "autopsies" of failed projects with which they have been acquainted.
Nine Steps to Delivering Defect-Free Software: By a software developer and consultant with over 30 years experience.
On the Criteria To Be Used in Decomposing Systems into Modules: One of the classic articles leading to modern software engineering, by D.L. Parnas.
Orphans Preferred: Characteristics of software developers - personality type, demographics, age, education, attitudes.
Principles of Good GUI Design: Describes the basic rules for all good interfaces - the cardinal dos and don'ts.
Seven Principles Of Software Development: Emphasizes "soft" issues - attitude, approach.
Seven Steps to Test Automation Success: This paper presents seven key steps: improve the testing process, define requirements, prove the concept, champion product testability, design for sustainability, plan for deployment, and face the challenges of success.
Successful Engineering Management: 7 Lessons Learned: People management advice for technical people.
Sure It Works, But Is It Beautiful: The Relationship Between Software Aesthetics and Quality: Some aspects of the relationship between quality and aesthetics (beauty) in software, using architecture analogies.
Survival Crib Notes: NASA's Success Checklist: 9 Dos and 8 Don'ts for software project success, from NASA's Goddard Space Flight Center. (Sample chapter from Steve McConnell's book Software Project Survival Guide.)
The Many Dimensions of the Software Process: Explores the importance and purpose of software process and quality.
The Programmers' Stone: Recapturing, exploring and celebrating the Art of Computer Programming.
The Therac-25 Accidents: Case study of a well known software error.
To Hell and Back: CIOs reveal the projects that did not kill them and made them stronger.
What Do Users Want? Engineering Usability into Software: User-Centered Design. Simple approaches for delivering smaller, simpler systems that better serve the needs of users.