Work Culture Differences: Xerox, Mozilla, and Distributed Teams

After working at Mozilla for two weeks, I am really starting to see some distinguished differences between different places I’ve worked, notably at Mozilla. In today’s post, I’ll focus on comparing my internship experience at Xerox to my first two weeks at Mozilla and analyze Mozilla’s distributed team environment.

At Xerox, I was initially exposed to a cohesive team environment with a small team focus (~7 people per team typically), casual attire for engineers, and a forty hour work week. Above the small 1st line teams, the company executives definitely prioritized business objectives over engineering objectives. On one side, I definitely liked the feeling of a small team, as I could easily connect with other people, their concerns, and figure out how to have the team work as a unit. However, I thought the execution of the company business focus had its negatives. For instance, people would sometimes go into meetings to say what managers wanted to hear during feedback sessions, rather than their true opinion. A particular example was when I went to a lunch with a group of interns with one of the Xerox executives. The Xerox executive asked a bunch of feedback questions, in which interns began to respond with very business-like answers that the executive wanted to hear, rather than the truth. As a result, I felt uncomfortable, as I did not feel I could express my true opinions in an open discussion with an executive, so I keep my mouth shut. This example stemmed in other areas, such as meeting the CEO of the company and hearing an executive make business-like, silver bullet arguments for agile in all of their software teams. After going through this internship experience, I definitely developed a value for the “small team” feeling, but a complete disgust for some of the business-like arguments and discussions made by the company executives.

In comparing this experience to my first two weeks at Mozilla, I noticed that the company was definitely the opposite of a corporate business-like culture. For instance, one public meeting with the QA team showed that people were very open in bringing up what they liked and even what they didn’t like right in front of a set of managers openly. The managers I thought were very open to promote new ideas and try them out to solve past problems during this meeting. As a result, I felt that people in the meeting were able to express their thoughts freely, even if they brought up critiques about things that they did not like about how processes were currently established. Thankfully, I also noticed that Mozilla does seem to value the “small team” focus, as my main QA team in Mozilla Open Web Apps is only four people. However, a transition I think I will need to work with in Mozilla’s team culture is the fact that their teams are highly distributed across the world.

A question that I then need to find the answer to is the following: How does a small team maintain cohesiveness in a distributed team environment? I know Mozilla has IRC heavily established in the various team environments, but I think messaging without face-to-face communication just does not have the same feeling as face-to-face communication. Instead, I think that style of messaging risks a communication barrier in which both parties on each end of the messaging cannot capture some of the non-verbal expressions shown by each team member. A mitigation Mozilla appears to have established is video chat for meetings or discussions that have a high need for verbal communication. In my opinion, I do think this helps with allowing each person in a communication channel to capture some non-verbal cues. However, what about the cases when video chat isn’t be used, such as the random discussions that occur in an office? How can the person in a distributed environment be able to naturally jump into the conversation to provide their opinion? How does the distributed team member then feel closely connected to their team members? An idea suggested by a team member of mine was to have a dedicated time for our QA team to work together, which I think is a step in the right in the direction to mitigate this issue. I do wonder if the theme behind this idea, also known as “team collaboration sessions,” could be used more frequently to address the challenges of cohesiveness in a distributed team environment. As a result, I could see this helping make the team act as a unit, rather than a set of individuals blocked by the distributed communication barrier. However, I do think in order for it to be effective, it has to be both frequent and consistent, even though there are challenges to deal with on the outside such as finding a time when everyone can get together.

I’m interested in hearing responses to what people think about what was discussed above or your own opinions on the matter. What are your thoughts on cultural differences across different companies? How does a team act effectively and cohesively in a distributed team environment?