Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
    
What is the current bug-fixing burden? –  user1249 Oct 23 '10 at 20:59
    
Not that high. Customer service issues are more of a problem because there aren't enough tools available to the customer service team, something we will have to address quickly. In the meantime it's a reality our team will have to deal with. –  Keith Oct 24 '10 at 0:16
add comment

1 Answer

up vote 2 down vote accepted

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.

share|improve this answer
    
for #3, in addition to doing actual testing, the tester can teach the senior developers what tests can be verified by software, in addition to each developer's own unit testing. In other words, taking the (all-encompassing) role of quality assurance specialist. The tester can also help during design, because the tester knows how the users are going to use it. –  rwong Oct 23 '10 at 21:20
    
Rwong, that's the team responsability. Get it out the process. Let the team do its job –  user2567 Oct 23 '10 at 21:23
    
Thanks Pierre. You're right, if Scrum is implemented properly then there should be minimal-to-zero post-release bug fixing. –  Keith Oct 24 '10 at 0:27
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.