DEV Community

Cover image for Building a Software Development Team
Kateryna Pakhomova
Kateryna Pakhomova

Posted on

Building a Software Development Team

The original article was written by SoftFormance https://www.softformance.com/blog/software-development-team/

Four years ago, we got a harsh lesson to learn.

It started as an ordinary project, as our task was to create a CRM system and an online cabinet for users of a Canadian campground.

Seems like nothing challenging, isn’t it? I also thought so.

We quickly summoned a development team involving a newly-hired senior full-stack developer, a tried and trusted strong junior developer, a Project Manager, and a Business Analyst. The latter was already overloaded with tasks on different projects.

Everything was done in haste, and I didn’t pay much attention to the team’s fit, as well as to the workload management.

What was the outcome? Well, it was quite disappointing.

We failed to meet the deadline, as the product was launched in 7 months instead of 3, as it was planned.

We also underestimated the project cost by $30,000, $25,000 of which our agency had to pay from our own pocket. As the scheduled opening of the campground failed, our developers had to work for the whole month to fix all the issues.

Then, four years later…

My team and I got engaged in a very ambitious EdTech project.

Our client wanted us to develop a platform with personal cabinets for students. These cabinets would enable learners to manage their tasks and academic processes more efficiently. Besides, the client wanted the students to access and review employment opportunities via their platform.

In this case, we thoroughly approached the formation of a team for the project.

The summoned team involved a Business Analyst, a Project Manager, 2 full-stack developers, a UI/UX designer, a frontend developer, and a QA specialist.

As a result, our PM Nastia managed to successfully launch the project in 6 weeks instead of the projected 8 weeks. The project also cost around $29,000 instead of the previously estimated $32,000.

Image description
As you may see, the outcomes of these two projects are diametrically different.

So, why did one project fail and another was so successful?

Well, we tried to take maximum advantage of the lesson with the Canadian camping.

Our project team thoroughly analyzed the reasons that had made us fail. As a result, we created a software startup workshop that defines the essentials of our approach to building successful development teams.

So, how can you avoid troubles similar to the ones we’ve faced during our campground project and be as successful as the above-mentioned EdTech client?

The short answer will be: choose the right software development team.

For a bit longer answer, you can check out our recent material to know how to find your perfect match among software development agencies.

And in this brand new article, I’m going to share with you our team process, roles in that team, and a few core pillars necessary for building a software development team.

If you use at least 10% of the instructions I’m sharing with you below, you’ll launch your next software idea 3 times faster and 2 times cheaper.

So, let’s start!

Software development team: Essential roles
Before we dive into the essentials of building an excellent software development team, let’s find out which types of technology specialists will help you implement your goals.

Imagine that your application is a house that has to be built. In this case, we may compare a team of software developers with housebuilders.

Image description
Project Manager
A Project Manager is your foreman when it comes to building an application.

Just like a foreman analyzes your requirements to give directions and supervise the builders, a project manager takes into account all client demands and technical implications to deliver an excellent application.

Software/database architect
An architect is a crucial member of any construction. In software development, it is a person who plans the structure of your “building,” makes vital decisions on its fundamentals, and defines the most relevant construction approaches.

UI/UX designers
These specialists design the interior of your “building.” They work with the layout of the elements and aim to make everything visually attractive. As the most creative members of the software development process, these guys define the colors, shapes, and style of your product.

Business Analyst
This is a person who thoroughly analyzes construction trends and aligns them with your demands.

A BA provides you with a roadmap of how to make your “building” as practical as it is possible. Just like a floor planner determines where to place the doors and the stairways in your house, a BA determines which features would perfectly fit into your application.

Software developers
These are builders involved in the active construction of your “house.” You should distinguish backend, frontend, and full-stack developers.

Backend specialists, who work with the app’s server-side, can be compared to engineers that work with the fundament and the retaining walls of your building.

Frontend specialists are more into developing the exterior of your “building.” They help you make it as attractive as it is possible.

Finally, full-stack developers are the masters of all arts in software development. They can handle both the fundamentals and the exterior aspects of your project.

QA specialists
These are the guys that examine whether your “house” fits all quality requirements. They appear upon reaching certain milestones to find and help you fix any bugs or issues pertaining to your “building.”

Surely, there may be even more roles in your software development team. However, from my experience, these are the most valuable specialists for a successful project.

The DOs of building a software development team
Now that you understand some terminology and roles in software engineering, let’s proceed with some tips on how to build dream software development teams.

Clearly understand your needs
Do you have a clear vision? This question is fundamental for all stages of project initiation.

Image description

Put yourself in the place of a software development agency. You receive a task to write an application that “should remind of Uber, but also has to include the functionality of a food delivery app, as well as some analytical functions.” Also, there is no information on deadlines and the client doesn’t know whether they will add new features in the future.

Would it be easy to summon the right development team, build a clear roadmap for the project, and assign tasks and responsibilities? The answer is negative.

To make the right choices and ensure that the software development team clearly understands your needs, try to visualize your project before initiating it.

