Project management has been called an "inexact science," but in the context of software development and delivery, it can seem even more inexact. Every project faces a number of challenges, and identifying them is the first step to mitigation.
Though not all challenges are exclusive to software delivery and development, they are relevant and potentially dangerous if not identified and handled quickly and effectively. The following are six of the most common:
Using incorrect metrics
Metrics are essential for managers in measuring "success" or status, performance reviews, etc. There's a school of thought that says that the easier it is to collect a metric, the more likely it is to not be measuring anything useful. For example, it's easy to track how many bug tickets are entered on a project, however the information gleaned is not really that useful. How many of those tickets are user error or features? Unfortunately, many managers focus on ticket resolution rate. Help desks will repeatedly close tickets for things that aren't actually fixed, creating even more tickets. Instead of actually helping the user, the practice simply opens as many tickets as possible and then closes them as quickly as possible, increasing the resolution rate. Far more useful is the ratio of true bug tickets created to features deployed or changes made.
Estimating times too far into the future
A project manager who honestly thinks they know which pieces of functionality any given developer will be working on more than a month or two in the future is likely to be rather disappointed. Software development and delivery is just too unpredictable as you get further and further out. Even if it were possible to account for or prevent all the factors that alter timelines and priorities, there's still little guarantee that things will take the time you think they will. There are simply too many variables involved.
Communication is absolutely essential for a project's success, but it's also the easiest aspect to forget. Much of the historical mistrust between IT and business teams comes from a lack of communication. The business team doesn't feel as if it has a good handle on the status of its projects. The more it feels left in the dark, the more likely it is to start trying to micromanage or force things to happen the way it feels it should be done. This distrust can be mitigated by regularly keeping everyone in the loop as to where things stand, such as when milestones are accomplished or the status changes.
The idea of multitasking sounds enticing: get more done by doing multiple tasks simultaneously. However, humans are not built to multitask efficiently. The human brain simply cannot compartmentalize like that. Research has shown that a multitasker's performance is invariably worse than those who tackle a single project. To make it even worse, multitasking burns people out and inevitably causes them to look for another job, forcing managers to bring in new people in the middle of a project, causing even more inefficiencies.
The truth is, there is often a wide gap between the priorities of projects within the development team, the overall business and the department making the request. A project that is "high priority" for one department may not viewed as important by the business because it doesn't generate revenue. As a result, the developers also downgrade it. Priorities need to be mapped out in detail at the start of a project and agreed upon by all parties.
Death by process
Often when a development team feels overwhelmed, a natural reaction is to establish a lot of processes to slow things down to manageable levels. When even the most simple of changes requires change request forms to be filled out in triplicate, physically disseminated, agreed upon, cross-signed by managers, and subject to a minimum time to completion, a development teams will often not be viewed in a positive light by the business, and will be treated as such. This reliance on too much process typically masks deeper issues in the company's culture, and while it may be easier create more process rather than deal with the deeper issues, it's counterproductive and leads to a hostile working environment.
Project management in the software delivery space may not be an exact science, but identifying and understanding issues like the ones listed here is the first step to mitigating issues and creating a powerful and effective development team.
Interested in learning more about effective delivery processes? The EXO Software Delivery Summit is happening from May 21-23. This invitation and referral-only event will bring together fifty top delivery engineering managers for two days of intensive discussions around creating a world class delivery process and organization. Industry colleagues from Netflix, Capital One, Mathworks, Target and more will be featured in a vendor and recruiter-free setting.
Learn more here: https://www.modev.com/exo-software-delivery-2017
If you are interested in applying for a scholarship to one of our EXO Summits, please click here.