How can I cultivate a cohesive AI development team?#

Contributor: Kenny WJ Chua, Senior AI Engineer


Introduction#

Engineers in charge of a development team take on the role of a technical lead. This entails a set of responsibilities that are distinct from those of an individual contributor. Engineers, especially those who are inexperienced with leadership responsibilities, may face challenges in rallying their team.

A cohesive team is one that is well-aligned towards a single, common goal. This article provides suggestions on promoting cohesive teams by operationalising general leadership principles within the context of an AI development team.

In the context of AISG, an engineer plays the role of technical lead for a small team of apprentices (henceforth referred to as ‘developers’). Hence, the contents of this article would be relevant to any AI practitioner who is in a similar role as team lead.

The article assumes that the reader has some (but not necessarily extensive) knowledge of a AI project life cycle and typical activities that occur in each stage. You may also wish to consult the complementary article on building an effective AI development team.

Importance of a cohesive team#

During early stages of a project, developers can come onboard with divergent expectations of project deliverables. Even when project deliverables have been specified in writing, there can be varying interpretations regarding the scope of said deliverables and the approaches to achieving them. Developers will also come with their own set of specific expectations on what they wish to learn from a project, e.g., specific tech stacks.

Divergent expectations present a risk to the cohesiveness of the development team. This can make it challenging to come to a consensus on technical decisions. Correspondingly, the risk of miscommunication is also increased, which can lead to time-consuming rework of project components. It is therefore in the team’s best interest to mitigate such risks by promoting alignment on project requirements and individual expectations.

Promoting a shared vision#

The technical lead can do so by promoting a shared vision for the team. This vision includes the technical direction, scope and expected quality of work. The early stages of the project represents a critical window to align expectations on the project vision, so as to minimise the accumulation of downstream technical debt.

As much as possible, the project vision ought to be practically and tangibly laid out in the form of system architecture diagrams, rather than left as potentially ambiguous textual/verbal descriptions. Areas that are out-of-scope also need to be made explicit as much as possible, such that the team can come to a common understanding of the work that needs to be prioritised for project delivery.

An effective vision requires buy-in from the project team. One way to facilitate this is to articulate how developers can benefit from the project. This frequently comes in the form of opportunities for professional/technical growth, e.g., by learning new technologies. However, it should also be carefully hedged that the choice of technologies used in the project need to be guided by project requirements rather than learning needs. While it is critical to foster technical growth amongst junior developers, their learning should occur in the form of on-job-training while keeping project needs as a priority.

In-person or synchronous remote code review sessions during the initial phase of a project present a practical opportunity to align expectations regarding code quality. These initial sessions can be conducted with the entire development team, such that any clarifications regarding coding and documetation styles can be immediately clarified. These initial code reviews will then set the tone for the expected code quality for the rest fo the project.

Encourage the heart#

Morale is a key driver of team success. Maintaining high morale within the team can provide developers with encouragement and motivation to perform at their best. However, developing under tight deadlines and high expectations is stressful, so it takes a deliberate effort to keep the morale up.

One way to do so is by regularly celebrating small project milestones with the team. Beyond providing words of affirmation, demonstrate your appreciation in tangible ways that will actually help/be appreciated by the developers. For example, encourage the team to slow down after a particularly challenging sprint, or gather the team for a nice lunch after a milestone deployment. While some of these activities can incur some short-term costs in terms of time, the idea is to provide some time and space for developers to recharge so that can be greater long-term gains.

References#