Deadlines often are not met by developer teams regardless of what they are working on. Software development always takes longer than expected, mainly for three reasons. Scheduling is insufficient as it is done by managers, who often have little or no developer experience. Additionally, the team does not always have all the tools they need and of course, development always runs into problems that are not always accounted for. When management scopes out the timeline for a project, they often forget to consider time related to development where actual development does not take place.
[Image source: www.megandredge.com]
1 Hour Spent on Meetings
One of the most annoying situations that arise between management and developer teams is the scheduling of meetings. Software development is not a stop and go process and it can take time to get into the flow of creating code. Developers tend to work best when they have large, uninterrupted chunks of time to work. When management schedules meetings, they tend to do it around their preferred times without taking what is best for developers into consideration.
What happens then is developers often lose focus as they get pulled into meetings at odd times for them. Breaking their workflow causes a longer interruption in their daily productivity as they need to get back into the flow. These breaks in time, as well as the meetings, are not usually accounted for when setting the schedule for the project.
Therefore, any meetings, whether impact analysis brainstorms or weekly catch-up sessions, should be scheduled at times that give developers the most uninterrupted time. Early mornings or late evenings are good places to start. The best will be to ask them for the opinion.
1 Hour Wasted with Incorrect Tools
Thoroughness is essential for a job done well. Developers take their time in analyzing and planning. For architects, this is mapping out the system. For BI and DW experts it is performing impact analysis on their data. Every type of programmer has his own planning process.
For an efficient process, the team needs access to the right tools. ETL dependency mapping tools help keep the code base easy to follow. Database mapping tools, such as SQLdep, help your team keep tabs on your SQL database structure.
If developers do not have the necessary tools, it adds more hours to their schedule. Collaboration between teams takes a lot of time. So do business processes that can be automated or aided via tools. Making sure your team has the tools it needs will help them with development time and with collaboration between teams.
1 Hour Wasted on Needless Debugging
Testing and debugging is a critical part of development. Some time spent debugging is expected in any development process.The problem arises when insufficient testing and debugging has taken place during the development process and your developers have to dive back into the code after release to fix problems.
When more time is spent fixing bugs post-release than in the process, it is a bad sign. Bug fixing incurs exponentially more costs if it’s done after release than before. If a lot of time is spent bug fixing after release, it’s also a sign that the development process is not as efficient as it should be, as it lacks correct testing and debugging procedures. This comes about for a variety of reasons - the team is too small to effectively devote a lot of time to testing, deadlines are unrealistic or inflexible, the team lacks the tools to effectively test their application, or the testing and debugging procedures put into place are not working properly.
Whatever the case may be, if the team does not have the correct resources and procedures in place to properly test their work, they will be spending more time than should be necessary post-launch fixing problems. Which is when they should be working on your current project. So they are developing, but not on the project they should be.
When you are scheduling your development team’s projects, it is crucial you keep in mind the habits and work processes of your programmers. Second, make sure they have the tools and the time they need to create a truly remarkable product. Third, invest in your team’s ability to troubleshoot and test before the project finishes. An investment in your team is an investment in your final product, and by extension, your company.