First things first
First things first, but not necessarily in that order. 😉
In software development as in other complex activities, it’s good to have a linear roadmap to guide us along the process. A simple checklist can greatly improve our ability to complete a software project.
My favourite one is taken from The Career Programmer: Guerilla Tactics for an Imperfect World . I think it’s a great book that every software developer should read.
1. Management states high-level requirements.
2. Programmers formalize the requirements in detail.
3. Management approves detailed requirements.
4. Programmers identify testing resources.
5. Management approves testing resources.
6. Programmers estimate duration of design phase.
7. Testers estimate duration of test plan creation.
8. Management approves design and test plan efforts.
9. Programmers perform design phase.
10. Testers begin development of test plan.
11. Programmers estimate duration of estimation phase.
12. Management approves estimation phase.
13. Programmers perform task partitioning.
14. Programmers perform detailed estimate in hours.
15. Management may allocate additional programming resources.
16. Programmers define timeline with incremental milestones.
17. Management approves the timeline.
18. Programmers begin implementation.
19. Testing begins when software deliverables are available.
20. Programmers complete implementation.
21. Testers perform full regression testing.
22. Programmers define integration procedures.
23. Programmers implement installation program.
24. Testers perform full regression testing including installation and integration.
25. Testers approve beta release.
26. Beta testing begins.
27. Testers perform free play testing in parallel with beta.
28. Beta testing complete.
29. Testers perform full regression testing including installation and integration.
30. Testers approve product release.
31. Management or marketing begin distribution.
32. Programmers collapse in corner and sleep for three days.