Give yourself +1 for each "yes", 0 for each "no", and -1 if you don't know, or don't understand the question.
| Score | ||
| 1. | Do you use version control? | |
| 2. | Can you rebuild everything in one step? | |
| 3. | Do you have an automated test suite? | |
| 4. | Do you build the software, and run the test suite, daily? | |
| 5. | Do you have a bug database? | |
| 6. | Do you use a symbolic debugger? | |
| 7. | Do you use a style checker to ensure that your software is written in a uniform, readable way? | |
| 8. | Can you trace everything you release back to the software that produced it? | |
| 9. | Do you document as you program, and keep your documentation in your source files? | |
| 10. | Can you easily set up a development environment on a new machine? | |
| 11. | Do you have a schedule with small binary milestones? | |
| 12. | Do you estimate how long tasks will take before you start, and compare that with how long they actually took? | |
| 13. | Do you test your interfaces using paper prototypes before implementing them? | |
| 14. | Is there a searchable archive of discussions about the project? | |
| 15. | Do team members write and share small tools for automating common tasks? | |
| 16. | Does your schedule allow for infrastructure development, training, sick time, etc.? | |
| Total: | ||
| Results | ||
| <0 | Chaotic: Your development practices are unstructured, and you have no real idea how reliable the software you produce is. This course will greatly improve your productivity, but you may find the first few weeks challenging. | |
| 0-4 | Adequate: You are able to produce software that works, but it requires more effort than it needs to, and unpleasant surprises are common. This course will introduce you to some new concepts, and help make your successes repeatable. | |
| 5-8 | Good: Most junior programmers are in this range after their first year in industry. Some of this material will be review for you, but the rest will help you solidify your understanding. | |
| 8-16 | Excellent: You should be teaching this course, not taking it. | |