...
Activity/Proficiency | Fundamental Awareness | Novice | Intermediate | Advanced |
---|---|---|---|---|
Code management | Fetching code samples and other material from a code repository prepared by others, and being aware of the flow. | Basic commands for committing, pushing and pulling, and understanding what merge conflicts are and how to handle them. | Versions, tagging and branching and merging. Forking and updating. | Deployment and releases. |
Continuous integration | Running pre-made tests on their code and understanding the fundamental idea of testing code behavior. | Writing and running their own unit tests (not necessarily TDD). Using a build system for assembling a runnable application. | Unit and integration testing, driven by build system. | CI automation using a server. |
Issue tracking | Use issues tracking system to report bugs (to some system they are using). | Use issues to manage requirements that drive development. | ||
Code review | Going through code with others, to improve/ensure quality. | Pull requests, for contributing fixes to other system. | Using code review within own process, to close issues. |
Staged introduction
...
(proficiency mapped to semester)
Activity/Proficiency | Fundamental Awareness | Novice | Intermediate | Advanced |
---|---|---|---|---|
Code management | 1, 2 | 3 | 4, 5, 6 | 7, 8 |
Continuous integration | 1, 2 | 3 | 4, 5, 6 | 7, 8 |
Issue tracking | 3 | 4 | ||
Code review | 4, 5 | 6 | 7, 8 |