Should companies outsource?
A great many companies have got themselves into an unusual situation. They have teams of software developers working around the clock, but the problem is that they’re not software development companies. This is actually an insane state of affairs.
Why would an insurance company need a team of software developers? Or an asset management company? Or a health service provider? Do they have teams of electricians on staff? Or teams of actors for adverts? No, for those, they get services provided by vendors, not staff members.
Sometimes these companies hire contractors and then pat themselves on the back for focusing their permanent staff hiring on their core competencies. Except… who exactly is managing these contractors? Why, it’s the selfsame people who would be managing them if they were permanent staff! It’s internal management, people who’ve come up from the call centre, or retail operations, who now have to manage software developers.
This is not a good situation to be in
Software developers are difficult to manage. A lot of the usual tricks simply will not work. It’s been compared to herding cats, mainly because they tend to be clever and cynical. Ra-ra techniques will fall flat, and threats, well those only work when the subject is afraid that they won’t get another job – not normally a concern for any halfway decent developer.
So how is your manager going to manage these people? Well, the answer is normally “poorly”. Don’t get me wrong, there are some fantastic software development managers who don’t come from an ICT background. But they’re not the rule, they’re the exception.
What should we do?
Well, if you’re not a software development company, you ideally shouldn’t have lots of software developers working at your premises. You should outsource to companies which specialise in creating, motivating, and growing effective software development teams.
So outsource everything to [insert favourite Eastern country here]?
Not at all. I am most definitely not a believer in outsourcing work you don’t fully understand to someone thousands of miles away who you don’t have the tools to adequately assess. No, you need to find a local partner to outsource to. A company which can put teams in your premises to speak to your people, one which will provide real advice and insight, and one which will tell you when you’re wrong.
Such a local partner may well outsource some or most of the work to some other country. That’s okay, it’s not necessarily inefficient. They’re the ones dealing with the pain of the remote vendors, not you and your management team. They have the expertise in the field, to know when the remote vendors are delivering efficiently or not, when the partner is making up in volume what they’re not charging you in hourly rate, how to identify when the vendor is trying to slip junior staff in as senior staff. You get to focus on giving your customers what they want, instead of being forced to focus on the intricacies of software development.
But bodyshopping is cheap
This is a common misperception because you’re not adding up all the stuff you need. Either you’re sitting in a situation where you’re using tools illegally, or you’re not providing the right tools to your team, or you’re paying a small fortune.
Software developers are expensive, and their tools are comparatively cheap. The note here is comparatively. Most companies think they just give the devs a development environment and off they go. Not so fast! What about code analysis, code reviews, timesheets, training, automated testing tools, performance testing tools, security testing tools, task tracking tools, bug logging software…
My rule of thumb is that at least one months salary a year should go to tools for the developer.
Some companies believe that the contracting house provides the tools. Not many do actually. At Palantir we expect our developers to work at client and on product, and because we need the tools for our product development, they’re also licensed for those tools at client. We also budget for regular replacements of hardware for the developers. Similar story with training, most body shopping companies don’t focus too much on training besides rote motions to get partner points.
Finally we prefer each of our developers have their own private work space, because research tells us that productivity among developers jumps up to 2.6 times in private offices! I’m going to guess that your office environment is open plan.
Most body shopping companies however, provide just the person. They’ll normally fudge over the issue of licenses. So there you are, thinking your team is licensed, and in reality they’re not, and it’s your responsibility. Developers don’t come cheap, but cheap developers can be even less cheap in the long run.
But I get exactly what I want
Sure, you do, but here’s the question: how much experience do you have with software product development? Because a lot of what needs to go into a maintainable, cost effective solution over the long term is “under the hood” kinds of things. Are you driving those decisions? Do you know what those decisions even are?
At Palantir, one of our specialities is rescuing troubled systems and teams. Systems that have become clunky and outdated, where it takes forever to get the smallest change made, and there’s numerous bugs, and common production outages. Systems which are not only easy to hack, but have no way of letting you know that it’s even been compromised. Where do those systems come from?
Your brand new system that does “exactly what you want” in a couple of years!
Wrap it up
Stop trying to focus on things that aren’t your core competency. Find a good software partner and work with and through them. You want opinionated partners, not ones who will roll over to your every desire, because you want partners who know the best way to do the work, and stick up for it. Ask about things like application security, performance, maintainability, and supportability.
Beware of managed service/software development hybrids. The partner should either be selling you the software as a product or be selling you the software development as a service. They should not be selling you the software development as a product, because, trust me, you’re about to get the worst of both worlds. If they’re doing “custom software” as a managed service it means that their interests may not be aligned with yours, a very dangerous place to be.
Looking for an opinionated software development partner? Palantir are opinionated, and have assisted some of South Africa’s premier financial services companies in getting their teams and software under control. Contact us at email@example.com.