Pillar 5 of the Dojo Five Modern Embedded development practices is Human-Centered Project Management: Expectations and risk management processes that value humans and their interactions as key to innovation.
We all have our benchmark bad projects that we’ve lived through.
Project Management Practices
Bad projects are often the result of poor or outdated project management practices that don’t value humans.
Poorly managed projects can lead to the classic “death march”, where everyone is required to work extended hours and extended days for weeks on end.
These tactics may be rooted in old style Taylorism or “scientific management”, such as timing how long things take, and then setting a requirement to work faster, take shorter breaks, and improve production by some percentage.
This mindset extends to deliberately setting unrealistic internal or external expectations in the belief that people won’t work hard enough otherwise. This may even be rewarded as a way to squeeze a little bit more out of them.
Work hard. Be grateful.
This is compounded when leadership doesn’t acknowledge project management failures. For example, a six-month project that runs without having any requirements until the deadline looms a few weeks away, so everyone needs to work weekends to get it done.
That devolves into attitudes like “People should be glad to have jobs, and sometimes business just needs them to work harder.” These ideas and attitudes devalue people–treating them as simple parts of the machine, to be discarded and replaced when they wear out.
It also has severe consequences for team members and their relationships with their families and friends. It wears down their physical and mental health, which leads to burnout and staff turnover–even driving people out of the industry.
Creation & Invention vs. Production
The fundamental flaw in this kind of thinking is that embedded systems development is not a simple repetitive task. It’s a creative, deep-thought process that has to handle many unknowns. It’s product creation, product invention, not product production. Humans are not repetitive code-producing machines. They don’t crank out lines of code predictably like a production line cranking out widgets.
Creation is inherently complex and variable. Some parts go smoothly and quickly because of their similarity to past work, but some don’t because of their differences and unknowns. It’s invention of a new thing–not replication of the same thing by the thousands.
Production lines make the same thing over and over by the thousands. Embedded system development is not a production line. Embedded system development leads to products that can be produced on a production line, but getting to that point is much different.
Embedded systems engineers are creative thinkers who need to be given the autonomy and safety to innovate. They need to be able to operate at a sustainable pace, not “pushed hard” to meet a deadline. They’re usually self-motivated on their own. They’re results-oriented people who are driven to achieve.
Another common issue is failing to understand and manage risks. This may be due to lack of experience; a startup with a great product idea may not be aware of the challenges they face.
Risk is Inherent and So Are Mistakes
Every project has risks. You need to perform the due diligence to investigate potential risks and take action to manage and mitigate them. Whether you use a formal risk register or something simpler, you always need to be thinking about the top 3 or 4. How can you mitigate them? Once those are mitigated, what’s next on the list? Failing to keep risks in mind is compounded by another common risk management problem: failing to build sufficient engineering margin into the project.
Margin is part of all engineering disciplines: make sure CPU and memory consumption don’t exceed 80%; make sure the structure can handle peak load forces of 4x normal use; make sure the circuit can handle peak load current of 10x normal demand; etc.
The same is true of project management. Expecting everything to go according to plan with perfect execution is unrealistic. “No plan survives contact with reality” is the modern rendition of advice first offered by Helmuth von Moltke in the 1800’s. Things will go wrong, and the world won’t necessarily conform to your model.
Mistakes will happen, too. Anyone can make mistakes of omission and mistakes of commission, from the most careful, well-rested person with all the time in the world; to those who are tired, pressured, rushed, or burned-out. Former MIT professor Nancy Leveson wrote, “Depending on humans not to make mistakes is an almost certain way to guarantee that accidents will happen.” That was in the context of safety, but applies to any human endeavor.
There are simply too many variables that are beyond the control of the project managers. Embedded systems development is inherently complex due to its multidisciplinary nature. Any project faces the risk that things will go wrong.
The project schedule needs to allow for that. It needs to have some margin built in. Not every risk will fire, but it’s reasonable to expect that some will.
Modern teams avoid these traps.
They recognize that their people have real lives outside of work, with other responsibilities and interests.
They respect their people and their time, trusting them to do a good job without resorting to manipulative techniques.
They investigate and manage risks, and make sure the schedule has margin to tolerate things going wrong.
They set reasonable expectations and communicate them transparently with stakeholders.
Phillip Johnston of Embedded Artistry sees issues with both overwork and poor risk management.
He points out that sleep deprivation, often the result of overworking, means that the team will take longer to complete work, do it at a lower quality, miss optimal solutions, and make more errors along the way. He says memorably, “Attempting to fix a broken schedule by working longer hours is as effective as trying to stop your ship from sinking by making more holes in the hull for water to flow out of.”
He says he’s often seen teams ignore the riskiest development items and biggest unknowns until the end of the project, triggering significant rework. That creates schedule delays, or worse, the realization that all that time has been wasted on a product that won’t actually work.
The modern approach is to address risks and unknowns first. Otherwise any schedule made around them is complete fiction, since by definition, you don’t know what they’ll entail.
Two books are industry classics on the subject and should be considered not just recommended, but required reading. Both address the problems of project management that isn’t human-centric.
First is The Mythical Man-Month, by Fred Brooks. The first edition was published in 1975, with a 20-year anniversary edition in 1995. Some of it is historically quaint, but much of it reads like it was written yesterday.
Second is Peopleware, by Tom DeMarco and Tim Lister. The first edition was published in 1987, and the latest in 2016.
Phillip Johnston has additional reading on the effects of sleep deprivation at Prioritize your Sleep.
Revolutionizing, modernizing or humanizing your project management and embedded development projects is possible. Contact us with your questions, projects, and unique problems that need solving—we can help.
— Joe Schneider, Founder of Dojo Five —