1) Algorithm understanding
- ATBD reading and understanding
- prototype software reading
- aux data analysis
2) Architecture design
- module decomposition
- module definition
- processor input definition
- input data
- processor parameters
- output format definition
- bands
- flags
- mandatory and optional elements
- meta data
3) Software implementation
- algorithm modules
- input data readers (if applicable)
- auxiliary data readers incl. validation (if applicable)
- user interface
4) Software verification
5) Interaction and iteration with scientists
- debugging
- updated following algorithm improvements