MetaDirectory
- 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.)
- 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. [PDF]
- 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
- Lessons Learned -- Current Problems
Technical and managerial best/worst practices. Based on study of US Department of Defense software projects.
- The Many Dimensions of the Software Process
Explores the importance and purpose of software process and quality.
- Medical Devices: The Therac-25
Case study of a well known software error. [PDF]
- 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" target="_blank" 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.)
- 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.