Incremental Development
Key idea: all implementations handle real inputs
- Might only be a subset of inputs
- Will certainly be a subset of functionality
- But a partial implementation works
Selection of increments
- First increment should be ready FAST
- It should also achieve some observable subset of the spec
- Interface plus minor features, perhaps
- Increments can be broken down by capabilities (often based on inputs)
- Different commands
- Basic vs. advanced capabilities
- Easy vs. difficult functionality to implement
- Different classes of data values
- "Normal" values vs. special cases
- etc.
Example 1: Web Browser
- Display the HTML text. Ignore all tags. New URLs can be typed into
window.
- Pages are cached; the back button works. Hyperlinks embedded in text work.
- Image tags work. All other "standard" HTML tags work (like formatting
instructions and tables).
- Forms and CGI
- JavaScript
- Java applets
- HTML+
Example 2: Spreadsheet
- Display grid. Enter/edit numerical entries. Load and save files.
- Perform mathematical calculations on a row/column.
- arithmetic operators
- order statistics (mean, median, mode, standard deviation)
- Generate graphs