I need developers for my project
When people consider crafting a software they usually have 2 ways to go: create an awesome in-house team or hire external people (freelancers or agency). Both options have some pros and cons to consider and the decision is not always easy. Based on my experience and first-hand discussions with people I decided to prepare a short test that will help you choose the right approach. It is based on my personal opinions and you should use it only if it sounds reasonable to you.
The rules of the game are simple. Read the sentences below and mark yes (Y) next to the sentence if you agree and no (N) if you disagree. Then read the legend and sum up your points following the instructions.
Let’s make a test!
Answer each question below
- I love hiring people.
- I am a busy person and prefer to delegate tasks.
- I know how to manage IT people.
- I know how to motivate teams.
- I want to keep my budget under control.
- I am looking for people for one project only, not for a longer commitment.
- I love to see people working at their desks.
- I want to create a unique know-how.
- I believe that people become more involved when they are a part of the company.
- I love meetings.
- I want to pay for results, not just hours.
- I like controlling the processes within the company.
- Clear communication is important to me.
Number of points
Which one wins?
Is your result as you expected? If not, what surprised you the most?
Explanations for all the points:
- I love hiring people - if you’ve ever hired people, you know how hard it is to find good employees. Moreover, you need to pay additional insurance, taxes etc. Sometimes you need to pay commission to the recruitment agency. People in IT choose from thousands of job offers, so it’s really hard to find the best experts, plus they can leave you easily. The loyalty is hard to keep if you are not paying a lot and you are not a charismatic leader.
- I am a busy person and prefer to delegate tasks - if you are a busy person, you won’t have time to oversee your employees. They will need your attention and they will wait for your commitment. If you prefer to focus on business, you should hire a Product Owner who will understand you and will make all the relevant decision and be in constant touch with the developers. Focus on what you are good at and don’t multitask.
- I know how to manage IT people - this could be a hard thing if you don’t have any experience. You can hire the best people, but if they can’t work together as a team and understand each other, you will fail. When you hire an external team, at least you have a chance that these people have done some projects already as a team and they have their own workflow, so you don’t need to teach them how to collaborate.
- I know how to motivate teams - in most cases people don’t need managers. They need leaders, people to inspire them. Are you a leader? Can you keep up a high level of engagement and drive in your team? If not, leave it to someone who will be reporting directly to you, like a Product Manager. Motivating teams takes time and effort.
- I want to keep my budget under control - when hiring people, the budget seems pretty straightforward - you pay salaries with insurance and taxes etc., but you also need to pay them during the sick leaves and in some other circumstances. With outsourcing you pay per project (fixed price) or per sprints (fix price per week per team), so you won’t have so many unexpected expenses. Plus it’s easier to fire an external software team, than an employee.
- I am looking for people for one project only, not for a longer commitment - it doesn’t make sense to hire people just for one short project, if you don’t have an idea what to do with them afterwards. If that is the case for you, just hire external providers, do the job, pay them and move forward.
- I love to see people working at their desks - seriously? Do you want to be the manager who wastes time and energy on micromanagement to keep up the illusion of having everything in one place? Even if you hire people, give them some independency and freedom to solve specific problems. You will see how good they are when you trust them and you give them the benefit of the doubt.
- I want to create a unique know-how - it looks like someone is building software and investing into R&D. In this case, it’s better to have an in-house army and motivate them. You keep the progress and they don’t get distracted by some other projects.
- I believe that people become more involved when they are a part of the company - I agree. If you have a unique culture and people feel like a part of something bigger, it might work. If they believe in you and the project, they will be more creative and willing to work harder and faster to create the product you want.
- I love meetings - let’s be honest, no one does. With outsourcing you have to prepare for more meetings to clarify things (especially when it’s remote) and to learn how the workflow functions. To make sure that you and the external team are one the same page, you need to be in constant touch. An in-house team allows you to see people on a daily basis and even a short talk over coffee can solve many issues.
- I want to pay for results, not just hours - when hiring, you pay full-time salaries and then you manage people. Of course, if they are ineffective, you still pay them. If they are sick - also. With external team - it’s all about the agreement. If you have a good workflow and transparency, you pay for the job that is done, plus you can always negotiate the scope or efficiency.
- I like controlling the processes within the company - everyone likes to feel in control. It will make you comfortable, but it won’t make your work successful.
- Clear communication is important to me - in theory, it’s easier to hang out with people in the office. You can just stop by someone’s desk and ask them about everything. With external providers, it requires more discipline, tools (slack, Skype) and mutual understanding.
It doesn't matter what you do, until you find the right people. Folks who believe in you and the product. The right team who will work hard and help you build great things.
Make sure the process of software development is transparent and clear to you and work to maintain good level of communication with your team. Thanks to regular feedback you will quickly improve the development process and find the right way to cooperate.
Last, but not least - build trust. Without it, every project fails. Empower people, give them freedom to do their job and motivate them as a true leader.