Martín Varela

Some musings on Software Consulting.

Great Consulting: Covering all your Angles

A Triangle on a NapkinLink to A Triangle on a Napkin

Some time before joining Metosin last year, I attended a small event celebrating the opening of the Oulu office. That's when I met Valtteri (our current CEO), and his first words to me were "Why aren't you working for us already?”. That set the tone for the day.

The day turned into evening and I went to dinner with (our then CEO) Mikko, and Valtteri, who while waiting for our drinks, quickly drew a triangle like the one in the picture on a napkin, and asked me: “Where would you position yourself in that triangle?”.

With hindsight, I can see now some more nuance in this simple drawing (and since no semantics were given, interpreting what I thought the triangle to be about was obviously part of the question). I found myself leaning towards the “People-Technology” axis, probably more towards the “Technology” corner. As with many things in life, there is really no right way to interpret the drawing, but it does invite some reflection, for example about which areas I should work on developing, or what kind of team members I should work with, in order to carry out a successful project.

What Makes for Great Software Consulting?Link to What Makes for Great Software Consulting?

Over the past few months, we have had several open-ended discussions about the business of Software Consulting and how to help our customers maximize the benefits of their core business idea. Metosin has been running for some 12 years now, and it has been successful at consulting, from many different points of view. We have a strong reputation for software excellence, particularly in the Clojure community, made public by many successful Open Source projects. We also have been commercially successful, running many large-scope projects and co-operations (some now going on strong for over a decade), helping customers of all sizes, from 2-people startups, to large telecom operators and advertising giants.

During the 12 years, of course, we have made mistakes too. We've observed (and learnt the hard way) that when projects get into trouble, it's been usually due to the lack of expertise and understanding on the people/business sides, not the technical side.

Still, a succinct definition of what makes for great software consulting has somehow eluded us so far. Mind you, this is something that we consider important - we want to be able to convey that we genuinely care about our customers' best interests and have the capability to deliver truly effective systems with our tens-of-years of experience.

The triangle idea shown above has been a recurring topic of discussion, and now in this post, we would like to present some of the conclusions we have reached, as to what we find important in consulting and successful projects.

What Do We Actually Do as Consultants?Link to What Do We Actually Do as Consultants?

We are hired to solve a business need, first and foremost. In order to do this, we need to, first, understand enough of the business to really understand what the need is.

The businessLink to The business

It can be challenging for stakeholders to fully articulate the nuances of their business needs, as much of the implicit knowledge may not be obvious to those outside the business.

For a consultant, having general business acumen is definitely useful for this, but more often than not, being able to quickly understand a new domain is a critical ability, too. We have learnt that most problems with software arise from a lack of understanding the real underlying problem, rather than from technical issues.

Once we understand the problem thoroughly, we can clearly articulate it in requirements, and begin working on a concrete solution for it. Doing this right involves understanding the trade-offs between different approaches. It often involves comparing the current, possibly problematic method of handling the problem with how new software or technology can offer a better solution.

For some projects, this can be very straight-forward. For most projects, however, this may cut across many layers of the business itself, and involve a large number of different stakeholders across the company. It takes a concerted effort to consistently hold onto the core idea of the business and communicate it throughout the entire value chain. We are there to ask the right questions, but the answers must come from the company itself.

The PeopleLink to The People

Invariably, the success of the project is predicated on the people working on it. This does not only include the project team itself, but the other people they interact with, be them business stakeholders, users, in-house engineers, etc.

Everyone contributes to the success – or failure – of the project.

Being a people person is not often a trait associated with software developers, yet interpersonal skills are critical for succeeding in consulting. Consultants may encounter challenges when working with individuals who may feel threatened by the project or the external team, or who are not initially cooperative.

A good consultant must be multifaceted, so the project can succeed. At times, the consultant needs to act as a mentor, or a guide to develop new skills in the customer’s team, or coach them into new ways of doing things. Understanding how different people fit in the processes that are affected by the new system, and how they will need to adapt to the changes it brings along, are also important parts of the job.

The TechnologyLink to The Technology

It goes without saying that a software project requires technical excellence in order to succeed. This is likely an area where the least problems are to be expected, and most experienced software consultants feel at ease.

However, care must be taken so that the technology is in a strictly serving role, with respect to the project. The simpler, more boring, and plain the technological choices can be made, the better off the project will generally be. This sometimes might be at odds with some stakeholders, be them business stakeholders (“I’ve heard that technology Y is perfect for this type of problem we want to go with that”), or technical ones (résumé-driven development). While there are sometimes good reasons to use the new shiny thing™, more often than not the customer will be better served by well-understood, time-tested tooling.

One for All, All for OneLink to One for All, All for One

It is rare that a single person will cover all of the triangle, excelling in all areas. For this reason, it is important to carefully balance the team that is provided to the customer, so that the overlapping skill-sets of all team members provide sufficient expertise in each of those dimensions. Some projects don’t have sufficient scope to warrant a team, and maybe in those cases, a lone consultant will be the right fit. For those projects, the consultant’s skill-set should be carefully considered, so that the project can be best served, because the same issues mentioned above apply, even to small-scope projects.

On the other hand, a successful consultant often must be able to take on a variety of roles within the project, to work effectively. For example, it might be that the consultant will need to bridge the communication gap between senior leadership, product, and the development team.

Effective communication within the customer’s organization is crucial to avoiding project pitfalls. Therefore, the consultant should be able to comfortably fill in a variety of roles, interacting with stakeholders at different levels, and from different domains, from executive positions, through product, to engineering, and also with potential users of the system, be them internal or external to the customer.

The Metosin TriangleLink to The Metosin Triangle

So what makes for great software consulting? We might not yet have a catchy one-liner (although we had a cool napkin, that unfortunately got lost), but we do have this ever-maturing philosophy that we believe in. It is condensed and described as the Metosin triangle.

What does the triangle look like in action?Link to What does the triangle look like in action?

Great consulting is done by carefully formed teams of multifaceted professionals, able to understand the different dimensions affecting the customer’s business, and the project in question. They are able to understand the business reasons for implementing the project, as well as the impact that the project will have on the business. They are able to fluently interact with a variety of people, from different backgrounds and with different responsibilities, and to seamlessly step into different roles, from the pure technical ones, to management and business-related ones, all with the ultimate goal of delivering value to the customer. Finally, they can deliver excellent technical solutions addressing those business needs. All of this, with high touch.

Martín Varela

Contact