Blog Article

How to Build a Software Development Team That Delivers

Avatar
Ed Ossawa
Senior Contributor

Digital marketer turned technical PM

Картинка статьи

So you decide to enter the market with a new software product or service, and you have a thought-out idea, vision, clear positioning, a few first potential customers and the budget to turn your idea into a full-fledged solution. Now you need to set up a team of software engineers, testers, and other tech specialists to help bring your business idea to life. You actually have two options to choose from:

  • build a team in-house or
  • outsource your software development to an external vendor onshore (within your home country) or offshore (remotely).

Of course, you can go with freelancers, but that’s a different story, and we won’t address it in this article.

Regardless of your choice, you need to make sure you or your outsourcing provider employs the right recruitment and IT staffing methods and best practices to hire the right (not the best) people and motivate them the right way to gain maximum value from their skills, expertise, and efforts. Failure to involve the right roles in your project development can pose a considerable risk to your product delivery to end-users.

This article aims to review some of the most critical mistakes in the process of setting up your dedicated software development team and explore how to avoid situations that can ruin your endeavor.

Risks of tech hiring

Ideally, the development of any new product looks as follows: you hire people, describe your product vision and goals, and set a deadline for delivery. The team first creates a clickable prototype or MVP to gather initial focus group feedback, identify bottlenecks and limitations, and validate business idea feasibility. Based on user feedback and market research, the company either decides to go with pivot or builds and rolls out a full-fledged solution. In the best-case scenario, the same team should maintain and support the product and upgrade it when necessary.

Unfortunately, it rarely happens in real life. Each software development project has its issues and risks, so let’s review the most typical ones.

Fatal delays

The product may be of very high quality, but either the window of opportunity has closed, or the development budget is over.

Product’s low quality as a permanent situation

The product has been released, users are here to give it a try, but they’re facing permanent issues with usability, performance, overall quality, etc. Weeks and months go by, but the product remains buggy and full of errors and glitches. As a result, users abandon such a product and go to competitors.

Implementation of new features takes too long

Customers are even ready to pay for new features they need, but for some reason, these features are not developed and added to the product. Alternatively, there used to be a great application that has suddenly stopped performing well and become cumbersome, slow, and glitchy.

Declining team morale

At some point, your key team members start feeling bored at work and looking for better career opportunities with a different company. While your senior guys are entirely demoralized and unmotivated, the rest of the team has stymied in processes and can’t develop the product correctly.

In this situation, each new hire feels detached from the team and, as a result, keeps their productivity and initiative low.

In many cases, these risks don’t occur in silos. One team can run into two and more risks at the same time. Alternatively, you may have built a great digital product which can’t be scaled due to the limitation of the initial requirement in the specs. To make a change, the team needs to invent a kludge or use a workaround, which may cost an arm and a leg or greatly demotivate the team and result in the loss of key team players.

However, prevention is much cheaper than treatment. So let’s talk about it.

Team qualifications and motivation

Any software developer (this also applies to any other tech specialist involved in solution development) has two conventional yet essential parameters which are qualification and motivation.

Qualification is referred to how well a person can do their job (a mix of soft and hard skills, background, and education). And motivation determines how well he or she can use and realize this ability.

Let’s describe four extreme cases:

  • Highly-qualified and highly-motivated

By nature, this person is a relentless Creator. They’re extremely effective and up to a point. They always know what they are doing, and why they’re doing it. Work schedule doesn’t matter for them; they often work overtime and don’t require any extra payment for this. In essence, these are your A players who’ll contribute more than others to your project success.

  • Highly-qualified and unmotivated

These’re very omnipotent people, but they have a low self-motivation so they should be forced and micromanaged to achieve a result. These team players can ensure your project success, but as a leader, you need to invest a lot of your time into driving them to be more productive and effective.

  • Poorly-qualified and unmotivated

A university graduate with no real-life experience but very ambitious and arrogant. These guys are always compensation-driven but will use any opportunity to skip work and go on vacation instead of solving technical issues. These people are highly unreliable and should literally be babysat to show a result.

  • Unqualified and coverwhelmingly motivated

These people are very energetic, zealous, and get excited when they master a new skill. However, brace yourself to mentor them and invest in their professional development. These guys always make many mistakes and wrong decisions, bombard their senior colleagues with hundreds of questions (keep in mind that the time of the senior guys is always costly) and can be your team destructors.

Neither of these parameters is constant in time.

