23: How to Hire a Mobile App Developer
Published November 12, 2019Run time: 00:25:07
There are many different types of teams you can choose to build out your mobile app. Tim goes over 5 possible setups, complete with the pros and cons for each setup.
In this episode, you will learn:
- When you should go about it alone (and when you should bring in a team)
- Why you should bring in a freelancer to do a specialized task
- When you should go all in and hire a full time team
- Why agencies are the best (no bias here, right?)
This episode is brought to you by The Jed Mahonis Group, where we make sense of mobile app development with our non-technical approach to building custom mobile software solutions. Learn more at https://jmg.mn.
Recorded October 24, 2019 | Edited by Jordan Daoust
Episode Transcript:
Welcome to Constant Variables, a podcaster where we take a non-technical look at mobile app development. I'm Tim Bornholdt. Let's get nerdy.
We are back after a short hiatus, just six months. I had a kid and decided that I should probably do that with my free time for a little bit. So we're back. We're recording some new episodes. We've got some new content here for you. And today on the show, we're going to talk about choosing the right app development team for your project.
So we've got about five different types of teams that we're going to talk about. We'll give you kind of a pros and cons as to why you would want to choose those types and then also some situations where that team type would be right for your project.
So the first type of team we're going to talk about is do it yourself. You're the team, just you. So this is... Obviously you are going to be the one that is programming and designing and developing, strategizing everything around your mobile app project. So the pros of this type of team is the cost is low, really just your time and your knowledge for getting your app built. You'll also end up with an intimate knowledge of how your code works. So that would give you a really good appreciation for how development works. And you'll have a really deep understanding of the different architectures and things that go into app development so that you're able to really sell your idea better. I guess you also won't have any communication issues with your development team. I would hope because it's just you. And this is also a really great way to go if you just want something fast to prototype and get kind of a proof of concept out the door to a client or whoever.
The cons of this approach is, well, you need to know how to build an app, both the front and the back end. If you have something, an idea that's really big or meaty, you know, you're going to need to figure out how to do all of this yourself. And if you're doing it by yourself, it's going to take you longer to do than if you can delegate the task off to different teams. It's like that old proverb of "If you want to go fast, go alone. And if you want to go far, go together." If you really want to have a big successful app, it's really hard to be a solo person and do it by yourself. Not impossible by any means. But it is difficult. The best scenarios for this type of project would be if you're already a developer, or if you want to become a developer, and really focus on that end of it, not really on the business side of things. If you're listening to this podcast, my guess is that you want to focus on the business side of things. So this might not be the best approach for you. But it's also really nice to actually know how development works and how coding works. So this can be a good approach to at least get your feet wet and have a better appreciation for how software development works.
The next type of team that we'll discuss are freelancers or independent contractors. So this would be if you went out and went on Fiverr, or Craigslist, or Upwork, or wherever, and you found individual people that can go and develop your app for you. You're not necessarily hiring a prebuilt team. You're really going out and finding individuals that can build the app for you. The pros of this approach would be, first of all, you only have to pay them a rate or a fixed project fee. Or if you're lucky, and you find somebody that really believes in your idea, you can just pay them equity. This is great because then you don't have to pay W2s, you know, salaries. You don't have to do social security taxes. You don't have to worry about medical and health benefits. You don't have to buy the foosball table for the office. There's a lot of different things you have to worry about when you have full time teams. With freelancers and independent contractors, they buy everything themselves; they do everything themselves. So you don't have to worry about providing them with any of that stuff like laptops and access to the internet and stuff. It's all on them.
Freelancers are also a great option if you have a very specific need for your app, and you need to bring in a hired gun like a specialist that knows that specific thing inside and out. Most developers that are, most iOS and Android developers, aren't exactly complete system specialists. Most iOS developers and Android developers are going to know how to build an app and can figure things out on their own. But if you have something very, very specific, if you have like a Bluetooth component that's very specific and you need somebody to work on just that, or if you need somebody with expertise on doing social networks and how you engineer a back end for that, then that's great. You can hire a freelancer to just focus on that one part of building out your app.
Another pro for independent contractors is once the project is done, they're gone. Like I said, you don't have to keep paying them salary or benefits, especially if your project is small enough. Once it's done, they're done.
The cons to hiring freelancers are, in contractors would be, first of all, just finding these people. It's tough. Like I said, you can go on Fiverr or Upwork, or wherever and find people. But sometimes you have to actually get out into the community, go to meetups, go to different events, talk to people, go and find these developers. It's tough to find people that do this profession for a career. And once you find somebody, first of all, it's expensive. They can be expensive, you know, high hourly rates. But also the good ones, the ones that are actually really good specialists in this industry are busy already. Most of them are booked up with contracts. So it's tough to find people that actually fulfill this role.
Another con of having a freelancer or an independent contractor is that they can do it whatever way they want. You can't direct them to doing it your way as a full time employee. It's like, they can set up the system in whatever way they want. And where that can kind of run into a con down the road is, let's say you hire an Android developer. They're going to set up the project their way and generally speaking, it's you know, 90% the same for everybody. They're going to use the same software and the same tools. But they might lay the code out in a different way than you might be familiar with. They might use a different development approach or philosophy or whatever. So once you have that code, and then that developer leaves, you have to bring in a new person, and they have to get caught up to speed with how that code works. And since these are independent contractors, they can charge you time for rearranging the code to fit their development style, or just even trying to figure things out in the first place. So that can be a bit of a challenge when you hire a freelancer.
Another con, like I alluded to before is, they can leave whenever they want. This can be problematic if you have a big roadmap of features or if you're trying to get a bigger business initiative started and your developer just decides to up and leave. Obviously, you would have this issue as well with having your own full time team but it can be problematic with independent contractors because it really is contract to contract with it. So you just have to know, be aware of that if you're going to go into a development team that's comprised of freelancers.
So the best scenarios for hiring a freelance team would be, one, if you already have a project. So you you've got an app going with a team of freelancers. Great, keep going that way. If you had a project that was started up with an internal team with your business, and then the people kind of left and the project's been abandoned, you just need someone to come in and pick it up and polish it up, then a freelance team, a team of freelancers could be a good fit for that. Another great scenario for this is if you have a smaller idea, so if you just need a small iOS app with no server, back end or anything, and you can just hire one developer, one freelancer to build it out. That's a perfect scenario for that as well. And finally, another perfect scenario is if your project is kind of a one and done type of project that doesn't require a lot of maintenance, so something like a calculator or a bidding tool, something small and easy to build out and it's kind of nice to have for an internal tool or purpose. It can be nice to have a freelancer just knock that out quickly. And then you don't have to have the burden of a full time team or agency working on it continually.
The third type of team you can hire to build out your mobile app would be a full time team. So this would be you're paying people full time to work only on your app. They're not going out and contracting other projects, and they're not working with multiple other clients. It's you have your full time team; it's all on you. The pros would be, I think, this is a good indication of a successful app. If you can afford to hire a full time team and you need the amount of attention that a full time team can give to your project, then obviously, you need to have a full time team. Full time teams are great because they'll do what you tell them to do. They're not, like I said, they're not working on other projects or diverting attention to doing other things that you don't necessarily find valuable. You can tell them to pick up whatever initiative you have in mind for making your app better, and they will jump right in and do it. Another big pro of having a full time team, again, if they're just focusing on what you tell them to do, they're going to move faster than an agency or a bunch of independent contractors, because they're going to be all in, fully vested in working on just your project.
And finally, a full time team can do stuff that independent contractors might not budget for, specifically, like when you're just in support mode, and you're not necessarily going hard on adding new features. So I like to say this is kind of the "flossing your teeth" type of development tasks, so setting up unit or automated testing, writing documentation, even doing cool things like setting up chaos testing. So Netflix popularized this in their infrastructure. So what they do is they have code that they've written where, on purpose, it will go through and just cause chaos somewhere. It'll destroy a bunch of data. It will format a server randomly. It'll just do stuff in production mode, so users can actually be impacted by this. Netflix has gone on and done this so that they're able to write code that makes sure that their system is always up and running. But that's the kind of thing that you would pretty much have a full time team working on; you wouldn't have a bunch of independent contractors writing those tests.
So the cons for hiring a full time team, I'd say this is probably the most expensive route you can go with a full time team. So just throwing out some rough numbers, if you were based here in Minnesota, and you were hiring good full time developers and a team to support the app, you'll at least need an iOS developer, which is going to be, you know, 90 to 110 a year. Android will be again 100, in that 90 to 110K range. A server developer would be in the like 100 to 130K range. Aproject manager probably 70 to 90K, depending, and a designer as well, a good designer somewhere between 70 and 90K. So just salaries, just looking at that, you're looking already at like half a million dollars a year just to pay a full time team to work on your project. This doesn't include benefits like health and medical and 401k, and all that good stuff or the other infrastructure costs that goes into running a business. You're going to need to have HR departments and probably an administrator and those different departments that help kind of support a full time team working on your project.
The other con to having a full time team would be, it's hard to keep talented developers engaged full time on a single project. Again, developers are in very high demand. And you have to keep the team engaged with new challenges. That's really what good software developers like is having new challenges, new problems to solve. So as long as you're continually engaging them with new problems and empowering them to solve these problems, if you can do that, that's great. If you can't though, you're going to have some turnover. And especially if your app is just kind of in maintenance mode, and you're just really supporting legacy stuff, developers hate supporting legacy stuff. So that's a big con for having a full time team is you just have to keep them engaged and working hard on making your project as good as it possibly can be.
So what are some good scenarios for a full time team? Well, really, if you're app needs a full time team working on it, then you need to go with a full time team. You can save good money, especially if you're going to go the agency route. If you really need to engage an agency full time, that can be very expensive. And if you go the freelancer route, then you run into the risk of, you know, not having a full time team available when you need them. Also, if you need to have, again, having total control over the team and making sure that they're focused right on just developing your app, then obviously going full time is going to be preferred to any of the other ones that we've talked about here.
Finally, let's talk about consultancies and agencies. And there'll be no bias here, being someone that runs an agency. So hiring an agency, what's that all about? So bringing in a consultancy, or an agency, is going to be a team of developers that already have systems and processes in place to build out mobile apps. So bringing an app to an agency, you would bring your idea or your problem, and then they'll help strategize around that problem to come up with a solution. And then they have all the staff that you'll need to design and develop, test, deploy, and support your mobile app.
So the pros to this approach would be, it's a one-stop shop. You don't need to go out and find a full time team or assemble a band of independent contractors. You just go to one place, you pay them some money, they give you one or two points of contact to figure out how your project is doing and to help them with making sure that they're focused on your objectives as a business. And probably most importantly, if a developer leaves, it's not on you for going out and finding a new person. The agency can really replace them and get up to speed really quickly.
Another pro to working with agencies is that they typically have expertise across many types of apps. So a good agency is going to have a deep portfolio with plenty of experience solving a bunch of different problems. So, you know, for instance, The Jed Mahonis Group here, we've built apps that connect with Bluetooth. We've built apps that need to be HIPAA compliant. We've built social networks. I mean, I'm looking at the wall of apps that we've built right now. We built a dental staffing agency. We've built a app for delivering pizza. We've built an app for cities to be able to communicate with their citizens and businesses. Yeah, I mean, we built an app for funeral homes. We have a diverse portfolio. So that's really a good pro for working with an agency is, they've pretty much seen it all and can help you get your project done efficiently.
Another pro can be the costs of building an app. So it's nice because you can really engage with that agency when you want to get the app built, and then let them go when you don't need them. You can do this either, especially with ongoing support, you can either set up a retainer with them, or you can pay as you go. It really depends on the kind of app you have. But working with an agency, it can save you a lot of money over a full time team, especially if your app doesn't need full time work. If you only need work occasionally, then you can have kind of the benefits of a full time team without necessarily the cost associated with it.
The cons of working with an agency are none, just kidding. There's a few cons of working with agencies. First of all, they're not at your beck and call. Unlike a full time team or sometimes independent contractors, these agencies that are successful are working with multiple clients at once, so things might not move as fast fast as they would if you had a dedicated full time team just working on your app. And if you do want their full time attention, it's not going to be cheap. Which leads into the second con, our hourly rate here at The Jed Mahonis Group is currently $150 an hour. And more prestigious and specialized agencies can get up to $500 an hour. So if you need full time work, or if you're constantly running the clock because you're changing your mind about what the app should do, if you have a team of five people working 40 hours a week, 200 hours times $150 times a month, times a year, whatever, it adds up. So agencies can get expensive if you allow it to get to that point. Finally, the last con would be if you get to the point again, like we just talked about where you need to scale up to be full time, you'll have to find a way to work with them to transition their team off and transition a full time team on, and if you pick a good agency, they'll help you actually go through with this. But there are some agencies that are going to feel scorned and say, All right, goodbye, go figure it out yourself. Here's your code piece.
The best case scenario for working with an agency would be if you just have an idea, but you don't really know how to execute on it. The biggest advantage to working with an agency is going to be the strategy side of it, of helping you figure out, is this actually going to be an app? What platforms does it need to be on? What do you need for the back end? How should it look? All of those different things that an agency already has expertise in. That's really, if you don't know where to start, agencies are a great place to go. And I would say, basically, anything that isn't like a truly full time effort or something that is so small that you can just get one freelancer to do it, if it isn't in one of those ends of the spectrum, then agencies are right in the middle there to pick up pretty much any project you can throw out.
The last thing I wanted to touch on, which can kind of fit into multiple pieces of the puzzle here, would be outsourcing. So when we say outsourcing, we're talking about going overseas and finding a development team that's abroad, not in your local country. So the biggest pro and the biggest reason people talk about outsourcing is money. Which is, I guess, as good a reason as any. We've seen teams that are a fifth of what we charge here at JMG. And I've seen contractors, when I've looked for independent contractors, I've seen them as cheap as like $10 an hour, so you can really save a lot of money if you get good outsourced development work.
The cons. Like the old saying goes, you get what you pay for. If it's hard enough here stateside to find a good developer, try going international and finding a good developer. It's really hard to do things like establish trust, and the communication barriers and these are things that we'll touch on. But again, just generally you get what you pay for. Another con for outsourcing is protecting yourself. Good luck trying to enforce a contract overseas that you wrote here in the US. It's tough too if you run into issues and you need to sue them for the money back or whatever. It can be difficult, which leads into another con, like we alluded to, is trust. Establishing rapport with a development team is really important, especially one that's going to be taking your idea and turning it into something that your livelihood will depend on. So if you can't chat with your developers in person that can sometimes lead to some issues. And other thing along the line of trust is making sure that they don't put weird sketchy things into your code. Some industries like especially in the financial tech industry, they actually require that development is all done onshore. So you might not even, depending on what industry you're trying to get into, you might not even be able to go offshore, but just trust is another con for outsourcing.
And finally, probably one of the biggest cons for outsourcing is communication. I wouldn't say necessarily language barriers being a thing of just being able to communicate in English. I always find it really impressive, because I don't speak, you know, Pakistani or any other language. I just speak English. I guess I speak a little German, but I'm not speaking to my developers in German. Everyone is speaking English. So I don't really see a lot of issues on that front. But I think a lot of the problems would be more cultural. If you're working with a developer who's not used to your local customers, you might say something that would make sense to, you know, me or somebody else that lives next to you. But somebody halfway across the world, you know, there's certain phrases that we take for granted that they might not understand. For example, I was talking with a client the other day who works with outsourced teams, and they said that "We need to beef up security" and it took them forever to figure out that they weren't talking about cows. They were talking about, we need to strengthen our security. So it's things like that that can be difficult. Another thing that relates to communication also is time differences, depending on where your contractor is located. I know teams that go down south, like to South America to outsource because they're in our same timezone so that you don't have that issue. But if you go, you know, over to India or someplace way far away from the United States, you might run into time issues where your developer is working at one in the morning when you're not. So the time that it takes to develop projects can get lengthened.
I would say that the best case scenario for outsourcing is if you can actually fly out and meet a team in person. That is going to give you the best shot at getting a good outsourced relationship. And also if you have a team that's working full time on your project, those also tend to be some of the best projects for going outsource. I'd say there's also some agencies that have a local presence, like their sales team is local, but their developers are all offshore. And I've heard teams, I've heard varying amounts of success. It's just like any one of these types of projects is you really have to find the right fit that works well for you. And if you find an agency that does that model, then fantastic.
So final thoughts. There are many ways to choose a development team. We said, I guess, there's five to be specific. So you really need to just figure out which model works best for you and your situation. I'm going to be partial, I suppose, and biased and say that agencies are typically a great way to go if you don't know which route you're going and if you don't want to jump right into the full time model. But I would say that going down the freelancer route is tricky, especially if you haven't managed a technical project before. There's a lot of nuance and things that a good project manager is going to do to keep the project moving and keep everything flowing together in one pace. So, you know, going about it by yourself or with independent contractors is probably going to be the most difficult one for you. And then the holy grail ultimately is to get a full time team because that means that you're mega successful with your app. So if you can get to that point, then you can hire a CTO to focus on the technical side and you work strategy with the CTO and then the CTO goes off and, sorry, the chief technical officer or technology officer, they can go out and actually implement the technical side of things.
So those are my thoughts. And in an upcoming episode, we're going to go a little bit further in depth and for each of those types of teams that you can hire, we're going to go over the types of questions you're going to want to ask each specific team so that you can kind of compare apples to apples of which actual full time team is going to be right for you or agency or freelancer.
That's it for today's show. You can get in touch with us by emailing Hello@constantvariables.co. I'm @TimBornholdt on Twitter and the show is @CV_podcast. We're also on a lot of different social channels now, thanks to our awesome marketing person Jenny, who you will hear from in a future episode. Show notes for this episode can be found at constantvariables.co. Today's episode was edited by the neighborly Jordan Daoust. This episode was brought to you by The Jed Mahonis Group, where we make sense of mobile app development with our non technical approach to building custom mobile software solutions. Learn more at JMG.mn.