The Idea of Outsourcing in Software DevelopmentApril 30, 2020
Q: Something we deal with in the industry we’re in, the idea of outsourcing. Big topic, and I think what fails a lot of times to be defined is what outsourcing means, because it means a lot of different things to a lot of different people. It means something to clients and different among clients. It means something to us and different among us. But kind of let’s dig in a little bit of outsource software development. What’s the first thing that pops into your mind when I’m mentioning that?
A: Thinking about it, when I’m thinking of outsource software development it’s exactly that. It’s somebody outside of your own company doing the software development for you. A lot of times people done have software development teams and so they are outsourcing that work to somebody else. Like, we are a consultancy, so technically we are an outsource, right? So, if somebody wants software done at a company, they might come to us and then they’re outsourcing that work to us. So that’s definitely one of the first things that I think of in terms of outsource. I know a lot of times other people when they say the word “outsource” they think different countries. There are positives and negatives to doing that, because when you’re working with an outsource partner, say you’re based in the US and you’re working with somebody in, say, Poland for example. There are a lot of Ruby on Rails developers out in Poland.
They’re way ahead of us in terms of time, so they’re going to be working as we’re not. They’re also probably going to be at a lesser rate because cost of living in Poland is less than living in the US. So there’s definitely advantages, but there’s also language barriers that you’re having to work through, as well as the biggest one being time zone barriers. And if you’re not the type of business that can operate asynchronously, meaning if you expect an email to get to responded to within an hour, you cannot outsource outside of the US. You have to be somebody that’s willing to wait a little bit of time in order to get a response back from whatever you’re trying to build or develop.
Q: And you planed an interesting thought in my head the other day. Mentioning the time zones and the differentiation, a lot of it is more, we’ll dive in to where it technically matters. A lot of it is just based on client expectations, and not even I’d say expectations, that’s a layer ahead of what our client actually needs to be feel and be successful; communication, how much variance they have in their actual plan and if they actually need help requirement gathering and things like that.
A: That’s kind of what I was thinking of, is the requirements piece. If you do not know exactly what you want and you don’t have the capability of speaking to somebody directly to say that, and you’re having to do everything either email or every so often over video, because the time changes are so off, then you better have your requirements buttoned up. You should be able to say this is exactly what I need you to do. Most of the time that is not the case, at least in our experience.
Q: And there’s the confusion between this is exactly what I needed to go and there is ambiguity around it or it lacks shared meaning, like, oh, I want to be able to check out or I want to be able to have volume pricing, that’s not buttoned up, that’s good, you’re identifying the feature you want, now what are the sets of the feature? Because there might be 37 bullet points of exactly how, the logic behind it, the conditionals, like how it’s working, the data you’re going to need to pass to it, all that stuff.
A: Oh yeah, it’s like maybe one of your requirements is I want a calendar in here. Okay, well, is that a daily view, an hourly view, a monthly view, an annual view? What does that calendar look like? Can I book appointments through this calendar? There are so many other questions that come from maybe a few words in one sentence of a requirement, and so not having every single detail planned out is only going to play towards your downfall which ends up being usually more time and therefore more money. This is where someone like us might be able to help and step in. Say you want to work with an outside vendor not in the US for various reasons, maybe it is cost, maybe you do need somebody to get something done in a certain amount of time, or whatever it is, or you need someone to work at night while you’re here during the day. It’s best to have somebody that you’re working with that deals with that every single day.
Most companies, when they’re thinking about going outsource, it’s the first time that they’re working with outsource, and to go outsource to another country right away is very difficult. So, where we are able to come and step in is hey, we’ll act as the middle man between you and the outsource. We’ll make sure that all of what you want is being properly translated. We have a set of partners that we know and we trust and so we very much understand how each of us thinks and how we communicate. And so we can 100% more clearly define what you want to that outsource partner probably better than you can, because we’re able to translate that over both in just technical speak, but also there’s the co-cultural aspect of it that a lot of people don’t really think about or pay attention to. As Americans, there is a totally different culture and mindset that we have towards business and relationship than in other countries, and we make sure that we maintain positive culture and relationships and respect those.
Q: And I’d say that’s one of the big things that when we first started off, we really didn’t think of ever partnering or ever working with clients to have their work done somewhere else, because we took great pride in the fact that we did everything in house. And it’s been interesting because usually people start the outsourcing route because it’s easier, in the US of hey, I’m a salesperson, or again, you only need certain key positions, and then bring things in house. We have a great passion, we have our development teams, and again, something that design, we’ve never outsourced unless it’s something that’s super specific, we say hey, we can’t really help you with this, we think you should go with someone else, we can help you find that person. But in the development side, while we’re super passionate and we want to build it inhouse, it’s true, a lot of clients come and instill this trust in us because they need some kind of partner, and if we can advocate for them and to us what that means is if they’re coming and saying hey, I need to do this for X amount of budge, and we assess that there’s really nothing we can do to help you on the build side because it just doesn’t fit into what we charge and the resourcing would take, well, is there someone else, no matter where they’re at, that could achieve that? And if the answer is yes, we bring that up.
We boil that to the top and say hey, here’s the situation. We can’t do it, we’d love to partner and get you to that person that can. Because in the end what excites us is the success of our clients. Yes, do we selfishly, would we love to develop every single thing that they do, but it’s just not realistic and that’s what they sometimes are looking for isn’t I want to you develop explicitly my application. They MVP Phase 1, Phase 2, Idea #1, they want to get it to market and they need somebody that can discover and challenge through assumptions. And so that’s where it’s just been an interesting kind of tug and pull of, again, all the clients we work with are understanding, because we don’t try to hide that, we’re not trying to be, you know, be embarrassed of that, because it’s part of who we are to serve the client. And so one of the interesting things you had mentioned, just again going back to the idea of pros and cons of outsources, if you took our whole LLT team, designers, developers, everyone in the company, and you just moved us to Japan for a company retreat for three weeks, we would naturally come up to barriers or obstacles with regards to how we communicate.
The recency, the immediacy of when a client needs something, it’s a different perspective or a lens that never kind of viewed, sure, we will still retain most of the way we work and the way we think, and the quality or the discovery we do, not saying that outsource out of the county places do not, they absolutely can and do that in a lot of situations, but it was just an interesting kind of mindset of kind of like, you take any US based company, you shift them into a time zone that’s different, and so it’s about assessing the outsource software development world, what you actually need as a client, what you’re willing to put up with for what you want to compromise on. If you want to build this great new marketplace app to mimic major players but only have $20,000 to do it, well, pick your poison. You’re not obviously going to be able to accomplish everything you want, so why don’t we look at what the options are? We could develop an MVP Phase 1 for that really low budget and really doesn’t fit, but what we could develop, maybe that’s too little, compared to some of the compromises of having to do some prework, having to really hammer out what you want, and then being ready for those natural gaps that will come up. And so that’s kind of the biggest thing of when we talk about this world, about outsource development, for lots of people it’s a bad word, but in reality it has its time, its place, and like you were saying, it depends if you’re a company looking for that, have you worked with an outsource partner before? Because it’s not wrong to do it, but realize what you may be giving up or what you may need to step up to the plate and do so that you can have a successful project.