Let’s imagine a hypothetical software developer who is working on the project that is going to be closed in a month and waiting when a senior manager comes to the room and offer him a new project with all new and shiny technologies. As any new things, it seemed to be excited and neat. However, I am in great haste to assure you that the chances of this scenario are awfully close to the zero in the most optimistic case (in the worst case the chances would be minus infinity).

Precondition one

Let’s dream up that our abstract developer just accepts a new offer. And all just begun, new senior team members, new technologies, new fun … In few weeks of work on the project, he got to know that customer, and top management asked for almost impossible things to do. And the worst thing is that he is a witness of everyday chaos. There are a few developers that merging the ‘development’ branch and spend half of the day just to resolve conflicts. And after that, they discover that the functionality that their work depends on is broken and they need the other half day to find out why. And that happens every day in the malicious cycle. The whole team is all on the rush because of time pressure.

Precondition two

Our abstract developer is not a simple one. Working on the previous project he tried to listen to team members who are more senior and experienced than him. Also, he has read books and watched videos about engineers practices and disciplines; he is eager to apply them to produce quality software without regression to existed functionality.

Is there any way out?

It seems that the shortest answer is “No.” However, the long answer, like any other answer in engineering, starts with “It depends…”. In my opinion, all that our imagine developer can do are:

  • realize that he has limited ability
  • whatever is going on with the project, it’s better to stick with known engineering practice that shown to be very helpful in stressful situations
  • realize that project management is between a hammer and an anvil and relying on his technical expertise
  • seek for possibilities to be more productive and useful to the team