Scrum – How to Coordinate Developers’ Time Between Two Projects

agilescrumscrum-master

I became the scrum master of a newly established team, that is responsible for creating a software AND maintaining other deployed application. So basically each team member has development & operations tasks.

I have been observing how they work the past couple of weeks and I noticed that team is having troubles in coordinating these tasks. when a developer is concentrating on coding he get interrupted to fix an issue raised in production, and it's hard for him to focus again on previous task.

I have tried allocating % of developer time for operations work but apparently this isn't resolving the issue. I'm interested in hearing from scrum masters who came across this situation before, how did you manage it and what are your recommendations?

Best Answer

This problem is as old as scrum. There is a solution, but you won't like it.

  • Put new tasks on the backlog.
  • Don't interrupt developers.
  • Wait for the next sprint.

Putting your devs in more than one scrum, having two separate backlogs or assigning only a percentage of their time to the sprint all work against what scrum is trying to achieve, i.e. a consistent flow of completed tasks.

If you try those type of things you basically go back to 'chaos' or 'JFDI' development methodologies with all its attendant problems e.g.

  • Developer has ten tasks on the go at any one time. No-one knows what they are working on or when it will be finished.
  • Unknown time to finish project, because it depends on what other projects are happening at the same time.
  • No consistent view of project priority. Other managers divert developers to their pet projects.

Of course the usual response to this advice is "But I can't do that! The business needs those production bugs to be fixed ASAP!"

But that is not really true.

If you really have that many actual bugs that are affecting the business to this extent then you need to get professional and improve your testing. Just work on bugs and automated tests until you have fixed them all. Hire a QA team and test the hell out of all new releases.

What is more likely though is one of the following:

  • The bugs are operational problems, running out of disk space, no DR, no Backups, no failover etc. Get an OPS team.

  • The bugs are users not understanding how the system should work "This happened! is it a bug?". Get a helpdesk and train your users, write documentation.

  • Fear of rollback. You launched a new feature and it broke something, don't try to rush out a fix. Roll back to the previous version and put the bugs on the backlog.