Introduction: Development and Leadership Practices

Learn about basic development practices and a team lead's role within a company.

Overview

In this chapter, we'll go through some useful development practices that can help ensure a low chance of error and a high success rate when maintaining, updating, and creating new pieces of code. We'll also cover the main skills that can help a team lead deliver results and uplift their team.

A team lead is responsible for carrying the entire team on their shoulders. They’re responsible for ensuring the timely completion of tasks, assigning new tasks to team members according to their bandwidth, training new team members, and presenting work to clients and the people in charge. The team lead acts as a bridge between the developer and the client and maintains the balance between them.

Development responsibilities

There are some basic responsibilities that a development team has to fulfill. For example, the team has to update and provide support for a complex system. The stakeholders request for the developers to add new features regularly. These developers are also responsible for keeping the system operational.

Note: Keeping the system alive is more important than new features. 

The image below shows how information flows between relevant resources working together on a project. The stakeholder communicates the requirements to the team lead, who then translate those requirements into functional specifications and assigns the tasks to relevant developers on their team. It's important to note that stakeholders never get to directly interact with the developer, instead, they only communicate with the team lead.

The principles of effective delivery

Let's take a look at some principles to follow in critical development situations:

  • In case of critical updates, split into multiple streams, where one stream is responsible for adding new features, and the rest focuses on fixing the problem.

  • Developers shouldn't be asked to fix broken builds, and shouldn't update or upgrade infrastructure that is being decommissioned. 

  • For cloud environments, your team might need to change providers every few years, and the developers should be prepared for this. With so many providers available, this can potentially result in multiple shifts per year. How easy it is to migrate away from a cloud environment should be a consideration when choosing a provider. 

  • The team needs to be aware of upcoming work, but not necessarily at the same level of detail.

  • The entire team does not need to attend every single meeting. There will be meetings that the whole team should attend, but those are likely to going to be the project kickoffs.