Skip to content

Team Organization

Denis Stebunov edited this page May 24, 2022 · 3 revisions

Teams

ivelum works in teams, and each team usually focuses on one project (though many projects are related). We try to keep teams small, as both the cost of communication and the complexity of management grows exponentially with team size. Currently we have five teams, each with three to six developers.

Changing Teams

Sometimes changes happen, and we certainly try to take your wishes into account. If you would like to work on another team or project, please let your team lead or Denis Stebunov know.

Team lead

Every team has a team lead, who combines the role of the developer with that of the project manager. The leads are chosen from our experienced developers, and they themselves write their own code. However, the lead's main concern is not their own programming productivity, but rather the productivity and harmony of their team as a whole. This responsibility includes:

  • Architectural Supervision and key technical decisions for a project. The lead is the chief architect of the project. However, this doesn't mean that the lead is the only one who makes decisions. On the contrary we support the autonomy and initiative of all developers. The lead's responsibility is that the team's technical decisions are in line with the project's overall conception, and that these decisions don't conflict with each other. The lead also ensures that the level of technical debt is under control, and the project's implementation is of acceptable quality, both internally and externally.

  • Distribution of workload. To do this well, the team lead has to take many factors into account: current business priorities of the project, internal technical priorities, schedules, vacations and other non-working days, the relative complexity and specificity of tasks, personal abilities and wishes of each of the developers - all this affects how the work load is balanced.

  • Productivity of the whole team. In the work process, all kinds of difficulties may hinder, or entirely block, development. Unexpected technical difficulties arise, as may interaction problems between people or new conditions that require new solutions. Developers can cope with many of these challenges on their own, but sometimes help is needed too. The Team lead monitors the development processes in the team and helps identify and solve these problems.

Deputy Team lead

If you've got the impression that the team lead is necessary for us to work effectively, then you've gotten absolutely the right impression. That's why it's important that there always be a designated lead at any given time.

At times the lead may be unavailable. EG they may be on vacation, or sick, or, in exceptional cases, entrenched in some critical area of technical development. When this happens, the lead appoints a deputy. The deputy performs exactly the same functions as the lead would perform for as long as the lead's unavailable.

When the lead's available, no such "assistant" is typicaly needed. Indeed, perhaps having one would even be harmful, as it would create ambiguity about the proper channels of communication. There should only be one lead on a team at any given time: either the lead or the deputy, but never both.

Clone this wiki locally