4.9.2 Sourcing, competence, and unsuitable, continuous processes
reveals PD
Introducing
sourcing: The lack of resources in Norway made it challenging to scale.
Therefore, to develop new features fast enough and not lose market
opportunities, Company E decided to outsource, and the company made an
agreement with an offshore outsourcing company in India. The Norwegian
teams used Kanban, while the Indian teams followed Scrum. The
outsourcing caused several types of debts, such as competence debt,
synchronization debt, and unsuitable processes. For example, because of
legal requirements in the final delivery, the onshore teams were
required to do code reviews on all code from the outsourcer. Since they
followed different processes, it was discussed if the code review
practice should be continuous or timeboxed.
Sub-optimal processes: The company decided that an optimal
process would be to make the code reviews timeboxed. Reasons included
being able to schedule enough time for doing Qas and reducing the number
of interruptions for the Norwegian developers. This process turned out
to be sub-optimal. Every second week, because of weak domain competence
at the offshore team, the Norwegian developers received large pieces of
code. Since the offshore team worked for 2-3 weeks before the PRs were
sent, the code sent for review was large and complex. Consequently,
reviewing the large PRs was time-consuming, tedious, and caused
frustration.
The PRs were not only large but also of low quality. The two sites did
not follow the same standards and structure of coding. Also, much code
was copied from other projects or the internet, which meant there were
pieces of code not being used or irrelevant to the project. Unused code
was described as adding unnecessary complexity. Another problem was that
the offshore developers tended to overly complicate the code of
relatively easy tasks. These problems created tension between the teams.
It became evident that the quality work took a considerable amount of
time from the Norwegian developers, reducing the productivity of the
onsite developers so much that the total productivity became lower than
before adding the extra offshore developers. A developer explained: