Tech vs. team: Which is most important to software success?
In the ongoing quest for effective ways to deliver great software, the age-old debate of people versus technology rages on. Conventional wisdom says that while automation and robust developer tools are integral for refining the delivery pipeline, nothing can beat smart people who work well together.
But as automation and continuous delivery tools improve, how true does that remain? Are people still the most important part of the equation, or have the sliders on the equalizer board shifted?
A just-released HPE Software-sponsored study by YouGov suggests that even though people-related factors are seen as most important for software delivery, technological and process factors may be better predictors of project success.
Conducted among 400 stakeholders in the development process, the survey asked respondents to rate their experience on 25 different performance considerations for the most important development project they worked on in the last year. These included items such as "automated testing," "competence/expertise of team members," "trunk development," and "high level of trust among team members."
When it comes to success, how can tech outrank people?
All of those factors were aggregated into two groups – technological/process factors, and people factors. When questioned generally, the overall satisfaction and perceived importance of the people factors predictably bubbled up to the top of the ratings.
Then the study organizers did something interesting. In addition to the factor considerations, respondents were asked to rate the project's outcome based on six measures:
- Quality & performance
- Time to market
- Speed of delivery
- Cost/use of resources.
Those outcome ratings were then correlated to the performance considerations.
Analyzed in this way, a different picture started to emerge. When correlating the average of the outcome metrics to the performance metrics, the technology/process factors jumped ahead of the people factors. Drilling deeper into the data, the researchers ran six regression analyses using each of the outcome metrics.
For every outcome metric, technology/process factors ranked higher than people factors in illustrating the success of the project.
Basic patterns: A balance of people and automation
At first blush, that's a stunning result for an industry that has put the people-first mantra on the loudspeaker for so long now. However, most software experts say that this shouldn't necessarily change any paradigms, for several reasons.
It is crucial to remember that, in the end, it's people who are the ones deploying that automation and deciding how to use it to greatest benefit. There's always human cost and consideration in the care and feeding of a good automation tool set.
"Automation and tooling is only as good as the skills of the person implementing the automation," says Ryan O'Leary, vice president of the Threat Research Center for WhiteHat Security. "Technology is almost never an out-of-the-box setup. It requires a person, or teams of people properly documenting, implementing, adopting and fitting it into their own development and release processes. Big human capital must be spent if companies really do want to see the benefit of automation in their development."
For example, many bleeding-edge developers lean on predictive analytics and artificial intelligence to continuously update software based on market or other variables plugged into well-tooled algorithms. But even in this ultimate automation play, you still need great people to make it work.
Software is not a driverless car
"You can have an algorithm that's perfectly tuned to the training data that it might have had, but once you let that algorithm loose onto the world, it can take an unexpected turn. If you're not continually monitoring that -– and it's people who are monitoring that -– you run the risk of a perfectly implemented algorithm doing something disastrous," says Malcolm Isaacs, a senior researcher for Hewlett Packard Enterprise Software's application delivery management team.
Software is not a driverless car that can simply be set to go to a particular location, says Mike Hughes, principal platform evangelist for OutSystems. In the end, the creation of software that serves a purpose for people needs to also be driven by people. "Automation cannot replace knowledge of business requirements, audience, and the creativity that leads to great user experiences," he says.
It's people who come up with the user stories, and put in the labor to satisfy the needs of the business, says Isaacs.
"In Agile, you'll get the key people in the room around a whiteboard, and they'll determine the use case that needs to be delivered successfully and what the definition of done is," he says. "Automated testing and so on will ensure that the definition of done is more easily achieved, but you can't write automation that will achieve the definition of done for you."
Some things you simply can't measure
More than anything else, people offer that certain je ne sais quoi of software development -– the creative spark that ignites the engine of innovation. This aspect of software delivery is highly subjective and extremely difficult to measure, which means that studies can rarely assign a number to it. That is why most people-versus-technology discussions usually sound more like religious debates than scientific comparisons.
Nevertheless, results such as those from most recent YouGov survey do hold value. Results such as these act as a valuable touchstone in reframing the debate and admitting that technology may have a bigger role than originally thought. Most important, great human resources don't mean much if they aren't being used effectively.
"Too often, the human factor in software development spends the bulk of development time hand-coding, wrestling with legacy integrations, testing, DevOps, and change management," says Hughes. "Automation can replace these time-consuming activities so that people are free to conceptualize, drag-and-drop components to solve business problems, and get great applications and software to market faster. Creativity, not mindless, repetitive tasks, is the main purview of people."
So the people, process, and technology trifecta still stands
The crucial thing to remember, says Isaacs, is that people, process, and technology are all important to success, no matter whether one element is more efficient than another. It may be best to think of software development in terms of chemistry. If any one of those three ingredients is missing, the eventual chemical byproduct can't be created. It's not the ingredients themselves that are important, but the reaction caused by their combination that's key.
The conclusion from the white paper that technology is more effective than people may be valid in some sense, but the appropriate action based on this conclusion might be counterintuitive, Isaacs says. That is, the gains made through technology can allow an organization to double-down on smart people.
"People are just as important as technology, but they are slightly less effective. Because you get more back from technology, you can afford to put slightly more of your resources into your people investments," he says.