[Off-Topic] A Vent III, Reflecting on 2007
For the record, this article doesn’t have an alternative version to the TL;DR :-)
In 2007 I wrote two articles on “consultancies,” A Vent and A Vent II. They’re worth a read to understand the context. I like to reread my stuff to see whether I’d still write the same thing today.
The first is a set of tips for a consultant to improve themselves. In the second I describe the greatest sin of a consultancy. I wrote both when I already had a few years at companies in different industries, the most recent being several years at a consultancy.
The first article is very simple, and what I recommended back then is what I still recommend today: continuous improvement. Two points from the original text:
It's no use just changing jobs, for two reasons: a new project won't necessarily bring new things (the chances of being just another form are high). And leaving learning only for when you need it, on a project, is already too late. You'll be overtaken by others who know what you should have already known. It's a good programmer's obligation to know things before, not after: after a terrible quality product goes into production, the result will be bad both for your client and for your reputation.
Stop complaining. Complaining creates a negative mentality, irritates others, and doesn't lead to any solution. Complaining is just another excuse, a noise that hides the real problem. The problem is this: you're complaining about the job, about the project, about the boss, but in reality you'd like to be complaining about yourself. Complaining is just the externalization of the frustration of being what you are and not being able to be more. And that's not a physical inability, it's just mental laziness.
For me, the great advantage of working at a consultancy instead of staying at a single company? It’s being exposed to different projects, different companies, different people, and different ways of dealing with each type of problem.
Look at it this way: a consultant is seen as a “pariah.” A company’s employee, in particular, has no reason to like a consultant, because they’re usually called in to do the employee’s job, in less time, with better quality, and earning more. In practice, if the consultant succeeds it’s because the employees were doing a terrible job before. It’s not always like that, but that’s the general view.
From the consultant’s point of view, it’s a hard job. They have to step into a context the employee had months to absorb, figure out what needs to be done and why it hasn’t been, and produce more than everyone else with less authority and less knowledge. A consultant is effectively a mercenary: we’re called in for the work nobody else could pull off.
Note: anticipating the freedom to interpret the “mercenary” metaphor, let me clarify I mean “the one called in to solve the problem no one else could” and not “being paid to do whatever they’re asked, including the wrong thing.” With the metaphor clarified, let’s move on.
That’s what I like. And that’s why a good consultant can’t regress to the standard-employee mind, the same way a mercenary doesn’t compare themselves to the private soldier: they need to be the soldier and the general. When I was a consultant, what pleased me most was being aware of this position, walking into a client knowing I’d have to solve the problems the insiders wouldn’t.
It was feeling the pressure of walking the front line without knowing what I’d face in the middle of the jungle. Talking to the subordinates, to their bosses, to the surrounding departments, and mapping the terrain to find the best path through the minefields. Being able to disagree directly with the client and, at the same time, offer a better solution than anyone had thought of. That’s the exercise of every good consultant.

