Boosting Developers’ Business Domain, Coding Experience & Social Interactions with an Old School Tradition

Sercan LEYLEK
Fremtind
Published in
8 min readApr 5, 2024

We saw the need to increase the level of collaboration for front-end developers in Fremtind. As a result, we introduced Hosting Day. A day where we match front-end developers from cross functional teams, to foster collaboration and learning across the organization. A win-win for participants, and Fremtind. Here is the story behind what inspired us and how a typical Hosting Day looks like.

It was the early days of March 2020. I had been to my new workplace for only four days at Fremtind and Covid measures were suddenly introduced in Norway. Starting a new job in a completely new sector all alone is an anxious experience, and pandemic measures had spiced up my process at an unexpected level. The whole world was nervous about whether remote work would keep the business as usual. As of today, we all know that home office worked just fine for most of us, but this coincidence helped me see some gaps for most developers in three different dimensions: Business domain, coding experience and social skills.

Most of the front-end developers works in cross-functional teams where the team consists of people from several roles (designers, testers, back-end developers, etc.). The members of the team work together to build one or several applications which serves a common goal. We can refer to these applications as a product. The team’s focus is solely on the product and our product plays its role in a larger scene which is the organization’s business domain. As a result of these, cross-functional teams easily fall into an isolated room. Facilitating different teams for distinguished goals is the nature of running large scale businesses, however this advantageous isolation brings along some disadvantages for its team members.

Every cross-functional team has its dedicated front-end developers (usually one or two). Every developer solves similar problems within his/her own range of knowledge, experience and capabilities. For example, every web application needs some routing strategy, unit testing, debugging, and so on. These operations contain many similarities, but the front-end developers of each team struggle to solve these issues on their own.

During my first months at Fremtind, I observed that the organization connected its developers and designers at some periodic events within the periphery of its design system, Jøkul. Following is a list of those events:

  • Design System Forum: A weekly meeting where designers and developers discuss Jøkul related topics for one hour.
  • Front-end Forum: A bi-weekly meeting where frontend developers discuss ongoing development problems or share significant news about their deliveries.
  • Hackathons: Organized at least twice a year. They help developers try new technologies, work on innovation and meet new people from various departments of the organization.
  • Demo: Cross-functional teams presents the new features of their recent product development. This event occurs once in a month, and it is remote.

The Challenges

The summary above lists events that enhance professional development, social bounds, collaboration and more. They all serve intersecting or somewhat different purposes, but there were still some lacking areas. Here is a list of these challenges:

  • Fremtind is a large organization with almost 1000 employees and huge data store. Therefore, it is hard to build business domain knowledge outside of a front-end developer’s product area.
  • Every cross-functional team builds/maintains its own web application. Jøkul design system and forum meetings connect us all, but we are still alone at our own island.
  • Design system and front-end forums provide passive synchronization, and the front-end developers need deeper insight about what the other teams are working with to comprehend the overall system and the organizational structure.
  • People across various teams don’t know each other well.
  • The developers don’t know enough about other teams’ technology stack.
  • People hesitate to ask questions after the presentations of a demo.
  • Rare internal recruitment is observed.

A personal note: Multiply some of these challenges by two for someone who talks Norwegian as a second language and working remotely during the first two years of Covid pandemic.

Introducing Hosting Day

People used to have stronger neighborhood ties in old days. There might be many reasons for that, but the need for collaboration was one of the vital factors. People needed to follow up updates in their neighborhood and ask for help whenever it is needed. Even today, we observe closer relationship between neighbors in rural areas than urban. Besides, one of the best practices of having neighbors is welcoming them as guests. This has been our inspiration point while creating a cure for our organizational challenges.

In short, Hosting Day is a half-day activity where front-end developers from two product teams get together and introduce their products to each other.

This practice helps us get to know each other better and have a deeper insight about the other teams’ product, architecture, technology stack and best practices. Below is the day’s program.

11:00–11:30 We eat lunch together

11:40–13:00 Introduction

13:15–14:00 Pair programming

14:00–14:20 Table tennis or any other game activity

14:20–16:00 Pair programming

Lunch is first

We start the Hosting Day with a lunch at our canteen. Eating together is a good icebreaker in the first minutes of the activity day. Most employees eat lunch with their fellow teammates on a typical day. Also, cross-functional teams generally run their daily standup meetings before lunch time. To avoid conflicts with the participating team’s periodic events because of Hosting Day, we decided to start the Hosting Day with a lunch.

The front-end developers of SAM and SeOpp teams kick off Hosting Day at lunch.

Introduction