Also, make sure to ask yourself some fundamental questions.

Here are just a few of them:

Do you feel the pressure of strict deadlines?
Does your project involve the customization of a previously-developed product or do you need to create an app from scratch?
Is there a clear roadmap for long-term product development, or do you start with creating a raw MVP?
How much do you want to be involved in the project?
What is your target audience and how do you want it to respond to your product?
Remember that the better you have defined your idea, the higher are your chances to summon your perfect project development team.

This clarity narrows down your search for professionals. It also helps you delegate the roles and responsibilities, establish proper team relationships, and define goals and milestones for the project.

Choose your perfect team size
Different projects may require different team sizes, but we, at SoftFormance, strongly believe that too big development teams are harmful to your success.

Mind the “two pizzas rule” from Jeff Bezos, the founder of Amazon and one of the most successful entrepreneurs ever: “one team should be small enough to be fed by two pizzas.”

Image description
If it goes about a big project that lasts for two years, you may hire a team of 8 developers. For example, 4 frontend and 4 backend specialists, as well as a PM/QA/BA or any other specialists that may go with part-time involvement.

However, if the project duration is less than a year, 2-3 developers would be enough.

I recommend you focus on hiring full-stack developers with strong expertise in the most relevant programming technologies, such as Python, Django, and React.js.

Or you may hire 1-2 backend and 1-2 frontend specialists, depending on your specific needs.

Why are smaller development teams more efficient than big ones?

Well, 8 developers will never deliver more than 4 specialists, as there will be twice more communication and, hence, twice higher chances of miscommunication.

Big teams are also associated with some more time-consuming routines, coordination issues, and a lack of flexibility. Also, our experience shows that smaller development teams are more focused on their tasks rather than on timetables and updates.

Remember that 1 woman +9 months =1 child, while 9 women+1 month=0 children. The truth is simple: the “the more, the better” principle doesn’t work in all cases.

Choose the right people and assign responsibilities
While building a software development team, you are recommended to focus on the following things:

Compatibility of the specialists you hire;
Choosing an authoritative leader (PM or developers’ TeamLead) that is respected by the entire team;
Deciding on the right methodology by thoroughly analyzing the pros and cons of Scrum, Agile, or any other project methodology;
Motivation and clear understanding of project needs, shared by all the team members;
Solid technology expertise and industry experience of all specialists in your team.
…and many more.
Work on all such aspects… and you will find out that you have to postpone the release of your application for many weeks if not months. Probably, when you’re finished with building your team, the ship has already sailed and your idea is no longer as relevant as it had been a few months before.

In software development, time is money. Like, literally.

So, don’t overload yourself with tasks that may be completely delegated to someone experienced and reliable.

We may talk a lot about the value of assigning the responsibilities and choosing leaders for your software development team, but the key to success is much simpler.

If you choose the right technology partner, you solve most challenges pertaining to organizing your software engineering dream team.

How can you find a software development agency to rely on? Make sure to read our recent material for a more detailed guide on this question.

As my team and I are so much into time-saving, here I will try to briefly outline the key points.

So, your perfect technical partner should:

…have all the required capabilities for your project.

Just like a supermarket can provide you with all the required products in one place, your perfect technical partner will provide you with full-cycle software development services at once. The core capabilities are:

tech and biz consultancy;
proven web development expertise;
proven mobile development expertise;
UI/UX design services;
QA services;
DevOps expertise;
post-production support and maintenance offer.
…show the alignment with your business objectives.

Let’s consider the example of a Tinder date. You meet a very attractive and interesting person, but soon you realize that your goals are completely different. You’re into some serious relationships, while he/she just seeks communication and wants to find an interesting friend. That’s the way a huge number of Tinder dates fail.

In software development, the principle is quite similar: you have to find a perfect match to implement your idea properly.

Only a technical partner that listens and hears your demands, clearly understands your vision, and shares your ambitions will summon the right team that will provide a flawless result.

…express strong communication skills and commitment

Communication is one of the main pillars on which we, at SoftFormance, build our commitment and cooperation with the clients.

I know that poor communication is one of the most common reasonsfor failed software development projects.

Hence, Vitaliy and Nastia take an extremely meticulous approach to build our communication with clients. Continuous reporting, transparency, and a clear meeting schedule are the essentials of our approach.

Speaking of reporting, I will discuss this question in one of the following chapters.

…embrace transparency

Around 40% of our clients come to us from other technical partners. The lack of transparency is one of the most common reasons making them switch.

As a company dedicated to transparency as our core value, we never hold any secrets from our clients.

It goes about being transparent at all stages of the project, from preparing a detailed working plan during the initiation to providing a detailed report once the project is finished.

…show the required expertise

Just like asking a team of porters to build your house, assigning a software development project to inexperienced specialists is a bad idea.

You should rely on experts with the required technical knowledge and experience in managing projects of different complexity.

What is the key evidence of your potential partners’ expertise?