The second article, A Vent II, revolves around a problem I’ve seen at many small and medium consultancies: poor financial health. That’s “The” main problem:
When a consultancy shows signs of financial problems, it's the red signal: jump out as soon as possible. Don't think twice. If the client decides to throw a tantrum, if the client decides to delay the invoice, if the client decides to stall, none of that is the consultant's problem: that's exactly what we pay this insurance to the consultancy for — so that it places itself between the client and you. The consultant, correctly working the hours billed, has the right to receive on the dates in the relevant contracts.
A large consultancy, with an established name for at least a decade, can get a sale price (rate to the client) up to 5 times higher than the buy price (rate to the consultant), or more. But that’s the exception in most of the market. In my case, the maximum is 50% of the buy rate, and almost 2/3 of gross revenue goes to payroll.
That’s the reality of the services market. With a tight margin, not counting other operational costs and investments, commercial and financial control is fundamental. You know a consultancy is competent when you’ve never had to complain about your payment, in a sector where clients never pay on time.
There are several advantages to working alongside a good consultancy instead of going it alone as an autonomous worker or freelancer, and being paid on the right dates is one of the main ones. If payment comes in unstable, or turns into a stiff, the freelancer option gets attractive again. So when I decided to start my consultancy, this was one of the main concerns. The rule I never broke: everyone gets what’s in the contract, on the stipulated dates.
And after more than 1 year, one of the most unstable periods in a services company, that rule held intact.
But that’s not all a good consultancy offers. The word “consultancy” is a big umbrella, unfortunately distorted by misuse. I split the definition into at least three big niches.
The first is agencies. Here the consultancy is about marketing and advertising, at most, and the software part usually carries low value in the total budget, sometimes handed over more as a “freebie.” Execution is low quality because the pieces are volatile, temporary, and don’t need to last long. Anything different from that, done in agency style, rarely works well.
The second niche is the infamous software factories. In them, most people work as pure “procedural executors,” never quite reaching “consultant.” The fundamental trait is missing: direct contact between the programmer and the client.
The executor works inside a defined process, receives work orders, clocks a fixed number of hours, and their only task is to deliver what’s already been detailed, in fixed roles. There are variations, but in general the factory is driven by a process that tries to be deterministic. For that, the kinds of software tend to be limited: forms, registration screens, and form flows, especially company intranets or integrations with back office.
The third niche, “consultancies,” where “consultants” actually exist, is rare. The assumption is that the kind of professional at a consultancy is superior to the one at an agency or a factory.
To understand this niche, we need to see what the disadvantage of being a freelancer is. A freelancer has to be a mini-consultancy: doing their own personal marketing, cultivating relationships and a commercial network, negotiating rates, scopes, and deadlines, closing contracts (and most close them verbally, because they don’t know how contracts work), issuing invoices, billing, and so on. Oh, and in the middle of all that they still have to program.
Their compensation tends to be higher because of that overhead, but it’s precisely because of it that productivity and quality tend to drop. And when the overhead isn’t handled well, the result is low-trust deals closed verbally, the way you should never do it.
A good consultancy removes that overhead and does it in a superior way. It’s a service exchange, my ideal concept of “voluntary exchanges for mutual benefit”. The alternative to being at a consultancy is acting as a freelancer or becoming an employee at a company whose core business isn’t necessarily software. And here’s a parenthetical: even at a tech startup, I’d say the core business is rarely the software itself, reflect on that.
“Services” is a free market where exchanges are essentially voluntary: service in exchange for compensation, as it should be.
There are companies where software is the core business, like software consultancies. And others where it isn’t, like commerce companies, where software is accessory and not the main business. Or hosting companies, where the core is unquestionably infrastructure and operations.
That’s another thing I learned as a consultant: identifying the core business. If a company sees software as “profit,” that’s where it invests, that’s where the future is. If it sees software as “cost,” it tends not to invest, and to swap what it has for cheaper alternatives.
And that makes sense. Why invest in software at a company whose core is sales? Or finance? There, software and programmers are cost, like a Word or Excel license. If the goal is to grow professionally, look for companies where software is part of the core. If you want a quiet job, routine and few activities, accepting the invisible risk of going obsolete fast and being subject to cuts, look for companies where the core isn’t software.
Back to the difference with a freelancer: the consultant doesn’t have to worry about marketing, contract negotiation, legal, billing, cash flow, or HR. Like a good mercenary, they get a mission and carry it out. More than that, the consultancy closes projects that would never be within a freelancer’s reach, and offers a delivery security a freelancer can’t provide.
A good consultancy also doesn’t end the contract with the consultant just because a project wrapped up. That’s another freelancer pain point: when a project ends, a sales cycle begins that usually drags. A good project takes 1 to 2 months of negotiation to sign, from first contact through proposals and adjustments. The consultant doesn’t carry that weight; they just deliver with consistency and quality, while the consultancy handles the overhead of keeping a healthy pipeline of projects always coming in.
Now, the key point: “like a mercenary.” That’s the most undefined part of the model. I believe a good consultant doesn’t need an “operational boss,” the traditional “manager” who defines work orders, takes over communication with the client, does the internal politicking, and tells each “employee” what to do.
Of course there are senior and junior consultants, and juniors will always mirror and learn from the seniors, but that doesn’t make them “bosses.” A good consultant is like a good mercenary: either they know what needs to be done, or they figure out how to do it, the right way.
“Autonomy” is the buzzword everyone learned to repeat like a cuckoo clock. Everyone only remembers the “freedom” part of the word, and conveniently forgets the “responsibility” part.
“Oh, but I am responsible.” You aren’t. Your name isn’t on the company’s articles of incorporation. If the company takes a loss, goes under, or has to deal with its own debts, the one who pays is the partner, not the hired consultant. Legally, you’re never responsible, until you become a partner.
And that’s a real possibility for whoever turns into an excellent senior. At my company it exists, and it was recently exercised with the entry of 2 new partners.
If the consultancy gives you the “freedom” to run a project the way a consultant needs to, no intermediaries, no operational boss, no short leash, it’s because there’s far greater trust than any company would give an employee. If something goes wrong, the consultant has zero risk and the consultancy bears 100% of it.
That’s another crucial factor some don’t get. It’s like insurance: would you drive a new car with no coverage? The consultancy is the consultant’s insurance. There they train on projects where they technically have no “responsibility” and still gain knowledge, capability, and networking, at zero risk.
That’s what I liked most about the consultancy where I worked between 2002 and 2007. I came in as a junior programmer, practically a trainee, even though I already had at least 5 years of prior experience. It was all new, so it meant taking a few steps back to learn. And I learned.
On some projects the challenge was purely technical, building software on platforms, tools, or languages I’d never used. On others, it was coordinating the work with colleagues the best way possible. On others, it was talking to the client to find out what they needed and executing the best solution. In the end, the challenge turned into selling, convincing the client of the right solution.
I never held the title of “manager,” “pre-sales,” or “architect,” but I acted in all those roles, switching from project to project as the situation demanded. At one moment I was the only developer assigned for a short stretch to solve a technical problem nobody could. At another, I was the one putting together a team of 10 people, hiring and coordinating. In all of them I did what I knew I should do: solve problems. A consultant who creates problems has stopped being a consultant and become just another employee.
A consultant’s compensation is also different from an employee’s. Part of why employees grow more slowly is that their pay rises almost automatically, nearly independent of individual performance. Even the best-equipped companies, with formal reviews and all, end up at the mercy of the ones who, instead of working toward growth, work to find holes in the system and do less. Public-servant profile, pejoratively: automatic annual raises, scheduled title changes, a bad environment for anyone chasing growth.
A consultant, like a freelancer, grows by performance, by delivery, and by how much the clients themselves recognize they deserve more. I’ve seen plenty of excellent consultants who, on switching consultancies, took the client along because of their exceptional performance. Today I don’t see that anymore, just unethical ex-employees trying to negotiate with the consultancy’s client on the side, in talk only. And what good client falls for the sales pitch of an ex-employee who clearly doesn’t deliver results?

