At Unabridged Software, our developers work directly with external stakeholders on client work. These stakeholders are occasionally other software developers, but more commonly include designers, founders, CTOs, project managers, and sales teams. Since we specialize in building internal client-facing applications, we are usually working directly with the users of the software we develop.
Our clients come to us with problems and dreams for a better future. Before writing a line of code, our developers need the ability to listen, understand, and discuss the business's demands and constraints. Only then can they work with the client to imagine possible ways of bringing their vision to life.
For the partnership to be successful, our clients have to know that we understand their business, problems, and goals. They need to know that we care about their success, have the technical expertise and experience they require, and can be trusted to deliver reliable results. This knowledge forms as our developers and clients build a shared understanding of the problems and a shared vision for the solution.
For all of these reasons and more, Unabridged hires with a heavy bias for business skills, which make for healthy and successful working relationships. Experience has taught us that a few business skills are essential for any developer to deliver value to clients consistently.
Building Shared Vocabulary
Every industry has its jargon, and every business has its own variation. By understanding the domain language a client uses, a developer can get closer to understanding their business and the way they think. This skill allows a developer to talk with clients on their terms and with a high degree of precision. Similarly, by using a clients' language to describe the work done for them, a developer gives them a window into the software development process. In both cases, a shared vocabulary makes it easier to collaborate.
Naming the Heart and the Pain
Clients partner with a development firm because they have an obstacle or see an opportunity, and need help addressing it. Sometimes clients already have a solution in mind; other times, they have explored part of the problem but haven't fully defined it. In any case, identifying the issue at hand and explaining why it's a problem is a crucial skill for any developer. By naming the heart of the problem, a developer can evaluate possible options and make sure that they propose the right solution.
"A problem well-stated is a problem half-solved.” – Charles Kettering
Following the Money
How does a client earn revenue? What sustains their business? A developer does not need a client to open their books and divulge the details, but they should be able to quantify—in terms of dollars—the impact of the problem at hand. This skill helps a developer to understand both the client's perspective and the range of possible solutions they should present.
Forming and Communicating a Vision
From a business perspective, what does the right solution look like? What are its characteristics? What will it help a client do that they cannot do already? With the application of these aforementioned business skills, a developer should be able to create and communicate a vision for meeting a client's needs. Being able to establish, communicate, adjust, and execute a strong vision for the future may be the most vital business skill of all.
As developers, we create software to run on computers, but our most important work happens with people. Work is more satisfying when we can build empathetic relationships of trust. More than that, establishing strong relationships is a prerequisite to success. These business skills are the foundation of those relationships and the foundation of a developer’s work.