After lunch, the teams introduce their products to each other. They run a demo of their web application and present their code architecture. During this section, the participants search for answers for the following questions:

  • What problem does this web application solve?
  • Who are the end-users of this product?
    - Are they Fremtind customers?
    - Internal users?
  • How do the end-users benefit from this service?
  • What are your technical dependencies?
    - And what other product or service is directly affected by your deliveries?
  • How can we get inspired of each other’s codebases?
  • Which part of your implementation are you most proud of?
  • Which module could have been improved?
Code and product presentations are beneficial to build knowledge.

We provide these questions to the Hosting Day organizers in advance to ignite the discussion topics. We also encourage the participants to ask additional questions. Because of Hosting Day’s informality, the participants feel less pressure while asking questions and speaking their minds.

Remember the challenge that we struggle with at Demo meetings. The developers are certainly curious about the new features built by the other team, but turning on the microphone while many viewers are watching the presentation is harder for most of the people. Moreover, time constraints of Demo meeting also impacts this negatively. However, during the introduction hour of Hosting Day, both teams have the luxury to stop, rewind and rediscuss a former point in the presentation. It is a more relaxed environment to build business domain knowledge and technical practices. On the other hand, presentation ability is a skill and like all skills it gets better when one practices it more. Each participant gains the opportunity to present their product and improve their presentation skills at an area that they know the best.

Pair programming

Hosting Day aims for interactivity, productivity and profound knowledge sharing. Therefore, we ask the participants to solve their tasks in pair programming sessions. Pair programming is a software development technique in which two programmers work together at one workstation. One developer, the driver, writes code while the other developer, the observer, reviews each line of code as it is typed in. The two programmers switch roles frequently. (Williams, Laurie 2001)

Hosting Day promotes hands on techniques like pair programming.

Developers from different teams pair up for development or maintenance tasks of their web application. This technique provides several benefits. Most importantly, people understand how the other application works while they are trying to solve an actual problem and they can clearly observe the dependencies of a system. Therefore, unit test development tasks are most suitable for this purpose. Because writing unit tests help the peer programmer understand the responsibilities of a module. Besides, it is one of the overlooked areas of many applications. Teams seize the opportunity to increase their code coverage during the Hosting Day.

On the other hand, the developers naturally learn new things from each other, such as developer tools, terminal commands and other tips. Learning by doing also contributes to increase their personal competence. Since Hosting Day uses the reserved time on actual tasks, the productivity is affected at minimum level, meaning their teams don’t fall behind their schedule for ongoing deliveries. Thereby, teams can prolong their Hosting Day from half-day activity to two business days.

Spreading Hosting Day culture throughout the organization

We used pilot teams to introduce Hosting Day to the rest of the organization. Big bang approach would rarely work while spreading the Hosting Day activity because it would be harder to keep every team on the same page at the same time. Also, we wanted to test our theories in practice first and make necessary adjustments to the blueprint of the Hosting Day. Therefore, advocates and pilot teams are used in the initial stage.

Fremtind’s SeOpp Team, which develops and maintains meldskade.fremtind.no, organized Hosting Days with two other teams as first step. So that, we managed to have three teams and six front-end developers who knew how to run a Hosting Day. The incremental approach proved to be a good way of introducing this new activity within the organization.

Later, we announced the Hosting Day to all other front-end developers and team leaders via various presentations and set up a schedule. In addition to these, a ‘facilitator’ from each team has been delegated. The facilitators are initial contact points between two teams while executing a Hosting Day, making sure the activity is operated smoothly. Thus, the teams can manage their Hosting Day autonomously.

Fremtind developers are still at the learning stage of Hosting Day. We keep on trying new things and discussing the outcomes. Our front-end developers have agreed to practice Hosting Day twice a year (Spring and Fall). We are also aware that this practice could be beneficial for other roles such as testers, backend developers, designers, and so on.

Conclusion

Hosting Day eases some of the challenges we experienced with our existing forums and arenas. Developers become more open for internal recruitment, they apply new technology and techniques into their codebase and more. This new activity may come handy for newly hired employees as well. As we continue running the Hosting Day, new front-end developers get hooked into the activity and it speeds up his/her onboarding process into the organization. Basically, Hosting Day helps us turn our challenges into positive outcomes.

All in all, one of the best ways to get to know other people is working together with them. Hosting Day works in three dimensions: The individuals comprehend the organization’s business domain better, get to know people in other teams and build technical competence.

Sercan Leylek

References

M. Suarez et al. 2019, Design Systems Handbook, InVision

Williams, Laurie (February 19–20, 2001). Integrating pair programming into a software development process.

--

--