It's easier than it has ever been to source designers and developers online for your software development needs. With the abundant freelancer platforms available, you can hire a freelancer with the click of a few buttons. Unfortunately, more often than not, these quick hires lead to unsuccessful project outcomes for a number of reasons.
Poor communication skills, fabricated references and inadequate skill levels often lead project owners with poor solutions which do not meet their needs. Setting up the right team for any type of development project is critical for a successful outcome. Today, we're going to discuss a full-proof strategy for laying the foundations of a winning team, and ultimately a winning project.
The typical team structure
A team will vary in size and structure depending on the size of the project, but there are some roles that nearly always make an appearance. We're going to talk about a team in the context of a small-medium sized project. These teams will typically be between 3 – 5 members in size.
At the core of the team is the Project Manager, sometimes called the Project Coordinator. For a project of your own, this will likely be you. The Project Manager is responsible for bringing the team together, making sure everybody has what they need to do their job, and ultimately ensuring everything throughout the course of the project runs smoothly.
Heading the technical component of the team is the Lead Developer, or simply Lead Dev. This is a critical role and this member will be responsible for ensuring that the functional and behavioural aspect of the system are built properly and work as needed. This role also holds the responsibility of ensuring that the other Developers on the team are on track, supported and not falling behind.
Another critical role is that of the Designer. There is often a visual or aesthetic component to development projects, for example an app interface or a web page layout. The Designer is necessary to ensure that the appropriate user experience (UX) is in place, the interface is enticing to users and that it portrays all the necessary information.
In our small-medium sized project it will also be necessary to bring on an additional Developer or two who will assist the Lead Dev in the coding department. In larger projects, it will be necessary to scale things up, and bring on more Developers and Designers, and also some dedicated Testers and a Dev-Ops expert.
Bringing new team members into your team is easier to do than ever before. However, it's critical to first vet your candidates properly to ensure that they meet the skill and communication requirements necessary to help your project be a success.
With the abundance of online freelancer platforms such as Upwork and Freelancer, it's relatively easy to find a pool of eligible candidates for the roles that you need to fill. After posting a job specification on these platforms, most platforms allow you to individually invite candidates to apply for your position.
Consider this the first step in shortlisting your candidates. By using the advanced filter and search features of these platforms, you can find relevant and appropriate candidates that on face value have the characteristics that you're looking for. Only if they have these characteristics should you invite them to apply for your position. After all, time is your most valuable asset, you don't want to spend half your day sifting through applicants having made a job available to the public.
Of the candidates that you invite to apply for your position, not all of them will be interested. For the ones that do apply, you will need to drill down further into their profiles and thoroughly examine their skills, work history and ratings and reviews. You will want to whittle your shortlist down to round 3 or 4 candidates, this will allow you to allocate an adequate amount of time to each candidate in the next step – the vetting process.
Vetting candidates effectively
The handful of candidates who are now on your list have shown on face value that they have the skills and experience necessary to handle the work you plan to assign to them. This is where most project managers and owners make a hire.
But from my experience, this is too early to make that call. By spending a little extra time at this point to put the candidates to the test, you will increase the odds significantly of finding the best new team member possible.
To make sure that your candidates have the communication skills needed to work effectively with the team, a phone or video interview is a must. Not only will you gain some insight to the candidate's communication level, it will help to forge the foundation of your working relationship. As easy as chat apps make conversing possible in this modern age, there's nothing better than a face-to-face conversation.
Asking your candidates to sit an online test is also a good idea. You will of course need to pay them for their time, but this practice goes a long way in gauging skill. Platforms such as TestDome, Codility and Mettl make it possible to test your Developers and Designers online. A little upfront cost here can provide valuable insights into the competency levels of your applicants.
Incorporating these additional steps in your team member vetting process helps to improve the likelihood of making a successful hire. These practical steps, along with your own intuition, will help make it easier for you to decide the best candidate to bring into your team.
Ensure communication and collaboration is easy
With the first hires completed, it's now time to set up the lines of communication and put in in place the operational processes that will keep you project on track.
Chat applications have become the online hub of digital workplaces. Apps like Slack, Telegram and Microsoft Teams allow team members to communicate easily and most offer a free version which is appropriate for small teams.
Task management boards like Trello and Asana provide a medium for task delegation, collaboration and progress tracking. Most of these platforms allow team members to upload files, add comments and share information. These platforms make it easy to gauge the progress of a project at any given time.
Shared drives and source code repositories are also a must. Given the vast amounts of data generated in software development project, it's a good idea to have an easy, secure and efficient way to share this data amongst the team.
And last but not least, one of the most important components of a development team is to schedule a regular meeting. Weekly, if not daily progress meetings, help significantly to keep the team members informed of progress, milestones, deadlines and roadblocks. A quick daily session called a Daily Stand-up is coming in the development community.
Following a more stringent procedure in the hiring of your team members helps filter out candidates lacking in the necessary technical or communication skills. And, setting up an easy and effective collaborative online team environment will help your team to bond over their common goals.
While it takes more time to run a project in the hands-on way I've outlined in this article, the benefits attributed to this additional effort can greatly increase the chances of your project being a success.