Best process for product development and maintenance by a small team

development-processproduct

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:

  1. Developing new features and updates to existing features
  2. Developing in-house tools and reports
  3. Fixing bugs
  4. 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:

  1. Hire a junior programmer to buffer the senior developers from maintenance tasks. In between maintenance tasks this person can assist the senior devs.
  2. 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.
  3. 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.

Best Answer

Scrum is the perfect choice here

Forget the point 1. Let your cross functionnal team self manage itself.

Do point 2, but implement everything in Scrum, not just what you think is useful. Also don't try alone, hire a certified Scrum Practionner or a Certified Scrum Coach.

Forget the point 3. Hire a tester and put it in your Scrum team. Also using Scrum properly, that will help to reduce bugs in production.