Skills tend to increase sporadically and abruptly – during periods of gaining valuable experience, trying new approaches, and methodologies. However, if you switch to a new technology that is not yet known to your developers, your team’s qualification will decrease slightly. And then, on the contrary, it will grow again.

Motivation jumps up and down like crazy. It is affected by a huge number of factors. Faith in the product, timely feedback from users and management, a mix of interesting and routine tasks, a few days of full stress before the release, to name a few.

In practice, it is tough to stay at the peak of productivity for more than a few days at a stretch or to maintain a very high level of motivation for more than a few consecutive months. However, on the other hand, at the peak of motivation, a great developer can do the work that will lay the foundation for your future product success or will open up new opportunities for your product development.

So what outcome should you expect from your team?

  • Only hire people with sufficient qualification;
  • Always provide your employees with a high level of basic motivation;
  • Monitor and feel the pulse of each team member’s motivation on a regular (if not daily) basis.

How to choose the right people for your project team

So, you need people who are both qualified and able to work together and be productive and creative as a team.

The right way of staffing a software development team

Recruit people with experience and the right culture. Typically, these are people with 3-5+ years of experience of working in companies or on similar projects with strong internal cultures.

Culture in our case is referred to a no-bullshit work environment where all team members respect each other and are empowered by collaboration and shared product vision; team members are open-minded and open to both providing and receiving constructive and non-biased feedback. A good culture implies that a mentorship program is put in place within the team (your senior guys mentor and help bring junior developers up to speed and quality) as well as a reward system to make sure any team’s achievement is celebrated and awarded appropriately.

Sourcing employees from projects/companies with strong internal cultures guarantees your team is comprised of the right people who know exactly what they do, why they do it and how to do it to give the best value to the customers and other stakeholders.

At 8allocate, our recruitment consultants define precise target employee profiles (personas) for each client-tailored dedicated development team and then customize vetting and interview methodologies to filter out all those candidates that fail to pass our initial screening focused around the work culture, ethics and attitudes.

The wrong way of staffing a project team

Hiring only junior or mid-level talent that may have the right skills but lack extensive teamwork experience, understanding of Agile, Scrum and other lean software engineering methodologies, and the right work ethics and professional habits that eventually convert in the high quality of project delivery.

No matter how hard-working and smart they are, people with little or no real-life experience will make a lot of mistakes which is OK in general but may not be OK for your particular business as fixing those mistakes may cost you an arm and a leg after the product launch. Besides, you’ll have to teach them how to perform a code review, how to conduct a retrospective, how to use time tracking tools, etc. The learning curve will be very steep which will slow down your time to hire and time to market accordingly.

Bottom line: even if you’re on a very shoestring budget, don’t go with junior or inexperienced developers only! It’s essential for your project success to staff your team with the right mix of skills and roles and if you decide to go with rookies, make sure you also high a senior developer to mentor and manage them.

When It Makes Sense To Hire Junior Software Developers

What the wrong choice of people may cost you down the road

If you hire people without the wrong qualifications, you may find yourself in a situation where yesterday’s STEM student chooses an exotic database instead of the good ol’ SQL and serialization in JSON costs you so much that you’re out of budget to carry on your development project while it’s in full swing. These issues will eventually hoard and the snowball will continue to run down the hill killing your project.

If you hire people without a suitable work culture, you will find out soon that developers do not review the code at all, forget to submit it for testing, don’t log in the actual work hours and have other discipline issues.

Using Objective Data To Tackle Issues Within Software Development Teams, Part 1

Poor work culture within the team results in blame-shifting, sabotage, personal conflicts and other detrimental consequences that may potentially ruin your whole project.

Software Team Outsourcing

Outsourcing your software product development to an external vendor can be a healthy alternative to in-house development as it allows for accessing resource-rich yet lower-cost talent pools, leveraging strong external expertise, in-sourcing new knowledge and skills, and doing more for less, in general. Make sure you invest your time and effort into choosing the right provider who’ll be able to define and hire the right people and ensure your project success through a consultative and co-creating approach!

5 Types Of Software Development Outsourcing Providers

If you choose the wrong provider, finding a replacement will cost you as much as backsourcing your project, so better make the right choice from the very beginning.

To Backsource Or Not To Backsource: How to Avoid Your Outsourcing Project Failure

In Part 2 of the article, we’ll talk more about how to motivate your software team members and share our first-hand experience with retention of software developers.

To be continued.

Do you need help building a dedicated/extended Team or getting ad-hoc resources for your software development project fast and cost-effectively?