I'm going to be managing projects for a very small (2-5) senior developer team. They develop a subscription based web application. It has been in use for many years so at this point the work involves:
- Developing new features and updates to existing features
- Developing in-house tools and reports
- Fixing bugs
- Investigating customer service issues
Production releases are sometimes determined by customer obligations, sometimes by competitive advantage, but for the most part are not time-critical. I'd like to have regular production releases to keep the product fresh -- once every 2 months or so.
Since the team is so small, the developers themselves will have to be involved in designing, testing, deployment, and maintenance.
Since we do not have a dedicated maintenance team I see the major challenge being development and planning disrupted by bug fixing and customer service issues. They can distract us during new feature development and disrupt the release schedule.
My initial thought is to do the following:
- Hire a junior programmer to buffer the senior developers from maintenance tasks. In between maintenance tasks this person can assist the senior devs.
- Adopt a scrum style approach where we have a series of sprints leading up to a production release. This will allow us to keep the stakeholders in the loop and allow us to reflect and improve our process with each sprint.
- Shortly following the release, which is when most bugs surface, the team can focus on design for the next release with the expectation that each one will likely get pulled into bug fixing.
I'd love to hear your thoughts and lessons learned.