It goes without saying, that developers working on software projects face a variety of challenges that threaten to derail the entire endeavor. Among these, technical risk—that is, the potential for failure or loss due to challenging conditions surrounding the construction of software—is one of the most prevalent and consequential. CIO Magazine previously identified two specific sources of technical risk as being among the top 8 challenges affecting software project management. In a previous post, which you can read here, I reported on our findings from a research study of the stress-inducing effects of these sources of technical risk and how managers can utilize an empowering leadership style to enable their developers to address them. In this post I offer a summary of what we learned from a field study of 1,230 software developers from 130 different software projects.
How Does Technical Risk Affect Developer’s Task Performance?
The research was a collaboration between me and my wonderful colleagues Viswanath Venkatesh (University of Arkansas) and Arun Rai (Georgia State University). We studied the effects of requirement risk and project complexity risk—the two main forms of technical risk—on the psychological stress and task performance of software developers. Here task performance for each developer was assessed in terms of the quality, quantity, accuracy, and timeliness of their task deliverables. In short, a greater prevalence of technical risk in a software project was found to induce higher levels of psychological stress among developers. In turn, higher levels of psychological stress resulted in lower levels of task performance by each developer. In a software project environment, the implications are significant. Higher levels of psychological stress likely make developers more error-prone when writing code. The impact of these coding errors is potentially larger when a larger number of dependencies exist in the code. There are also broader cost implications when one considers the expenses associated with maintenance of such code.
What Can Project Managers Do About This?
Identifying the link between technical risk and task performance through psychological stress was just one part of the story. We also wanted to understand what project managers can do to mitigate these stress-inducing effects of technical risk. Our research identified two main interventions that project managers can use. We broadly categorized them into internal process controls and external process controls.
Internal process controls focus on structuring the organization of software development tasks on a project to emphasize charting a course of action, executing to the plan, and managing personnel issues along the way. It facilitates a direct line between the multiple tasks that developers execute and the broader project targets. Key elements of internal process control include:
- Discussing the vision for the project deliverable
- Laying out a day-to-day plan of action make the vision a reality
- Articulating, revisiting and revising the objectives as necessary
- Openly sharing project-related information
- Actively learning between developers
- Daily communication among developers
- Creating an environment of trust and openness
- Thinking about project “team” first, rather than “self” first
Not surprisingly, Google recently found some of these factors to be among the most critical elements underlying their most successful teams.
In contrast to internal process control, which focuses on the interactions among developers within a project, external process control structures a project team’s interactions with external constituents (particularly clients) to emphasize coordination with the client on product design, buffer the team from undue outside influence, and scan the team’s surrounding environment for useful ideas that can be applied to the project. A sampling of the key elements includes:
- Resolving design problems with the client when they arise
- Reviewing product design with the client
- Involving the client in decisions related to product design
- Protecting the team from outside influence
- Preventing outsiders from overloading the project team with requests
- Scanning the environment inside and outside the company for design ideas
Our study results showed that when project managers enacted each of these types of process control in software projects, technical risk was less likely to induce greater psychological stress among developers.
What do Project Managers Need to Know?
While some of these might seem obvious, not all project managers in our sample implemented such controls in their software projects. For us this begged the question: “what knowledge base informed the likelihood of project managers enacting the internal and external process controls we identified?” Given the nature of software projects, project managers needed to possess some technical knowledge (i.e., understanding of programming, technical design, code testing) and some knowledge of project management (i.e., understanding how to set project milestones, estimate schedules, monitor progress against established targets, facilitate client interactions). This appears to corroborate the idea that effective project managers have a healthy balance of technical prowess (hard skills) and managerial know-how (soft skills). Beyond the knowledge itself, what matters is what project managers do to enable developers to cope with technical risk. Our research highlights some of those actions.
The article is forthcoming in Information Systems Research.