The engagement model serves as a basis for healthy client-provider relationships. It's a framework a company chooses to use in order to manage its customers. It serves as a basis for the future collaboration between a client and a software provider and outlines the level of control, responsibility, or flexibility.
Choosing the appropriate client engagement model for software development is the primary task, aimed to align goals around a common outcome and the best suitable pricing model. Here's our overview of the engagement models we propose to our clients: Team Extension and Dedicated Team.
This is the stepping stone for any technology company that needs to augment a specific team. Whether you have or haven't outsourced products or processes in the past, starting small (with 1or 2 engineers) gets you accustomed to working with technology partners.
You communicate directly with the team, dramatically lowering the chances of misunderstandings while boosting the transparency and collaborative nature of the process.
You need to invest time in team communication, process control, and project scalability.
You will achieve this through constant governance meetings with HEITS's management, making sure that the allocated engineers are always in sync and perform at their expected best.
Total project immersion allows the team to get intimately familiar with your company's business needs, culture, values, policies, practices, preferred methodologies, management style, and other particularities.
Since 100% of their time is devoted to the project, the team is highly focused, and thus more efficient and productive.
They have a better chance to align their goals and processes with your business objectives, acquire an in-depth understanding of your needs, which in turn allows them to ﬁnd tailored solutions.
We create a dedicated team composed of various experts to deliver one particular solution. While we work independently, we follow your processes, tools, and coding standards.
Dedicated teams are cross-functional, self-organized, and capable of solving all the challenges entailed by a project. The team is accompanied by an experienced project manager to ensure good collaboration and efficient delivery.
We usually kick off a project with a shorter planning stage where we discuss the high-level goals, constraints, working style, iteration lengths, and other organizational details.
Good descriptions of the idea, the scope, and the functional details help kick-start the project in an efficient way.
We prefer iteration cycles of 2-3 weeks. That's long enough to ship smaller product increments or have meaningful progress, while short enough to not go sideways and provide room for the product team to iterate on ideas when they see fit. The best partnerships we've had took advantage of short feedback cycles.
We usually start the project or a stage of it with a high-level effort estimate that gives you an idea of the timespan and the costs involved. This estimate gets reassessed with each iteration. You can change requirements and their priority at any point. This approach lets the project evolve, allowing changes whenever needed, while you can control your budget for each stage in part.
Tracking or even capping the spending will help you stay within your budget and foresee the need for eventual scope reductions or gradual project closures. In any case, you will have a functioning product at the end.
A Dedicated Team works best for independent projects, or when a bigger functional part can be carved out to be worked on independently.
The biggest benefit brought by this model is the opportunity to gain access to a self-organized, productive team that can work independently and deliver solutions based on your requirements in a flexible and collaborative way.
We often find ourselves in situations when the team extension model leads to dedicated, autonomous teams once the Team Extension engineers grasp product and domain knowledge.