Four checks to make sure you hire a great iOS developer
With the proliferation of outsourcing and cheap development alternatives, we have to take a step back and make sure that who we are hiring can actually do the job.
Choosing the wrong developer can unfortunately be the biggest mistake of your short app business career :(.
But to those out there, who don’t understand code, let me clear the fog a bit.
Coding for iOS could be viewed as a mix of tools and materials, and if you know how to use them all then yeah, you can go out there and build something.
A bit like a newly trained carpenter that has learnt his trade and is plying his services around town.
The unfortunate aspect is that the newly trained carpenter then goes out there and offers their services to build houses and even buildings.
To make the story more plausible, the carpenter is doing the job for 1/10th what it would cost you to hire someone else… which aligns well with most people looking to hire developers also do – they go for the cheapest! 😉
And of course with the carpenter going around building houses and buildings, the inevitable occurs – after many delays, your newly commissioned house or building falls to the ground, often before it’s even completed.
Just like the carpenter, the developer goes out there and continues to build apps of increasing size and complexity.
They know all the tools and materials, and what they do… but they don’t understand the proper code construction framework to use to put it all together in the best way possible.
Meaning their clients receive very poor apps that don’t deliver on what they were meant to do.
Long story short, the developer takes their money and you are unfortunately left with a mass of poorly written code.
But let’s just say for arguments sake that the carpenter (developer) does a reasonable enough job that your house (app) stays standing ^^.
That’s great and all for your one story house, but eventually you are going to want to expand the house, perhaps add on another level (app updates).
That’s where everything comes back to bite you :(.
This is because while the work they did could keep a single level house standing, it just couldn’t cope with two or more levels.
The same with code.
A program that works, but isn’t constructed well; will in the long run cost you a lot more money :(.
Using the same developer will only result in more poorly constructed code, and unfortunately, even getting a new developer is difficult, as they then have to work with a poorly built framework.
Even if it is somehow completed, you’re just going to have an even shakier construct than before!
And we’ve all heard ‘those’ stories before – about development projects that run well over-time and cost much more money than was originally quoted.
No exaggeration here, and there is even a report called the ‘Standish “Chaos” Report’ that shows that the amount of Software Projects that succeeded in 2009 was only 32%!
So, what is the answer to protecting yourself from the other 68%?
Well, I’ve come up with a few ‘checks’ that you can go through :).
1) Organise a code review of the developers work
You can get another developer or company you trust that understands good code construction to review the code and make sure the developer is doing a good job.
This has the benefit of you then being able to take away the project from the developer before its too late.
Unfortunately unless they own the rights to the code from earlier projects, then it’s not possible to do a code review of their earlier work.
But, it’s still worth asking if they can provide any examples at all of any of their previous work and get that reviewed.
Just please note that there is no guarantee that they are giving you a copy of their own work.
Lol, I had a developer once give me copy/pasted code from an Apple Sample code project and claim it as his own.
Seriously guys, there are a lot of bad developers out there looking for a quick buck, just make sure you do your homework :).
On the bright side, there are also a lot of great developers out there, and if a code review demonstrates that ‘hey’, this person really knows what they are doing.
Then you can take a deep breath and smile as you have found someone you can trust to at least have the technical skill to do the job for you.
2) Do a pre-inspection
The ideal time to try to ensure you get a quality developer is before you go in and hire them.
But, this screening isn’t always full-proof and sometimes you’ll get the situation where a company has done quality work before with previous developers, but the new developer’s work isn’t nearly as good.
Which is where this question can become very important: “Just what experience does the actual developer/s that will be working on the project have.”
Then you need to ask the next question of what their role was on any previous projects.
And if others were involved, what area of the project were they responsible for coding?
This is because a developer could be part of a previous ‘project team’, but not have a very active role.
The end goal here is to try to measure the developer’s previous experience against the level of complexity of the current project.
And if their previous experience is higher, then you can feel more confident about the job getting done.
Again, not easy to do yourself! :(.
3) Ask if the company conducts regular training
How on earth do developers get better if there isn’t regular training?
Yes, they get better by doing on the job work and they even may learn from their fellow developers.
But their core skills, coding patterns and sound code construction practices are not being picked up.
Yes, admittedly there are developers that go out there and train themselves up in code construction, but those are the minority.
You’re going to get a higher caliber developer if the company conducts regular training.
Which means you can sleep easier at night :).
4) Ask them for their plan
A good friend of mine likes to say, “If you fail to plan, then you plan to fail”.
So, just ask the developer/company you plan to hire to provide you with a plan of how they are going to go about building your app.
The more detail the better – just ensure that you get a ‘visual’ map and not a wishy-washy bunch of written text.
Essentially you’re looking for an ‘architectural’ type drawing that gives you a look at how the code will be constructed.
It doesn’t have to be anything specific like a class diagram or similar analysis document.
Just a visual look at how the problem will be tackled.
The goal here is that it is presented in a way that even a non-developer understands and gets them thinking, “oh yeah, that makes sense”.
The brilliant thing about this is that you have now forced the developer to have some sort of plan – something they should be doing anyways!
Ack, It annoys me no end to see poorly constructed code :(.
“But Cliff! I don’t know any developer that can do this and I can’t do this stuff, it’s too complex :(“
Heh, sorry guys… I realised that as well when I was half way through writing this.
Well, I like to help so I’ve figured out a way that Kerofrog could provide this service :).
Just get in touch with me and we’ll see if there is any way I could help. 🙂
But back to our four checks…
At the end of the day, it doesn’t matter where the developer is from.
It’s their development skills.
Yes! There are still a bunch of other factors you need to consider before hiring a developer, which are really the same as hiring anyone.
Do you like them, and do you trust them?
Which by the way guys, is a big tip for getting clients to purchase from you! 🙂