Wal
After reading about Google's 12 top software development practices earlier this week, I set myself the goal of listing the 10 software development practices that have most helped me in my job of managing delivery of software products with ~1M lines of C/C++ code. After reading your post I thought about which of these practices were not critical in my line of work and could only reduce my list to 9. I would guess that other practices would be more important in other types of software development.
Five practices seems too few to me. Smarter people may disagree.
-Peter
- Assemble the best team you can afford and keep them.
- Be data driven. Measure progress with tests. Keep a diary with 1 day to 1 week granularity.
- Be balanced. Don't rely on any one software engineering practice. e.g for quality control use Code review + Unit tests + Automated System tests + Human QA.
- Expect the unexpected. Maintain a Top 10 risk list . Confront risk by moving the riskiest items in project to the start of the schedule.
- Work in short development cycles with real-world success criteria. Otherwise your project and its schedule are at risk of loosing touch with reality.
- Eat your own dogfood. Use the product you are developing.
- When you have enough information to act then act. Time is precious in software development. Never waste it.
- Have a common tool set and common practices for the whole development group and make these tools easy to deploy. Aim for near-zero (say 5 minutes) tool setup time per day.
- Use source code control.