How to divide a resource?
- Take the wood
- Take 50% to build dollhouse
- Take 30% to build a garage
- Take 20% to build a toy car
Now you have 3 pieces of wood and you can quickly deliver three wooden toys.
- Take software developer
- Assign 50% to project A (head)
- Assign 30% to project B (torso)
- Assign 20% to production support in project C (legs)
Now you have 3 pieces of developer and you can successfully deliver… nothing of a good quality.
Whn the dev is cut in pieces…
I was assigned like that.
One day I got to the office, checked the e-mails and phone to check if anything urgent came up. As soon as I prioritized tasks at hand, I started working on the most important one: performance of importing 9-million-line a file into DB2.
When I was in the middle of validating multiple columns a person from customer point the of contact about the flow of the newly created business system.
It took me 5 minutes to get rid of regex patterns and validation principles. I needed next 5 minutes to get to the proper application, calculation sheets, and SQL scripts. Then I properly answered the first question. The whole discussion about all the business rule took about an hour.
When I looked back at the eclipse and the place I left the code I wasn’t sure what I wanted to do when I left the place. I re-run the tests. One failed. I remembered it was failing before and I was going to fix it. I picked up where I left, remembered the whole flow and all the dependencies but it took 20 minutes to get back on track before I fully concentrated again. 30 minutes lost during first hours of the day.
Different point of view
People remember uncompleted or interrupted tasks better than completed tasks. It’s known as Zeigarnik effect. When software engineer works on one project (or task) the other projects or tasks are distractions.
But managers don’t see it that way. They care about one project when the developer has to care about all three. They don’t have a grip on what their team is doing all the time and make the team members figure out for themselves what projects they should be working on and when.
When there’s no coordination between multiple projects throughout the company those projects end up in conflict with each other.
What to do when developer has to divide her/his attention?
The perfect solution here would be to give the developer more responsibility in only one project.
When this is impossible you (as a team) should work together to:
- define the tasks and their importance and dependencies
- set clear goals and deadlines and put them in a place you can refer to
- plan (developers should know in advance to properly schedule all tasks in various projects, you need to assure the task is done on time)
- finish a task already started before picking up a new one (unless it’s important and urgent)
- readjust the priorities under changing circumstances
You want your project to de delivered fast and with a good quality. So, get a grip of what your developer is doing not only for you but also for the others. Let her/him be productive by defining what and when is to be done and let her/him concentrate on a task at hand.