Through our extensive insights and product development knowledge base, we help our customer’s setup the following models of distributed software factories, with the flexibility and agility to evolve gradually from a basic model to a more mature model:
Mixed scrum team
This is a basic model of software factory setup that is relatively easier to setup and can start producing results in a short time. In this model, the process and workflow that is followed by the customer’s native teams is replicated, and the distributed scrum team works as an extended team.
This model is best suited when the customer has the bandwidth to manage the distributed team, and wishes to retain control over all critical functions including architecture, product and project management.
Autonomous scrum teams
This is an intermediate software factory model, where a full-fledged distributed scrum team works in an autonomous fashion. The autonomous scrum team can either replicate the customer’s native process or adopt a process better suited for its distributed environment.
A common team of enablers fulfilling critical functions such as architecture, product, and engineering management support both the native as well distributed scrum teams, which work independently. This model is best suited, when the customer has a clearly identifiable division of work between the teams, and both teams have adequate process and people maturity to deliver independently.
Distributed scrum teams
This is a mature model of software factory, with fully evolved processes and workflow to support distributed, yet collaborative development. In this model, the customers native and distributed teams will be fully integrated in all aspects, and deliver seamlessly as a single entity. Geographic proximity becomes irrelevant in this model, with an integrated process and collaborative culture helping the teams work in tandem. Handling of critical roles and functions will be determined more by the availability of skilled talent and their level of expertise, and not by their location.