How To Hire A Web DeveloperBeau Beauchamp
Hiring a web developer for the first time can seem like a daunting task. You might feel like you don’t know what you’re doing. You probably kind of know what kind of web application you want, but you don’t know how to get there. All you know is that you need someone to help you build what you have in your mind’s eye. It’s just an idea at this point. But you know you need someone with the technology skills to build it.
The first thing to know about hiring a professional web developer is that most of us are just like you. Everyday people with lives, families, kids, and all the typical stuff you have going on in your life as well. We’re just ordinary people who just happen to know how to code and make technology work.
Most of us are very personable people, a little opinionated, but we all have our spheres of knowledge and experience that we’ve learned by working in the fields we typically specialize within. Put two of us into a room together and you will often finding us agreeing and disagreeing on just about everything. It’s not that we’re right or wrong, we just have different approaches to solving the technology problems you might have.
What does a web developer do?
A web developer is a specialized software engineer who may or may not have a college degree in the field. Software Engineering is one of the few fields where one does not need a degree. They can be taught the technology from a trade school, typically called a “bootcamp” or simply be self-taught. The statistic that might surprise you is that some 65% of Software Engineers (aka. Developers) are self-taught.
The job of a Web Developer specifically is to translate what you, the “stakeholder” or client in this case, have in mind that you want your business to be able to do via the web, and make it happen. A typical example is: “I want people to be able to signup on our website so that I can email them a coupon.”
The web developer then takes your “requirements” and translates those into functional code so that your web application now does exactly what you want in the way that you need to enhance your business’ goals.
There are several processes for taking in your requirements and turning them into code and an operational website. The bigger your idea, the more functions your web application will have, the more formal and more time consuming the process will be.
A single developer CAN build your idea if the functional requirements are small or limited. But don’t expect a single developer to build you a Twitter clone within a few weeks.
If your project is larger or you want it done more quickly, you may need a small team of developers, like 2 to 4 is typical for small to medium sized projects. One of the developers becomes your “lead” developer and will be responsible for running the project. Often, however, just one developer will be responsible for everything you need done.
This person will often take a systematic approach to collecting your requirements, documenting what needs to be done, implementing your vision into “screens” that help you see what the page will look like using tools like Figma, and then coding your web pages so that they work they way you envision.
Along the way your developer will offer suggestions about how to build your project, what “technology stack” they prefer to use, even where your project needs to be hosted.
That’s the good news. But now I want to get real and hit you with the cold water of of reality of what can and often does happen.
More than half of all software projects fail.
I’m going to be up-front with you out of the gate because I don’t want you wasting money and I don’t want your project to fail. However, the truth is that between 50% to 80% of all software projects will fail; meaning, they never get completed to the point where they meet all of their requirements for cost, schedule, quality, or the software’s objectives. Failure can mean the cost went way over budget, or only a subset of features were completed. Or it took three times as long to complete.
Mostly because the stakeholder, that would be you the client, didn’t hire an EXPERIENCED developer or developers. It pretty much is that simple.
Right now you can go onto sites like Upwork and see business clients looking for developers to do everything from small website jobs to large projects. Invariably, these clients are requesting “beginner” to “intermediate” experienced people; and offering flat-fee and hourly rates that will only attract inexperienced people.
Maybe these less experienced “developers” really do think that they can finish your Twitter clone project inside of a month on a $1000 budget. But they will fail. And you will have wasted your money with a partially finished project. And the developer who didn’t deliver the finished product for your impossibly low flat-rate fee is now nowhere to be found or does not return your calls.
The truth is, as the client, you have no idea what your project will cost. That’s not your job and its way outside of your area of expertise. The best you can do is to figure out what hourly rate you’re willing to pay to make your project a success.
Let the developer tell you how
much your project will cost.
Sites like Upwork give you the impression that you can just name your price for a project and someone will do the work for your really low fee. But this is kind of a misnomer.
If all you need is someone to make small changes to your WordPress site and you think it’s a $10 job because it will only take them a few minutes to change a pricing table, think again. The developer will likely spend at minimum 30 minutes to an hour of their time just collecting your specific changes, login credentials, file reviews, code reviews, making the changes, then testing them to your approval. All this for $10?
REAL web developers will only work on an hourly basis, not a project basis because there are just too many unknowns even when making changes to small websites.
It’s okay to hire a beginning or intermediate developer for small changes to a website. But if you really want to dive into that new business project that has been evolving in the back of your mind for the past few weeks or months, an inexperienced developer is not going to have the knowledge to give you an accurate cost. They just do not have the experience to do so—not accurately anyway.
Yes, they THINK they do, but as a 20-year veteran software engineer who has worked in all phases of small-business to enterprise-class web application development, I’m here to tell you, they don’t. And they don’t know that they don’t know. But they will give you a price as if they do know. It will be wrong and you will be spending way more money than the original estimate that the less experienced developer gives you.
Software development always costs
more than you think it’s going to.
This is not my opinion. Ask any software engineer or application developer you know or can find. EVERY project is going to go over budget. Just expect it as hard fact.
There are a myriad of reasons and most of them center around:
- missed functionality that gets added midstream;
- something doesn’t work right out of the box and it takes a week to get it working properly;
- feature creep by the stakeholders (adding functional scope to the project);
- redesigns of the UI/UX (web devs are notoriously bad at doing UI/UX) and you need to hire a dedicated UI person;
- and some things just take longer than you expect if you’ve not done them before.
We all try to be optimistic about time frames, but in the end, we’re all wrong and the software will be late. It will get done when it gets done. It’s the only thing you can really bank on.
The Iron Triangle
Every software project, no matter the size, will be constrained by the infamous Iron Triangle. In case you’ve never heard of this before, it is a rule of thumb that is utterly immutable (it’s set in stone). The rule essentially goes like this:
“Good. Fast. Cheap. Pick any two.”
If you want great software quickly, it is not going to be cheap. If you want good software cheap, it is not going to be done quickly. If you want software quickly and at a low cost, it is not going to be good software. In fact, the project will likely fail and you will end up losing whatever little budget you had.
Dovetailing off of the Iron Triangle is another expression that is used in many other industries as well and it is equally applicable with your project too:
“If you think an expert is expensive, wait until you hire an amateur.”
I cannot tell you how many times I have been hired to fix crap code that had been written by people hired on the cheap, especially offshore agencies. These clients ended up paying TWICE for their code, once for the amateur they hired because he was cheap, and then once to pay me to come back through to repair all the damage, upgrade poor coding to current standards, and fix all the bugs.
Last year I hired an offshore team to build me a WordPress plugin because I was on another contract and didn’t have the time. I used Upwork and after twice the time estimate (which I kind of expected anyway) the team, yes team, I got a whole team for $30 an hour, turned in their code. It worked. It was really ugly UI, but it worked. However, when I looked under the hood at their plugin’s code I was horrified! I just stared at this spaghetti mess of hacked-together functions that had no rhyme or reason. I fired them.
Once my contract ended, I junked all of their work and re-started writing the plugin myself from scratch; one that used WordPress’ object-oriented plugin architecture. My code was so much easier to follow than what this so-called offshore team turned in. I also finished in under a month when it took them two. My UI was also flawless and beautiful.
I’m just making the point that I did a much better job, and finished in half the time. Yes, at my professional rate, the cost was more expensive, a little more than double. But in the long run, I was less expensive than the offshore team’s junk code that was ugly and a mess under the hood. Did it work? Yes, but it was a complete inexperienced mess and maintaining it would have been a nightmare. Not to mention that someone else would have had to hire another person to fix the ugly UI.
Software applications, even simple websites, are an investment in your business. You need to know that this code is going to be with you and your company for many, many years, perhaps decades. You should always seek to get the best code from the best developers your money can buy.
What do experienced web developers really cost?
Using the following table, you can get a fairly good idea about what to expect in hiring not just a US-based web developer, but offshore as well.
|Novice||1 to 3 years||$35 to $50 per hour||Fresh out of college or bootcamp.|
|Mid-level||4 to 6 years||$45 to $55 per hour||Look for people who’ve worked with big companies.|
|Experienced||7 to 9 years||$55 to $75 per hour||Enterprise experience is typical at this level.|
|Expert||10+ years||$75 to $95+ per hour||Enterprise and SysOps experience.|
|Offshore||Varies widely||$5 to $30+ per hour||Usually work with an agency team manager. $20+ per hour gets you a whole team.|
Note: If your developer is based in a major metro like New York or San Francisco, add another 50% to the cost range.
Different types of developers
for different types of jobs.
Not every developer is good at every aspect of developing a web application or website. Some of us specialize in things like databases, or backend server languages, or the UI/UX frontend.
UI/UX or Frontend Developers are notoriously expensive because they are in high demand to make your application look as good as it functions. UI (user-interface) / UX (user-experience) developers are what we call frontend people. They typically focus and specialize on just creating screens and consuming data from the backend (server-side) of your application. All of their code executes (runs) in the browser.
Server-side or Backend Developers typically focus on just the server and processing of your data. They typically hate the frontend stuff because they usually suck at it; and they know they suck at it. Even while I worked at Disney I worked with people who hated dealing with frontend issues. Because they sucked at it. They were just not skilled in graphic design and a lot of the time they would just avoid any UI/UX stuff whenever possible.
Database Developers are very specialized, they don’t know any languages other than the ones used to make database queries, but these guys and gals are worth their weight in gold. I have a friend who is a DBA (Database Administrator) and the guy writes amazing query code that is often pages long.
Full-Stack Developers will most likely be the kind of people you will be looking to hire. These are people like me, people who are equally at home in the frontend, backend, writing database queries, and even managing your sys-ops (sever environments).
Most of the developers I know are full-stack, but you have to be careful. Just because someone says they are full-stack doesn’t mean they are equally skilled in all disciplines. Yes, they CAN do UI/UX, but they’re typically not very good at it. And they’ll tell you to your face, “I hate working in the UI.” Or “I hate working in the backend.” because they’re more into the UI. They won’t tell you this as their client, but it’s very typical of full-stack people.
Unless your full-stack developer has a solid graphic design background, the people you are going to be hiring will have a very average or less than average skills with the UI/UX.
The most experienced web developers will also have business experience, meaning they have either been in business themselves and/or been in the position of a BA or Business Analyst. The BA is the person who typically translates business needs (requirements) into a project’s “scope”, typically with something called “user stories” that your developer can read and code against as they incrementally complete each of your application’s requirements.
It takes a ton of experience in this area to know and understand what you as a non-technical business person want and need, and then translate those needs into requirements that can be documented in a way that any developer can code against to produce your application’s functional screens.
Just because someone has a computer science degree does not mean they have any idea about how business works, what makes a sale, and what needs to take place to make that sale happen. Experience working with a variety of businesses and business people is typically the only place this knowledge comes from for software engineers. The more seasoned the engineer, the more likely they know how to put your business requirements to code.
Don’t offshore your work unless you know
how to run a software project.
Sites like Upwork give you access to inexpensive offshore developers, some of who do know what they are doing; but there are many who do not. Just because you find an offshore agency does not mean your team will turn in good production code and an operational application. Upwork does a good job of trying to ferret out the bad operators, but even then, I myself hired what looked like a reputable agency that turned in crap work I could not use and had to redo.
In my experience, offshoring your project is like rolling the dice and hoping your team is being run by people who really do have the deep experience to deliver rock-solid working applications. The agency’s sales guy will do a really good job of selling you on the people who will be doing quality control on your job. But keep in mind that for every person they add to do that QA, costs you more time and money and slows down the development of your project.
That ridiculously low $15 per hour offshore price looks really sexy from the outset; but it comes with a much bigger hidden cost in the long run.
Upwork has a US-Only option for you to use when looking to hire developers. There’s a reason. Your chances of success increase dramatically when you choose to hire the more expensive domestic engineer with a decade or more of experience.
Meet daily. Pay and check milestones weekly.
The web developer you hire should be a self-starter, someone who is so familiar with web applications that they practically start to build what you have in mind while you are on your initial phone or video call with them.
TIP: NEVER hire a web developer via email or a phone call alone. Even if you’re using a platform like Upwork to pay them. Always be able to have a face-to-face with your developer over Zoom, GoogleMeet or some other video conferencing service. Conversations like these really help keep the project on-track.
In the enterprise world, we have DAILY meetings we call “stand-ups”. During this short 5 to 10 minute meeting which usually happens at the beginning of each day, the developer(s) discuss what they did the previous day and what is on their schedule for the day or tomorrow. These daily meetings might sound like a pain in the arse for you, but they are invaluable to keeping the developer on track and on task.
No developer should give you pushback on a daily standup meeting. You are the one paying the bill. You need to be in the loop each day to make sure they are on track. And they should be able to show you development screens of what they’ve done as well. This keeps your finger on the pulse of the development and gives you a good idea of what your project is ultimately going to cost you using this developer.
When showing you their work, if you see something you don’t like, discuss it with them. Make changes. If the screen looks ugly, ask them why? Better to solve these kinds of problems early than have to go back and iterate development unnecessarily.
Try to pay your developer once each week or at least every two weeks. No one likes waiting to get paid for their work. You don’t and neither do we.
Hiring a web developer for the first time can be a little scary. No one wants to hire someone, paying them $50 to $100 an hour, and have nothing to show for their investment weeks or months down the road.
Who you ultimately hire will become your liaison, your expert, your eyes and ears into the world of technology. They will become one of the best investments you can make for your business.
Putting a little pre-planning and knowledge under your belt, like reading articles like this one, will really help you to find just the right person to take on your project and bring it to a glorious, successful completion.
Check out my other articles below that can help you with other aspects of your project as you move forward.
Up Next …
Locating someone who can make your project a success can be a daunting task. Learn the best ways to locate just the right people for your kind of business and needs.
Discussing your project with someone who can make your dream project a reality doesn’t have to be “technical”. Beau shows you how to discuss your project with the right people.
Get the inside scoop on selecting not only the best developer for your project, but finding the best technologies that will make your project not only successful, but keep your costs lower in maintaining your application for years to come.