Focus on two points, namely the proven record of projects and the company’s testimonials. The company’s portfolio is the best place to search for the former, while its Clutch profile will help you find all the required info on the latter.

…offer post-production support

Imagine John, a man who wanted to launch a small grocery application. He asked a specific software development agency to develop such a product and received an app in a few months.

Suddenly, John recognized that the demand for his app was much higher than he could expect. He realized that the app had to be scaled up in order to cope with the growing loads. The users also demanded numerous new features be introduced in the app.

Unfortunately, the agency John had been working with was no longer interested in continuing his project.

As a result, he had to search for new partners that would understand the app’s codebase and provide some quality updates. John missed the right time and failed to satisfy the user demand when it was especially valuable.

The moral of the story is simple: make sure that your technology partner provides post-production support and will quickly update your app once it’s needed.

Image description

Track the progress and reach the milestones
So, you have thoroughly developed your vision, defined the perfect size for your team, and found a reliable technical partner. Is it enough for the eventual success of the project?

Well, almost. All that is left is tracking the progress and reaching the milestones.

But, before we dive into some essentials of software development reporting and supervision, let us clarify one question.

And let’s return to the example of housebuilding for the last time. Suppose, you’re choosing between two teams of builders that would help you create your dream house.

One team is known for its attentiveness to detail, but the specialists out there are far from being independent. They constantly ask for your involvement and suggestions. You’re sure that everything will be your way, but you also feel exhausted when the foreman asks you to clarify the layout of the sockets for the third time in a week.

Another team, on the contrary, is ready to take all responsibility for the building. These guys thoroughly examine your requirements and proceed with efficient and independent construction. Surely, you may inspect how they work and ask your builders for any changes. At the same time, you can also completely rely on their expertise and expect an excellent result even with your minimum involvement.

Probably, you will consider the second variant to be more attractive.

That’s exactly the way we handle processes at SoftFormance.

We understand the value of client involvement, but we also know that your time is money. So, our team and I are ready to handle all managerial processes so that you will not have to spend too much time examining the performance of our team or observing the reached milestones.

Surely, it doesn’t mean that I underestimate the value of reporting. Vitaliy has developed a comprehensive communication approach that allows you to stay updated about everything pertaining to your project.

Let’s overview some essentials of our reporting approach.

Meetings
We try to avoid unnecessary meetings that often overload software development. One of our core beliefs is that meetings are toxic.

They are time-consuming, lead to miscommunication, and may become a mere formality. From our expertise, most questions can be solved through mere email communication or reporting. Instead of holding the fifth meeting per day, it’s always better to get the real work done instead.

Hence, our team and I are into minimizing the number of such discussions and avoiding daily meetings.

Continuous reporting
It is impossible to avoid meetings at all. Our methodology involves online weekly meetings. They perfectly fit into our two-week spring Agile methodology and allow you to know everything valuable about the progress of your project.

Image description
Besides, we introduce middle-week checkpoints to know whether somebody in our team needs help.

Another pillar of our reporting approach is weekly status updates that let you know about what we have done throughout the week.

At the end of each sprint, Vitaliy and Nastia provide you with access to the demo server, which enables you to see how your “building” looks in practice.

Estimates
Daily check-ins and check-outs, as well as constant estimates, are also essential for us.

Even if the project requirements don’t necessarily prescribe daily estimates, we’re still dedicated to such practices. This helps us keep in shape. Meanwhile, you get excellent opportunities to keep track of resources and introduce changes into their allocation once needed.

Communication
Finally, you may always address your questions to our team or our PM via the Slack channel, or the Redmine project management system.

Believe me, we’re always open to communication. When I mentioned the value of communication in one of the preceding chapters, there weren’t empty words.

Image description
As a result, even if you are more into choosing the team that makes you greatly involved in the project, you’re satisfied with our approach.

Our team and I are ready to handle all stages of the software development lifecycle independently. But we also offer you an opportunity to keep informed about literally anything that happens in your project.

There’s no chance that you will miss any updates about your application or any of its parts.

Tracking the progress and the achievement of milestones is a piece of cake for those who work with SoftFormance.

Wrapping up
Approach the building of your software development dream team with maximum responsibility, but don’t take it as a harrowing challenge.

The right approach and, more importantly, a dependable technical partner will release you from many pains.

As for SoftFormance, we’re ready to become your helping hand in software development.

We’ve launched 200+ software products and are eager to expand this list with your dream product.

We always learned from our experiences, whether these were successful projects or harrowing failures, similar to the case of the Canadian campground.

This path has made us much more resilient and far-reaching in our approach. While working with us, you may feel secure about the quality, and responsibility, we provide.

But let’s finish with all these conspicuous words. If you want some real proof, contact us for a consultation. We will show why building your dream product with SoftFormance is the best solution of both worlds.

Top comments (1)

Collapse
 
kristyovchar profile image
Kristy Ovchar

Working with a dedicated development team iwanta.tech is the key to successful projects! Your experience in this matter is a valuable source of inspiration.