And what is driving this growth? The fast rise of new technologies (Artificial Intelligence, Internet-of-Things, Robotic Process Automation, blockchain, and deep learning) and the lack of in-house information technology engineering.
Software application development and testing is one of the most popular outsourced IT functions. There are different collaboration models available, but one of them stands out in particular: the dedicated team model. It's a collaboration model that can bring a lot of benefits in the long term, but one that comes along with a number of challenges.
So we wanted to explore how the dedicated team model works, what are the benefits and the risks that come with having a remote dedicated software engineering team and how to best set up one.
When it comes to deciding whether to outsource or not, the cost saving is still a factor on the table wit’s not as high on the priority list as it used to be. According to Deloitte's 2018 global outsourcing survey, it’s not even in the top 5 reasons to outsource. As Forbes Technology Council points out, there are a number of motivations outside of cost reduction that leads companies to outsource.
In a dedicated team model, also known as a managed team or customer team, you will work in close cooperation with an outsourcing provider to create a team that will work integrated with your in-house one. Both your company and the outsourcing provider share responsibility over execution and deliverables.
Because the managed team acts as an extension of your own in-house team, this model requires trust, great communication and compatibility .
In a dedicated team setup, both your company and the provider share responsibility for deliverables and most of the time team management.
The dedicated team model differs from the project-based model and staff augmentation model, in terms of scope, client involvement, execution responsibility and more.
Having an external engineering team working integrated with your own team comes with many benefits, but some risks as well. When you have the full picture from the very beginning it becomes clear whether a dedicated team is a good fit for your organization or not.
As much as 68% of all software projects fail - they are delivered later than estimated and overrun their initial budgets. When it comes to outsourced software development, 20 to 25% of all outsourcing relationships fail within two years, and 50% fail within five, according to Dun & Bradstreet’s Barometer of Global Outsourcing.
So what keeps the rate of failure in outsourcing at these levels?
Additionally, CIO identified a few other risk factors that can make or break a successful outsourcing relationship.
At Wirtek, we adopted the Agile principles for software development back in 2006, being one of the first IT companies operating in Romania to do so. We’ve embraced/embedded the Agile mindset into our company culture. Just as Agile is about people over processes, at Wirtek we use the same underlying principles for setting up dedicated teams, but are flexible to adapt this process to each client specific needs. This process always starts with understanding needs and requirements, creating the core team and eventually extending it.
When we onboard a new client, the first step is to connect the client’s team with one of our Services Directors in a product discovery session. Their role is to understand the client’s unique context and explore important aspects such as:
The next step is to determine the configuration of the team that we will need to build. This is where the process might vary, depending on whether the client already has a development team in place or not and whether we are dealing with a new product.
We are usually start off by creating what we call a core team; the roles that we would look to bring into the core team can be:
In particular, when the client has a new software product and no in-house technical team, then we’ll need to ensure that we have a product owner in charge of defining the functional requirements among other things. In our own experience, this is a role that should ideally sit within the client’s team. If the client doesn’t have someone to play this role (as it might be the case with non-software companies), we’ll be able to appoint a team member in Wirtek, with the necessary skills to define requirements or user stories. To help our clients manage the business side of the project we also have Certified Scrum Product Owners who can act as product owner proxy on behalf of our clients to ensure that the product “gets out”.
We also advise bringing in a software architect to the dedicated team, who will be in charge of creating the product architecture, ensuring quality standards are met (such as ease of use, scalability of the application etc.). Even when we're dealing with an existing application, the software architect still plays an important part, as he will help us understand what can be improved in the current architecture. The architect can stay with the team in the initial stages, or he can continue working within the dedicated team.
The scrum master will help the newly created team to get organized in their day to day activities: create a backlog, assist the product owner in defining the requirements, estimations, handle team meetings and more.
Once we have the core team in place, we will focus on bringing the rest of the team members.
We strive to create a balanced team in terms of seniority, gender and experience. From our experience, we learned that the best performing teams are made up of people with diverse backgrounds (engineers that worked on enterprise products and engineers who worked on smaller applications), gender and seniority levels (mixing seniors with mid and junior engineers).
We find that the synergy between them is beneficial to both the team and the product.
Working with a remote team can be daunting, especially if this is your first experience or if you’ve had a previous negative outsourcing experience.
What we have learnt at Wirtek is that having a client onboarding process in place, setting up clear expectations and communication channels helps build trust and foster a healthy collaboration.
In the sections below we will walk you through the most important elements of working with a remote dedicated team and how we deal with each area.
There are various software development methodologies in use at the moment, but most companies choose between the traditional way to develop software or the Agile philosophy.
Being an early adopter of Agile principles in Romania, since 2006, our preferred way of working is Agile. While we recognize there is no such thing as one size fits all, especially in a dynamic world as the software product space, what you’ll find in this section is based on our own experience and preferences.
At Wirtek we have Certified Scrum Masters and Certified Scrum Professionals to help our agile teams properly use the agile methodologies as well as improve the way Scrum and other agile methods are used in the projects.
Because we follow the agile principles, the development teams are self-organized. The team inside Wirtek works integrated with the customer team, acting as one development team.
The distributed development team meets daily during the Scum meetings and also during the rest of the Scrum ceremonies:
Well-defined working processes aside, it’s the principles that matter most for us. When we build dedicated teams, we employ the agile principles for software development and map those over the client’s own processes - this has proven to work best for our clients.
Working remotely has never been easier, thanks to the various collaboration and communication tools. Version control and issue tracking application make it easier to collaborate on software development.
Setting up the client’s infrastructure in place is an important step and we stay flexible in adapting the client’s tools. The tools that we use most often and love are the ones listed below.
Communication & presentations - tools to help us communicate fast and easy with each other
Issue tracking – tools that we use to manage tasks and issues during development sprints
Version control – tools that allow teams to track changes to a set of documents. They are critical to every software development project, where several people concurrently make changes to the same files.
One of the most common concerns our new clients share is the fact that they don’t have fully written product documentation and how that will impact their dedicated team ramp up time.
The good news is that we can work together on defining the product specifications, as we have learned that a collaboration between our clients and a Wirtek Scrum master or proxy product owner is the most efficient solution.
In most cases, our clients don’t have product specifications and in those situations, a Scrum master or proxy product owner in Wirtek sits down with the client’s product owner and works on defining specs. This offers us the opportunity to learn the client’s product as well as the industry at the same time.
We aim to keep just enough documentation and to keep it “live”: documentation created and maintained in the tools we use, rather than written on paper. The most popular tool used in Wirtek for documentation purposes is Jira. In Jira we maintain a product backlog that describes how the software product should work, based on user stories.
Product documentation exists beyond specifications in various places:
Bottom line is that when there is little to no documentation, Wirtek takes the task of creating it and we aim to maintain live documentation within the tools we use, rather than on paper.
In this section, we will try to give you an overview of how we view the software quality assurance process in Wirtek, how we define quality standards and how we make sure we deliver great quality software products.
Before we dive in, it’s worth mentioning that for us, quality assurance means more than just the quality of the code deployed: it’s about the quality of the documentation, how we formulate specifications all the way to defining acceptance tests and testing. As an IT outsourcing organization, we are oftentimes involved in creating a product’s architecture from scratch, defining specifications, and so QA is more than the quality of code - it extends across every stage of the software development process.
Every client and organization we work with is unique, their specific industries demand specific software product requirements.
Because of that, every time we onboard a new client, the dedicated team defines what QA means together with the client. To that extent, we can say that each team and project in Wirtek defines, monitors and implements QA differently, but they all rely on the same underlying principles.
Being loyal to the Agile principles, the entire software engineering team, both distributed and in-house, is responsible for the overall quality assurance of the software product.
While the entire team is responsible for the overall quality of the product and features released, team members have different involvement levels in different areas:
Selecting the right fit partner for outsourcing your software development can be a lengthy process, but ensuring you choose the best fit for your company and goals will pay off in the long term. Rushing to sign off quickly with an outsourcing company just to discover a few months into the collaboration that they are not what you were looking for is more expensive and difficult to undo.
As you start researching and evaluating different providers, here are the main points to consider.
When the outsourcing provider thinks of your collaboration as a partnership, they are equally invested in your success. In this mindset a close relationship and communication are crucial. To understand where potential providers stand relationship-wise, you can ask about how often they communicate with clients, how they address issues when they arise, how they ensure the distributed engineering team is aligned with the client.
Here at Wirtek, we believe that the quality of our client relationship matters just as much as the quality of the delivered services. Because of that we dedicate time and effort to building and maintaining partnerships with our clients: around 25% of our current clients have been working with us for 10+ years.
Investing in our client relationships comes with a number of benefits:
The way we see client relationships is that we become an extension of their own engineering team. When you are a Wirtek client, you get a team that works with you as if it's your own. And this changes everything, from the way we interact to the level of involvement and attention we give to our client's business.
Good communication fosters a good relationship, especially when you work with a team that doesn't sit in your office.
So when doing due diligence, make sure to ask about day to day communication, how the dedicated team stays aligned on goals and what needs to be done, but also how the management team deals with issues when they arise, how they respond, how they addressed issues with other clients in the past.
When working with a dedicated team that is integrated with your own in-house team, being aligned around the same values makes a world of difference. Imagine that your company values for example a direct, straightforward approach to communication and you would choose a partner that prefers an indirect approach - communication would most likely be hogged down by different styles and expectations.
Asking questions related to company values, working preferences, and how things are done in the company can help you understand if a provider shares important values with your own organization.
In Wirtek, our core values are:
Modern software development organisations embrace the Agile principles for software development, as it allows them to deliver product features faster, in a more predictable way and keep the software product aligned with the business goals.
Therefore you should make sure to ask potential providers how many years of experience they have working with Agile, which methodology they prefer, if they have certified Scrum masters or not.
In a world evolving at fast speed such as the IT space, training and learning opportunities are not a “nice to have” anymore but a “must have”.
Asking questions around training programs, learning opportunities and knowledge sharing in the company can reveal how much an outsourcing provider invests in training and learning.
This one may seem quite obvious, and yet is worth mentioning that you should confirm if a given provider has the requisite skills and experience. You will want to ask about certifications, technologies they master and level of experience.
Employee retention is a big signal to look into, as poor employee retention signifies there is something potentially wrong such as a toxic culture.
Not to mention that having a poor retention rate could mean delays in delivery, spending time over and over to integrate new team members and in the end a higher cost.
Before jumping in a long term commitment, it can be useful to ask if providers offer the chance to do a pilot project first and then go into a long term commitment such as a dedicated engineering team.
Asking about previous collaborations, how those evolved and even speaking directly to one of their current or former clients can give you a good feeling of the providers’ professionalism and way of doing things.
Understanding how large a provider’s organization is and how fast they can scale up a team and hire can help you decide if that is a good fit considering your goals. There is no wrong or right answer, but if you are a small or mid business, working with a large outsourcing provider can be challenging to receive full attention, alongside much larger clients. On the other hand, if you need to set up a large engineering team fast, that can be challenging for a small or midsize provider.
In our experience, our most successful collaborations share some common traits:
When we think and act in a similar manner, working together becomes easier. One of the things our clients appreciate about working with us is the fact that we dare to raise questions and come up with solutions, which in turn means better outcomes for our clients and keeps our people at Wirtek engaged & motivated. So for us being able to meet a potential client in person and trying to understand their business, challenges and culture help us determine if there is a good fit.
Having clear processes in place gives everyone on the team predictability, everyone knows what is expected of them and how things will happen.
As with any commercial relationship, there will be issues and roadblocks. Our approach in Wirtek is to be very open and honest about where we stand and come up with solutions. When we find a similar mindset in our clients, we know we can overcome these challenges faster.
The product owner or the person within the client’s organization that leads the product development plays an important part in a good long term collaboration. They understand the business and the product, priorities and can make decisions faster. When there is no such dedicated person on the client’s side, decision making takes more time, and that in turn causes delays in implementation and eventually ends up hurting the team’s morale.
Quick, timely responses from the client help speed things up. Also, the willingness to meet the dedicated team, bond with people and form personal connections makes for a smoother working relationship.
We have worked with Spectralink, a leading provider of enterprise mobility solutions, since 2009, providing quality assurance services for their DECT handsets and servers. In the beginning our partnership began with a team of just three engineers doing QA, but as Spectralink’s products portfolio grew, so did the opportunity of our partnership. 11 years later, we are managing two dedicated teams for Spectralink, in charge of equipment testing and DECT server embedded development.
Spectralink picked Wirtek to be their quality assurance partner as we were a well-known and experienced provider of software development and testing in the telecommunications industry. We were able to offer the technical expertise required as well as the capability to ensure stable and predictable service delivery on projects.
Read the rest of the case study here.
Innomate HR is a robust human resources platform that enables organizations to manage their end-to-end HR processes.
Finding, recruiting and retaining motivated software engineers was difficult in a competitive employment market as Denmark, particularly for a small business, so Innomate was looking for a reliable software development provider. Our collaboration with Innomate evolved from a pilot project to running a dedicated development team for close to 11 years now. It is one of the longest collaborations we had in Wirtek and some of the strongest team connections were formed here.
Read the rest of the case study here.