Ways To Boost Software Development Teams — Part 2

Bilge Tekkursun
Trendyol Tech
Published in
7 min readDec 15, 2022

In our first article, we talked about how we, as the Promotion team, made working together more effective and how we built great and healthy team culture.

In this article, which is the continuation of our first post, Ways To Boost Software Development Teams — Part 1, we would like to talk about what other activities and principles we have adopted and how we are improving ourselves as a team, hello again :)

Below, you can find the topics that we will explain in detail.

  • Business Q/A Sessions
  • Book Reading
  • OKRs — running on the same goals
  • Supporting for external courses
  • Retro meetings
  • Rotation across teams
  • Mob Programming

Business Q/A Sessions

As a team, we organize one-hour business q/a meetings once a week. The purpose of this meeting is to refresh our knowledge of this domain which includes a large amount of business logic.

How did this meeting benefit us?

First of all, the initial purpose of this meeting was to make the adaptation of our new teammates easier so they don’t get lost in our complex domain. We did this by preparing some questions on an excel document before the meeting and talking about the answers to these questions in a conversational style, and we aimed to make the information permanent and to be easier to remember.

After a while, we realized that this meeting was beneficial not only to our new teammates but also to our experienced teammates by reminding us of some detailed information. Also, these questions and discussions helped us find some improvement points in our domain.

How does the meeting start and go?

We usually start with a simple question and then jump to different points in the question to try to complete the big picture. By doing this and completing each other’s shortcomings, we aim to keep the knowledge level of everyone on the team equal and complete.

At the same time, we discuss the exciting cases faced by our colleagues who give support that week, and we pass on a good experience to our next observer friends.

Book Reading

We believe that technical and non-technical books in the industry expand our knowledge and enable us to work more efficiently in our working life.

Also, it’s not deniable that now it’s quite easy to reach the desired information from the internet. Still, we need books in order to gain in-depth knowledge of technology and to have information on the topics that interest us.

We also think that being able to learn from the knowledge and experience of experts who have worked in the industry for years is invaluable.

As a team, we take the chapters of our technical or soft skill-oriented books, which we have determined as one per month.

Once a week, the person responsible for the chapter tells the team about the subject.

While talking about our chapters, we try to ask questions such as “Can we use this method?”, “Should we also do this?”, “Do we think the defended idea is correct, and what are the sides we disagree with?” to contribute to our own development not only theoretically, but also practically.

Below you can find a few examples of books on our list.

  • The Pragmatic Programmer
  • System Design Interview
  • Domain-Driven Design: Tackling Complexity in the Heart of Software

With this practice, we improve as a team by sharing knowledge, getting new ideas, and realizing what we need to change and what points we lack. We become more conscious of what we do, why, and how, and consistently improve our technique.

OKRs (Objectives and Key Results)

Every quarter of the year, we set objectives according to the OKR methodology. OKR helps us to embrace shared goals.

Some objectives we define this quarter:

  • All tests should run in 2 minutes
  • Increase deployment frequency to 2,5 per day
  • Decrease x API deploy time to 5 minutes

While defining the goals, one of the questions we ask first is that “Which side of the team will be stronger if we accomplish this goal?“ so that our objectives are clear and we are sure that the objectives support us to improve our technology, culture, or business value.

Chasing common goals in the team will strengthen the sense of being a team, so it would better remind us that these goals should belong to the team, not individuals. We meet weekly to prioritize our objectives and include them in the sprint. We also arrange a meeting to review our progress on the objectives at the end of every month.

Supporting taking courses

In Trendyol Tech, developers are supported to take courses and attend conferences related to their interests. Taking external courses helps the team to increase technical knowledge. In addition, those taking the courses are encouraged to present what they learn in the classes to their teammates. These presentations make spreading knowledge within the team easier and quickly.

Retro Meetings

A retrospective is a crucial part of Agile because it’s where we gather feedback from the team and understand their feelings about the process, thereby improving future sprints. A good retrospective must be engaging and actionable. Our retrospective meetings consist of 3 important things:

  • Ice-Breaking
    When we kick off the retrospective, our first step is to try to break the ice. Because we want to hear one by one all comments and feedback. So what are we doing about it? We start with a small warm chat or ask some funny virtual icebreaker questions. In this way, the team starts to feel comfy and confident.
  • Engaging

In order to make retrospective meetings more engaged and action items embraced by the whole team, we have a recurring system for leading the meeting. Each retrospective is led by a different team member.

  • Actionable

The primary goal at the end of the retrospective is to produce an actionable list of items that the team can do to increase productivity. We gamify the retrospective meetings by using different online retrospective templates. We set a timer counting down from 2 minutes to give time to team members to write feedback. Columns of the templates help the team to be more focused and ease the process of gathering feedback to improve the process. And then, we read every feedback and discuss whether it’s an action list. An action list either can be assigned to a team member or the whole team. Assignees ensure the execution of the action list.

Rotation Across Teams

Rotation is a process that allows developers to change their teams. Someone being a part of a team for a while can rotate to another team if they want. The new team the one will rotate to is usually a team that does different things from the one they were previously in. Furthermore, It is optional to stay in the same position; For example, you can change from the backend developer to the frontend developer, etc.

Why should we rotate? What are the benefits?

In Trendyol, teams have various tech stacks and challenges. When people develop all the muscles in their bodies equally, their appearance improves. The rotation allows us to strengthen different muscles in different teams. Even more, changing the team gives us an experience like changing the company we are part of, so the one who rotates has a chance to learn different tech stacks and domains. On the other hand, they can meet new people and spread knowledge across the teams by sharing their experience from their previous team.

Mob Programming

Mob programming is a significant activity for development teams. It is the next step of pair programming. Using this technique to solve problems helps us to share business and technological knowledge with teammates. Mob programming improves team collaboration and, using it for core and complex changes, expands knowledge of critical logic. This knowledge helps us to solve critical bugs.

We use mob programming when we need to change a critical part of the domain or when we need to implement a complex business process. Also, we use this practice when there is a need to fix a production bug immediately.

Deciding solution is more important than writing code so that any teammate can write code in mob programming sessions. All product participants (Dev, QA, PO) can join mob sessions. Especially when fixing production bugs, QA and PO involvement is critical.

Thank you dear promotion team members MUSTAFA AKILLI, Oğuzhan Sarıçin, Kubra Cakir , Selay Arkun, Sefa Fatihhan Okumuş, Emel Serengil, Ferhaterdas, Mehmet Aran, Ertuğrul Gamgam for their contribution.

--

--