Douglas Crockford – Quality
A coworker pointed me to the following video: Quality Software Development by Yahoo Architect Douglas Crockford (181 MB). The presentation from from the Yahoo 2007 FrontEnd Engineering Summit (March 7-8, 2007).
Below are my notes of the slide titles.
- The Software Crisis
- Craft vs Engineering
- Computer Science has not taught us how to manage software projects
- Software Construction (Good and Bad Analogy)
- Nature of Software
- Programming is Difficult
- Lack of Metrics
- Lines of Code – not good
- Programmers are optimists
- Programmers do not understand how they spend their time
- Actual time typing is pretty small
- Skeptical of anything that requires more keystrokes
- Programming is a social activity
- Cost of Innovation
- Legacy
- Leaps (of productivity? software capability?)
- Object Oriented Programming (History)
- Failed Leaps
- Software does not have enough self awareness to be afraid of bugs
- Bugs
- Snake Oil / Silver Bullets
- Mythical Man Month (1975)
- Literate Programming (Knuth)
- Significant difference in individual ability
- Surgical Team (Harlan Mills)
- Incrementalism
- Beta (Perpetually Unfinished)
- Application triad (skill, technology, requirements)
- Feature Cost
- Code Value
- Code Quality (Micro and Macro View)
- Simplest thing to enhance value of codebase – make more readable
- Yahoo Javascript coding convention
- Programs are a medium of intentional communications
- Good architecture – necessary structure to keep from collapsing
- How do we change a correct program into another correct program?
- Cruft – “Software Scar Tissue”
- Causes of Cruft
- Bloat – “Software Cancer”
- Insecurity
- Cruft accumulates -> complexity groups -> progress slows
- Refactoring
- Sometimes it is best to start over
- The pain of the crash
- The illusion of completion
- An experienced team can cross that ground again very quickly
- Conclusion