In the past few years I have been involved in a few small development projects. By small I mean a project with two or maybe three developers and a timeframe of four to eight weeks. Some of the projects have been very successful and others have been more troubled.
In retrospect I found that the in the more successful projects we applied a more strict agile process. The most troubled projects were those that were run in a sloppier fashion.
In a small project with a tight budget it is essential that you:
- Show continuous progress
- Can respond to change quickly
- Don’t waste time on things that don’t add value
- Reduce defects
To be successful in small projects, in my experience, you should at least do the following:
- Have a product backlog
- Each product backlog item should be small enough to be completed in one day
- Use a task board
- Demonstrate your software one a week
- Do test-driven development
- Practice Continuous Integration
- Automate build and deployment
- Have retrospectives regularly
- Daily stand-up meetings together with the customer
- If you need estimates, use T-shirt sizes (S, M, L)
- Pair-program as much as you can
A consequence of the last point is that you should never be alone no matter how small the project is.
What can be left out?
In my experience you can safely in most cases skip the following practices:
- Break down of features into tasks
- Detailed estimation
- Burn-down charts
- Velocity tracking