Software consultants advise companies on their software systems and suggest or design appropriate software solutions. While an average software consultant can accomplish this task, good software consultants can pass on this knowledge and teach software teams the best way to collaborate together and reach business goals.
What Do Software Consultants Do?
Software consultants use IT and software expertise to analyze existing software, assess technological needs and guide clients (often those involved in e-commerce or product development) through the design and implementation of new software solutions.
What Does a Software Consultant Do?
- Helps clients determine software solutions to meet business goals.
- Guides the strategy, design and implementation of client software and related systems.
- Has technical experience and understands software workflows.
- Introduces new ways to think, rather than telling companies what to do.
- Prioritizes collaboration and workflow over individual productivity.
- Values software developer input.
Mob programming pioneer Woody Zuill and lean programming creators Mary and Tom Poppendieck all started their software consulting careers differently, but their goals were the same.
For Mary, it’s always been about engineers. She started as one, and she loved the job. But as she progressed in her career, she met more and more software developers who hated what they did. To her, the culprit seemed to be corporate processes: Non-engineers were telling programmers what to execute, how to do it and when to finish.
“I found that software developers were being treated like, I don’t know, children,” she said. “And I wanted to change that. I wanted to make it fun to be a software engineer — and challenging and interesting — because that’s the way I found it.”
A love of programming turned Zuill from a hobbyist to a professional. His first contract was with a small team of four or five people who worked together seamlessly in a style we’d today call extreme programming.
Energized, he jumped to a longer contract at a big company with 200 developers.
“It was miserable,” he said.
Developers at his new job were tightly controlled by management, and they hadn’t found an effective way to collaborate. As Zuill continued moving from contract to contract, he found that wasn’t the exception, but the norm.
“I started realizing I had to do something about that, because I don’t want to work in an industry where everywhere you go, it’s too hard to do the work, and most of the people are spending most of their time protecting themselves from all the nonsense going on around them,” he said.
Sometimes, this meant calling outside sources, like software consultants, to help streamline muddled development processes.
What Makes a Good Software Consultant?
“I don’t like consultants,” Mary said. “I worked at 3M for 20 years, and if you had a consultant come to your department, it meant you couldn’t do your own job.”
Indeed, there’s an aura of unhelpful corporate paternalism — or even snake oil — around consultancy. But if “those who can’t do, consult,” how do you explain the success of people like Mary, Tom and Zuill, who get paid to visit companies and help them work better?
Perhaps the easiest answer is: They showed their value as thinkers before they ever pitched themselves as consultants. (For the record, the Poppendiecks call themselves “teachers.” Zuill prefers “guide.”)
Mary decided to use her experience as a technical project manager to write a book applying lean manufacturing principles to software design, with Tom editing each step of the way. That book, Lean Software Development: An Agile Toolkit, eventually became a classic.
“In short, good software consultants have a deep knowledge of software and the workflows surrounding it.”
Zuill, meanwhile, stumbled upon mob programming — a style in which a group of programmers gather around a single computer — while working with a particularly collaborative team. An ardent student of lean and agile thinkers like Kent Beck and the Poppendiecks, he recognized its big-picture implications for software development.
“Rather than trying to optimize for the output of an individual, we’re trying to optimize for the flow of the work. And that’s a very big concept,” he said.
In short, good software consultants have a deep knowledge of software and the workflows surrounding it, Mary said. No amount of charisma or silver-bullet-methodology-speak can replace that.
“Too many people are making a living doing consulting without ever having done the thing they’re consulting about. To me, that makes it hard to have the instincts you need,” she said. “Remember back when there was a trend that said, ‘You can be a manager of anything, and it doesn’t matter if you have experience in the area’? People have gotten over that.”
Software Consultant Responsibilities
Software consultant responsibilities can include:
- Working closely with software developers and engineers, offering avenues to solve future software or operation roadblocks.
- Reviewing business technical requirements.
- Evaluating technical operations and software development processes.
- Applying new software and documenting subsequent changes.
- Customizing existing software solutions to fit company needs.
Good consultants, according to Mary and Tom, don’t tell people what to do or what to change. They introduce new ways of thinking and let teams figure things out for themselves. Not every company likes that approach though. That’s because some are looking for a magic set of practices that will fix underlying organizational problems. Others are just hoping to get “employee development” initiatives on the calendar and have no real goal at all. The Poppendiecks have gotten good at sniffing out those scenarios.
“Typically, if someone says, ‘We need to learn how to do this particular thing so that we’re better,’ that means they’ve already come to the conclusion of what’s going to solve the problem,” Mary said.
If a company asks them to stay longer than a few days, the answer is no. If the email comes from a human resources, training or procurement department, she doesn’t respond.
Ruthless? Perhaps. Necessary? Yes. Once Mary and Tom arrive, they immediately have engineering managers and senior developers sketch out “value stream maps” showing the team’s entire workflow from the moment a customer has a problem to the moment that problem gets solved. If engineering leadership didn’t opt in, that process will be uncomfortable at best.
“Good consultants don’t tell people what to do or what to change. They introduce new ways of thinking and let teams figure things out for themselves.”
Mary and Tom always share what they believe is preventing the organization from reaching its goals. If the team isn’t bought into the Poppendiecks’ software philosophy, their advice won’t help.
Nor will it help if teams don’t really want to make changes. That goes for both on-the-ground engineers and management. Once, the Poppendiecks arrived at a company in Denmark and asked each developer to brainstorm some ways the organization’s processes could improve.
“The CIO came in and said, ‘How dare you talk about how to change our processes?’” Mary said. “They really didn’t want to have the low-level people thinking about processes. They were supposed to do whatever they were told.”
If companies aren’t prepared to treat developers like capable problem-solvers outside of the codebase, Mary and Tom consider them a lost cause.
“The foundation of good relationships is respect for the other person — their ideas, their opinions, their attitudes,” she said. The same can be said for successful software and development processes. “You have these really smart people, and one of the things they happen to be able to do is to write code. And then there’s no respect. [Managers] say, ‘Oh, they only want to write code.’ Where did that come from? How do you know?”
As a software consultant, it becomes important to provide software solutions that succeed and provide developers with multiple options to do so.
How to Become a Software Consultant
A software consultant is a multi-faceted role, where professionals will need to apply both technical and customer knowledge. Software consultants will want to hold applicable computer expertise, and be able to communicate their understanding of software development, processes and systems.
Before stepping into software consulting, professionals often first earn a bachelor’s degree in computer science, IT or a related field, as well as gain experience in an entry-level technical role. Like Zuill and the Poppendiecks, software consultants can come from various backgrounds and previous roles like IT specialists, software developers and software engineers.
Additionally, software consultants will need to be familiar with software analysis and presentation tools as well as computer programming languages like HTML, Java or Python. Those in the role will also need to be adept in customer service and maintaining customer relationships.
For some software consultants, the overarching goal is to not only fix a software problem, but to also find ways to work around a protocol that may cause it.