It often happens that managing stuff (Project Managers, Software Architects, Team Leaders etc.) have to develop software and manage projects same time. Everybody knows about deadlines, bugs fixes, rework, research, projects beginning etc. Those factors can easily make leaders go out of focus as soon as these factors are handled as new responsibilities. If you are out of focus the project managing becomes very complicated and projects progress can slow down multiply. Especially this can touch young specialists.
To avoid loosing the focus and keep “development process” at the most productive level you should always assign priorities to the tasks as soon as the tasks arrive and put that tasks into priority queue of your own tasks. Such priority queue should be composed right at the beginning. F.e. when you manage a project and develop a part of the same project by yourself you probably have a deadline and bug-fixing tasks that should be fixed by this deadline. If you fall deep in development forgetting to assign tasks to the other developers then you can loose control in managing of the project, this will slow the progress of development of the whole project. When next deadline will come closer the results will be disastrous because you as the most responsible unit become the weakest link hence you will pull down the team.
This phenomenon is nothing more than Eliyahu M. Goldratt’s critical chain that is excellently explained in his book named same. The difference is only that our critical chain lies on the plane of company stuff hierarchy, we can say on “vertical plane” when Eliyahu M. Goldratt describes critical chain that lies on “horizontal plane”, i.e. in the product manufacturing cycle.
“Horizontal plane” is concerned to the resources required to execute existing tasks of the project, when “vertical plane” is concerned to the resources of horizontal plane maintenance (supply taskflow for development and solve chain links problems). The critical chain in “vertical plane” can be named “critical chain of “higher taxonomy/system level”” because, again, it lies in the other plane and goes out of bounds of executive resourсes plane.
Considering this we have “planning resources plane” and “executive resources plane” in software development domain and almost everywhere else in development and manufacturing. This planes have own intersection points and form. The general plane that can draw the bounds of the general critical chain for the whole project.
If we will look at the general chain the main bottleneck is income of tasks, i.e. project management matter. Therefore when you develop and manage, then managing has the highest priority even when you have to program something urgently by the deadline. As I mentioned before you should always assign priorities for the tasks as soon as they income and put that tasks into priority queue where project management tasks must always be in the highest priority in your own tasks queue. And don’t forget to handle priority queues for every other executive resource.