A Day in the Life

Culture Pair-programming Inside-view

Inviting college students to view a software house from the inside.

Pair programming

Most college students finish their degrees and face the professional world with no first-hand contact with any companies. Consequently, they either don't know how a company functions on the inside, or they have skewed visions of how it does function — rife with stereotypes of a "corporate way of being". In reality, there are companies of all sorts and sizes, and we at Premium Minds are proud to be such an example. Our culture in "verbose mode" diverges from that corporate stereotype, and we believe that sharing our culture with college students has benefits for both sides: they gain extra knowledge that may well prove useful when they enter the job market, and we gain extra awareness of our brand and our culture.

This motivated us to take part in the BEST Inside View challenge, which focuses on job shadowing activities. In this pioneering initiative (organized by the Lisbon chapter of the Board of European Students of Technology (BEST), in cooperation with Instituto Superior Técnico), we had college students spending an entire work day with one of our software engineers, observing our daily routine up close.

Jump to heading No two people are the same

At Premium Minds, we always have an interesting melting pot of academic backgrounds among our team. The ensemble of four Inside Viewers we hosted mirrors this melting pot:

  • two Information Systems and Computer Engineering students;
  • one Electrical and Computer Engineering student; and
  • one Physics Engineering student.

Furthermore, André, Guilherme, Joana and Rita range from 3rd to 5th year students.

Jump to heading No two days are the same

Our Inside Viewers came in on different days, and each one was hosted by a member of a different product team. Other than this, the events of the day each Inside Viewer would be spending with us were not planned with too much detail — that would be unrealistic. The unwritten syllabus for the day had two simple topics:

  1. The Inside Viewer shall work closely with a software engineer, in whichever task(s) the latter has for that day.
  2. The Inside Viewer shall have lunch with the team.

As a result, the multiple aspects of the life of a software engineer weighed differently in each Inside Viewer's day with us. This effect was further emphasized by the fact that they all spent their day with teams working for very distinct clients.

  • André's day with our luxury items client's team happened to have more meetings than the average (Sprint Review, Retrospective, and Planning) — a nevertheless relevant activity in a software engineer's life.
  • Guilherme helped with front-end and back-end development for a mobile parking meter solution, and accompanied client support issues.
  • Joana spent the morning developing a new user preferences page in Wicket, using our drawer system. After lunch, Joana helped us deploy a new version of our pharmaceutical client's web portal for Quality Assurance testing.
  • Rita helped devise an efficient solution for version control on a content repository with large files, in the context of an e-learning project.

All Inside Viewers participated in at least one meeting of the respective team — the daily stand-up. For us, this was an important part of the insight we wished to provide: that a day in the life of a software engineer is far from being "coding, coding, and more coding".

Jump to heading Building Rome in a day: pair programming

The first hurdle one has to overcome when joining an already running project is acquiring its context. By context, we mean things like the problem domain, the product goals, the project's structure, code organization, etc. This is true for both an Inside Viewer or a new hire. However, since a new hire is going to spend some time with us, we can afford more time for this process. With Inside Viewers, we didn't want them spending this entire one day just looking at documentation and code.

Thus, it seemed natural to adopt pair programming to ease the integration of the Inside Viewer in the daily routine of our software engineers. In pair programming, two programmers share a workstation and alternately take the roles of driver (the one who writes the code) and observer (the one who reviews the driver's code).

On the typical Inside View day, most of the time before lunchtime was spent with the Inside Viewer as an observer. This is the exact scenario that may lead to the "Watch the Master" anti-pattern  — a frequent and well-documented pair programming pitfall (especially in expert-novice pairs). However, we took the following due diligencies to empower the active participation of the Inside Viewer:

  1. We avoided having a pair of "silent partners". We constantly explained aloud what we were doing (effectively using the observer as a rubber duck), and asked the Inside Viewer's opinion.
  2. We actively sought the earliest possible moment to switch the observer and driver roles. Although afraid at first, all our Inside Viewers lived up to this responsibility we've put in their hands. It's always nice when a prospective Premium Mind leaves the premises with more git commits than when they came in.

Jump to heading The Premium Minds culture from Day 0

Our culture is built on respect. We asked for the Inside Viewers' opinion with the same sincere interest and respect we use daily among ourselves. Even in the limited context of the Inside View day, we could see in action the way our culture of respect fosters responsibility. At the end of the day, our Inside Viewers were proactively putting their opinions forward on equal footing.

Jump to heading Wrapping up: win-win

In the aftermath of our participation, the BEST Inside View organization sent us the feedback they gathered from the students we had hosted. Our Inside Viewers expressed positive feedback about:

  • being integrated in a real team, performing real (and not just realistic) activities on a real ongoing project;
  • feeling welcome and respected by all our team members with whom they interacted;
  • our culture and work methodology.

When asked what they would have liked to see done differently, most Inside Viewers had nothing to say (there was one suggestion to change how we choose the day when the team hosts the Inside Viewer). We nevertheless feel there is much room for improvement.

Besides the mutual benefit from presenting our company and our culture to college students, we have learned a lot for ourselves. We heavily employed a software development technique we don't get to use as often as we'd like (pair programming), and from that we learned some lessons we will surely apply in our routine work, in the process of integrating new members in a team, and possibly even in our recruitment process. We're eager to apply these learned lessons, and to welcome Inside Viewers again as soon as the opportunity arises!

(With contributions from Bruno Santos, Filipe Roque, and Jorge Fonseca.)