How to Optimize Project Management in Software Development
By Adam Kolawa
November 18, 2010
2 min read
Significant gains in developer or QA productivity are achieved when team members better understand the purpose of the code or the business goal of the requirement they are implementing. That’s why it’s so critical to provide both development and QA with a greater level of understanding into the overall project objectives.
For the QA group, it has become the norm to receive a request to execute an impossible scope of work within an unreasonable timeframe. For developers, abstract requirements pose a very difficult challenge as the implications of changing the code impacts unexpected components of the application. In both cases, lack of visibility and unclear expectations drain productivity and lead to out-of-control deliverables.
Providing an Exact Plan of Attack
It’s the job of technical managers and architects to get tasks in front of the staff in an effective and efficient manner. When developers are assigned to work on smaller tasks (for example, work tasks that are scoped to be no greater than one day) as opposed to being assigned to participate in one large project, experience has shown that they become much more productive. These granular tasks are scoped so development understands exactly where to start and what to do. The developers become much more efficient with this level of granularity: their tasks are attainable and progress is immediately recognized.
One way to facilitate this process is to use a software development management system, like you get with Parasoft DTP, the reporting and analytics engine that connects to all of our products.
Maintaining Accuracy Throughout Complex, Dynamic Projects
This way, technical managers can create and assign tasks from a central console. Tasks are then distributed to the team via business rules or via manual assignment.
It’s important for the staff member who was assigned each task to have the flexibility to submit a new time estimate or create a new task when it is recognized that more work needs to be done. It is the nature of the software development business that initial time estimates for specific tasks are often impossible because there is always hidden work that nobody can foresee… until a team member begins to dig into the code.
In such cases, managers should be immediately notified that new work has been added or suggested, and they are given the flexibility to carve out new tasks and distribute the work among the team. This allows for better, more accurate information to flow back to the management team.
Keeping Everyone on the Same Page—Without Having to be in the Same Room
Information regarding the status of these task assignments should be carried from the developer’s desktop back into the central SDM system. This way, managers know the status of assigned tasks and the overall project, and are thus armed with the information they need to make better decisions.
Having access to project information in real time alleviates the need for status meetings, giving the developers more time to do what they like to do: write code.