I speak with our clients on a regular basis in my role as Client Manager and I constantly get great feedback on our teams and the work they produce. I always find it interesting that this feedback doesn’t just extend to the quality of our code, or how quickly we can produce it; it’s more than that.
From my experience, having worked at Scott Logic for a decade now, it seems that we leave our clients with more than just great software delivered by a team of developers; we consult with them and advise at every stage of the process to ensure they truly end up with a solution that meets, or even exceeds their needs. For me, this is the difference between being a pure in-house software developer and a software consultant.
It’s a two-way street
Working in-house, software developers may have little contact with their end users or client, depending on how their organisation is structured. In a consultancy, due to the nature of that type of business, many developers are directly client-facing. This can allow them to gain a broader end-to-end perspective of the project they’re working on. Companies have high expectations of consultants, sometimes more than their own employees. They expect experts. But this also means they are more open to hearing what you have to say.
This personal interaction, that is part and parcel of client delivery work in a software consultancy such as Scott Logic, may not appeal to everyone, but there are plenty of advantages that can help you become a more well rounded team member. For example, because you’re dealing with clients from different sectors, your commercial knowledge will improve, giving you a broader business perspective than you are often able to get as a purely in-house developer.
The fact you’re also receiving pretty immediate feedback on your code on a day to day basis will also help you improve quickly, although at times it may not be the pat on the back you were hoping for. So you’re also likely to improve your diplomacy and communication skills.
But being a consultant is about more than just delivery; it’s also about flexibility. The project roadmap can be set fairly rigidly in a pure coding role, which can appeal to those who appreciate a methodical and highly structured way of working. But as a consultant, you need to expect and embrace change. Problem solving is likely to be more prevalent in your day to day role, so you’ll need to be able to adapt quickly, not only to different technologies and projects that may involve different people as the project moves forward, but also to any issues and unforeseen circumstances that crop up on the client side.
Client projects can mean a project team has to be ramped up or scaled down at short notice. In a consultancy, you’re effectively part of a ready-made team of developers, testers, user experience designers, business analysts and project managers who will have worked together in the past, allowing each individual to get up to speed and be productive very swiftly.
Never stop developing
Consultancies are often chosen because certain skills are lacking in-house, so consultants need to be one step ahead of their client so they can be effective advisers. Because you’re delivering bespoke solutions, you’re operating at technology’s cutting edge, so research and development has a greater role. Often, clients will choose a consultancy due to the collective knowledge on offer within it.
Consultants need to embed themselves in technology, gaining industry experience and developing the confidence to take a firm stance on its moving parts; they also need to articulate that stance to clients, acting as a guide to help them make the right decisions for their business and users. With this in mind, we actively encourage our developers, whatever their career stage, to carry out research, and share it on our active tech blog at blog.scottlogic.com. And we don’t favour any one technology stack. This allows us to give more impartial advice.
Just as much however, consultants need to be prepared for when the client doesn’t take our advice, perhaps due to some other restrictions they are working to. While this can be frustrating, software development isn’t quite as easy as picking the newest technology and running with it.
Being a consultant is about adding real value; you could even say it’s more of an attitude than a clearly defined role. If I had to sum up the difference between great developers and great consultants I’d say the following:
Great developers excel at solving problems that are defined by constraints. Good consultants can help their clients redefine those constraints.