As CEO of several software and software services businesses and a speaker at conferences internationally, I have met with tech companies and techies all over the world and have come across some fundamentals worth sharing. Most of the data I have received is based on conversations with individuals I trust. I am, in no way, referring to any company in particular. This article is only intended to share the everyday consciousness that has been percolating in our industry. The onus lies on us to pass on this awareness in order to push each other to improve. Let’s examine some common problems and possible solutions:
Problem #1: The simple, scalable, but flawed model. There is always demand for good talent. Big Consulting Companies (BCCs) usually follow the same model. The model is simple: sell first, find the talent later. The BCCs find good practice leads and then rely on them to build a team. The model is easy to replicate, but doesn't guarantee delivery of projects. It serves the purpose of scaling their firms, but doesn't really help the clients in the long term. Apparently, scalability of resources looks good on paper; however, the reality isn’t as pretty. In reality, the BCCs will then farm out the positions to a bunch of small companies.
So, imagine a large corporation has three preferred vendors it uses for software development and that it needs about 1,000 developers in Dallas, Texas. Of course, no company would have that many developers on bench at any given time (especially in such a good market like this!). So, its only recourse is to add vendors that are usually mid- to small size recruiting/consulting companies to fill these positions. For the corporation, the benefit is fewer vendors to manage; however, this simplicity comes at a price. The brand it thinks it is working with is now is a compilation of a bunch of no-brands.
The problem is in this mindset; it's that of defining success. BCCs define success in terms of revenue. My company doesn’t. We define our success in terms of success of the project. BCCs would love to provide the clients with 1,000 resources. We won't. We would like to do the same thing relatively cheaper, make it more manageable, and ensure the success of the project. Most of the time, companies are happy paying $100 an hour to 1,000 developers, but not very happy paying $250 an hour to 50 developers.
The Solution: The solution is that an ideal team could be made up of one expert (someone adept in making successful projects, understands business well and is a completely hands-on architect), ten hands-on architects, 50 good developers and then some testers, designers, agile coaches, etc. You may never need those 1,000 developers!
It's very interesting that so many of these BCCs won't even blink an eye or think twice before helping out with a client request like that. They won’t ask if that’s really what the client needs. They will just find a way to make it happen. Please know, I'm not against sub-contracting by any means, but it should be used minimally, advantageously, and only when necessary. There are good resources out there, but we have a duty to make sure the developer is paid well and client is charged less. That’s just good business, if you ask me.
Problem #2: You get what you pay for? False. Actually, it's partially true. I can understand when a company pays $20 an hour and is looking for an expert developer to work on-site for an average 40 hours a week, perhaps the saying holds true there. The irony of our industry is that when clients pay $250 an hour, they are not getting what they paid for. The simple reason is this: Vendor A farmed out the position to Sub-Vendor 1, Sub-Vendor 1 hires Sub-Sub-Vendor 2 who holds the work visa for a candidate. Now, there are three layers, the client only knows about one, and three companies are now fighting to make a buck off the same developer—you see the problem? BCCs, for the most part, are required to make 40-45% margin on the deal. Sub-vendors look at making at least 30%, so by the time the developer splits his income with the vendor that holds his work visa (H-1B or similar), the sub-vendor, and any other sub-sub-vendors, the paycheck he receives will be miniscule. The client believes it paid a premium to bring in this consultant and is unaware of all the politicking going on beneath the surface.
The Solution: In this case, rather than getting someone out of school for $250 an hour just because he works for a brand-name company we’ve all heard of, it's better to hire an expert who knows what he's doing. Here is a real-life example: We have an iOS expert working for a client in Dallas getting paid $125 an hour and we are billing $139 an hour on him. The margin here is just $14! Not even close to the 40-45% the BCCs require. The bottom line is this: charge the client less, pay the developer more. If it’s a win-win for everyone and ensures the project will be successful. So, now you really are getting what you pay for.
Problem #3: Lack of top talent. Surprisingly, most top experts in the industry work for big-name companies only for a short time in order to grow their resume. I can point to at least the top ten guys I know in the industry and none of them do anything but independent consulting. These experts rely on the BCCs to find them jobs, which means they aren’t even being compensated as well as they should be. Believe it or not, if the BCC is charging the client $400 an hour for an expert, the expert is looking at making nothing more than $75 an hour. If the same expert was paid $400 an hour, that could mean an annual salary of $800,000 as opposed to $150,000. Big difference! That’s why these experts like to work through us as opposed to a BCC. The same expert working independently could make more money in just six months and dedicate another six months contributing to the technology community. This is exactly what I do. I speak at conferences all over the world and help complete strangers that I meet in the community help grow their own developer communities. For example, I flew to Canada twice last year, at my own expense, to do just that. This gives me the flexibility of working on good projects, the feeling of giving back to the community and working with smart people to cultivate smart developers.
The Solution: Top talent wants to hire top talent. A-list players want to hire A+ players. B-list players hire C-list players and C-list players like to hire D-list players. With all the bureaucracy that goes on in BCCs, top developers don't stick around that long. Developers are creative people and they are proud of their work. We like to work together, make mistakes, improve, get better on a daily basis, challenge ourselves, and succeed as a team. This gratification keeps us going. With a company like ours, all these talented people come under a banner and meritocracy is the only differentiator. The definition of success for us is finishing a project on-budget, on-time, training the client resources and then moving the team to a different client. Clients that want us long-term do have the advantage of having us support them as long as they want; however, our goal is to make the client independent, not dependent on us.
Continue reading... Are Big Consulting Companies On The Verge of Extinction? - Part 2