The biggest problem at a consultancy is when the consultant regresses to the standard-employee stage. The symptom: instead of chasing results, they chase excuses not to do the work as they should.
There’s a big difference between the one who complains and keeps delivering good, consistent results, which is what they committed to when signing the service contract with the consultancy, and the one who complains and delivers less and less at lower quality, already going against what was agreed when hired.
The clearest sign shows up in “unionization” movements (in quotes, pejoratively, because unionizing in a market that isn’t monopolized or cartelized makes no sense). It’s the one who produces little and starts stirring up the people around them to create “movements,” smoke screens to pull attention away from themselves. It’s the one who spreads slander, insult, and defamation about colleagues, clients, and the company they work for. Easy to spot: it’s always the one who wants to “speak for you, for the good of the group.”
Exactly because of this, every consultancy has a turnover rate higher than that of ordinary companies, and it needs to. It’s the sector’s dilemma: a services company holds its intellectual capital in its people. Letting go of an employee, much less a consultant, means losing an important asset of work and relationships.
That’s why, when a services company lets someone go, it’s a conscious decision, aimed at admitting a hiring mistake and taking a step back to take two forward right after. Part of this I described in the article Net Negative Producing Programmer.
The only dismissal that actually harms a company is the one that happens after there are already signs of financial weakness, in the form of delayed salaries. Either way, not everyone was born or wants to be a “consultant,” and some only find that out over time. It’s all a matter of perspective.
To start with, a good consultant speaks for themselves and doesn’t need intermediaries. And they should know that everyone knows everyone in this market, where reputation and credibility are currency. Just think: what company would hire someone who defames the places they passed through?
Sometimes the consultant doesn’t understand the advantages of their own position. More autonomy always comes with more responsibility, and more responsibility always brings more challenges and more difficulty. Everyone asks for “more challenges,” but few take them on when they show up and say “let me handle it.”
Many look for a job as an “employee,” in the sense of deferring responsibility (the famous “I just work here”). Technically there’s nothing wrong with that, not everyone was born to be a problem solver. Some prefer to work on one thing, to be around a smaller group of people for longer, to limit their perspectives because they have no interest in cultivating (and maintaining, since knowing isn’t enough) a large network.
What many are after is at least a “false illusion” of “stability,” a word that lost its meaning in the 90s, after outsourcing and globalization. Or a “false illusion” of “purpose,” signing on to an “idea.”
I could write a whole article about “signing on to ideas or ideologies,” but I’ll sum it up like this: mostly it’s a false expectation, from a lack of experience and exposure to a broader perspective. As I said, the advantage of a consultancy is giving you that time of exposure to different ideas, people, situations, and perspectives, which trims the rough edges off illusions and teaches you how the real world works.
The thing is, there’s that annoying factor called “time.” Most young people today have less and less patience and are more impatient for instant results than I was back in my day. The irony is that my seniors used to call me impatient, and even so, for me it was always natural to take one step back to walk two forward.
On those who want to open their own business, many justify themselves with lines like “I’m going to work for me and not for others.” That line is a huge false premise. In practice you “never” worked “for others.” Have you ever worked for free, with no compensation at all?
If you got paid, then by definition you worked for yourself, trading your capacity and the quality of your service for money. When you open your own company, you’ll make the same trade again. The earlier and the more inexperienced you do it, the proportionally greater the chance it won’t work out. It shouldn’t be a hard line to grasp, but understanding comes with knowledge and experience, and not with recklessness.
And what defines a “consultancy” for me? I like to think of it, philosophically, as a “meta-company”: a company that carries parts of other companies and needs to be better than them. It doesn’t mean it always will be better, but that’s the “mission” to be pursued without letup. A career in general is exactly that, and being a consultant is taking on that mission more explicitly.
In the end, my goal was always not to repeat what I described in my 2007 Vent: to build a financially healthy company, win clients and close contracts a freelancer couldn’t, with security for both sides. To create a routine that doesn’t require working more than 8 hours a day and 5 days a week. And to build teams as cells exclusive to each client, without the intermediation of an “operational boss,” giving each consultant the chance to learn all the non-technical functions I mentioned above.
2012 was a year of learning and experimentation, with far more problems than I could foresee. Fortunately, my years in consulting gave me the foundation to close out every one of them. Honestly, I can’t picture myself in 2002, when I started in consulting, handling today’s situations and making the same hard decisions.
If I had opened a consultancy in 2002, or any company, I would have closed it, unless I’d had “luck.” And betting on games of chance isn’t what makes a good consultant.
Happy New Year! See you in 2013.