The intensity of downtown Toronto’s rush-hour pedestrian traffic pales in comparison to the electric work environment of Xtreme Labs. After some time, most XL employees will get up to speed with our fast-paced work environment, but I clearly remember being overwhelmed on my first day as an Agile Engineer at our downtown Toronto office.
Mobile isn’t the next big thing. It is the big thing right now, and it is only getting bigger. And mobile technologies are moving fast. And so, we’re constantly iterating on creating a work culture that allows our engineers to move fast while maintaining quality.
A typical engineer’s week at XL is fun, intense, and goes by really fast. To lure our engineers into the office on time, breakfast is served every day at 9 AM. We start off each day with a five-minute company standup during which the entire company gathers and shares interesting, relevant, and even irrelevant news. Next, we break off into smaller platform standups; the Android engineers have their standup, the iOS engineers have their standup, the BlackBerry engineers have their standup, and so on. Being an Android developer, I attend the Android standup. This lasts for another five minutes during which we discuss briefly what we worked on the previous day, and more importantly, raise a flag if we are stuck on something. That’s it for status meetings. We try to have as few meetings as possible.
We are huge proponents of agile software development and pair-programming. Readers unfamiliar with pair-programming may picture our engineers holding hands and taking windy walks together, which is not what pair-programming is. Pair programming is an agile software development technique in which two engineers work together at one workstation; our workstations are typically a 27-inch iMac with an attached 27-inch monitor, two keyboards, and two mice. One engineer, the driver, types in code while the other engineer, the navigator reads each line of code as it is typed in. The two programmers switch roles frequently. Throughout the day, our engineers pair, and this is a big part of our engineering culture. Engineers are constantly interacting and the result is usually high-quality code.
Most of the projects we work on at XL are external client projects. Keeping in line with agile software development practices, we run weekly sprints; we religiously deliver a build to our clients every week. At some point during the week, the anchor – the lead engineer responsible for a project – meets their client and reviews the weekly build to gather feedback. Client feedback is important because it allows us to fine-tune, or in some cases, make significant changes to the app over the course of the development cycle.
Knowledge-sharing is omnipresent at XL, and besides employing the usual knowledge-sharing mechanisms such as mailing lists, wikis, back-and-forth emails, and screaming at the top of our lungs, we host a lunch-and-learn every week. The idea is, firstly, to have a speaker – an XL employee or even an external person – to do a talk on something interesting, and secondly, to eat a lot of food. We once invited a chiropractor to speak on the topic of staying healthy; she made the entire office do jumping jacks.
Friday demos mark the end of the XL work week. Every Friday, every engineer presents their work-in-progress app to the entire office. We talk about the app on a high-level and also get into detail about what we did during the week. It can be a really good feeling to take your week’s work and let every one see how much you’ve accomplished. But besides bragging, we also look to everyone for feedback. And sometimes, the feedback can be quite humbling because an app that is under the scrutiny of a hundred engineers can very quickly go from being perfect to being not so perfect. But it’s never about ego and always about quality, and critical feedback almost always improves quality.
Once the demos are over, we bring in an assortment of chips and dip, sugary treats, and beer. There is also a DJ booth where our resident DJs liven up the office with music. Everyone can relax, get to know each other, and have some fun together after a long week.