1. Understanding Software Engineering 2. The Problems with Software Engineering 3. Understanding Software Development 4. Finding a Better Metaphor Than Software Engineering
II: Software Craftsmanship
5. Putting People Back into Software Development 6. Craftsmanship Is the Opposite of Licensing
III: Implications of Software Craftsmanship
7. How Craftsmanship Affects the Users of Systems 8. Customers Have a Different Relationship with Craftsmen 9. Managing Craftsmen 10. Becoming a Software Craftsman 11. Mastering the Craft 12. Apprentice Developers 13. Journeymen Developers
IV: Repositioning Software Engineering
14. Software Engineering Projects 15. Hazards of the Software Engineering Metaphor 16. Learning from Software Engineering
V: What to Do on Monday Morning
17. Experience—The Best Indicator of Project Success 18. Design for Testing and Maintenance 19. Perpetual Learning