Project fatigue can have a crippling effect on the project development cycle. A project starts and the development team is energized and dive in with positive fervor, but before long, the project stalls and seems to be going nowhere fast. There are dozens of potential causes for project fatigue, but in my experience, there are five main causes that result in project fatigue for developers. Let’s examine these causes.
A messy desk may, be an early indicator of project fatigue. Or maybe it’s just the sign of a creative engineer. (Image source: alleghenydesign.com)
Cause #1 – Projects that have complex and never-ending debugging cycles
One of the leading causes for project fatigue are projects that turn out to have complex and never-ending debugging cycles. There is nothing like working on a project where every line of code seems to generate a bug that a developer has to fight through. Debugging takes a mental toll on developers and as more and more time is spent debugging, developers lose their motivation and ability to quickly solve problems.
In many cases, the cause for never-ending debugging cycles are inherited monolithic code bases that have been poorly designed, but they can also be caused by development teams that are trying to move too fast and are not following best practices and development processes.
Cause #2 – Projects that are stop and go
It can be extremely difficult to make progress on a project when it starts for a while, is stopped, then some time later is started for a while only to then be stopped again. Not only does this require a fair amount of time to get the project moving again once it starts by reviewing where things were, it can result in project fatigue. Developers usually jump into a project motivated to get it done quickly, but when things move into a start/stop/start cycle, they start to wonder if it’s a real project and if the stakeholders are actually serious. These projects when they start are usually needed yesterday so when they stop and start, developers are less motivated to believe the urgency for the project.
Cause #3 – Projects that are more technically difficult than originally thought
Engineers are great at rising to the challenge and solving problems, but if a development cycle continuously proves to be too technically difficult or more difficult than originally thought, the engineers can become stressed out or like many of these other causes, they lose motivation. Teams can avoid getting stuck in a technically difficult project by properly managing their development teams skills and making sure that they budget for yearly training, continuing education and even third-party assistance.
Cause #4 – Projects that go past their deadlines
There are few project events that take the wind out of the sails of a development team as much as missing a deadline. As a deadline approaches, developers take on a heroic effort to do everything they can to meet the deadline, pushing themselves to the limits. When the deadline passes, it’s a giant letdown and it’s easy for developers to lose their motivation. The obvious result is that the deadline slips further, and costs start to balloon.
Unfortunately, this cause is potentially the most dangerous to a team. Developers often start behind the eight ball as management or overly optimistic developers put together an unrealistic schedule. The best way to manage this is to use a metric driven scheduling paradigm that uses past historical data to estimate schedule and effort.
Cause #5 – Projects that require consistent weekly over-time
It’s been shown in many different studies that working too many hours and over-time several weeks in a row result in decreased development efficiency. As the over-time becomes chronic, the project itself starts to fatigue as developers become less motivated and able to keep up the high-level of performance that is needed to push such projects out the door. The result is not only wearing out the developers, but additional costs to the project, project delays and a product that is delivered much later than expected despite the heroics provided by the development team.
There are plenty of reasons that projects become fatigued and start to falter. The trick is to be aware of the causes and to carefully watch for team behaviors that could result in project fatigue. When the signs of project fatigue start to show in a team, managers can take action to curb the fatigue or take preemptive steps to make sure that the project does not become fatigued in the first place. As you have undoubtedly realized, project fatigue is really about managing the mindset of the developer and ensuring that they are well rested, mentally sharp and motivated to work at their peak abilities.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees which include a Masters of Engineering from the University of Michigan. Feel free to contact him at [email protected], at his website, and sign-up for his monthly Embedded Bytes Newsletter.