Employees at extremely fast growing companies have an exciting opportunity to meet many smart, interesting new people. This also presents a challenge: memorizing their names. It might seem impossible after you reach a certain size and have multiple offices around the world. Maybe knowing everyone is unrealistic, but at least we can strive to match a name with a face.
During our last hack sprint, I thought, wouldn’t it be nice to have a tool that could help us recognize (and maybe even get to know) each other?
With a two-week Hack Sprint, as a team of 12 people from 4 different departments, we created Optiface, an app to help learn names and faces of all the fascinating people we work with.
What is Optiface?
Optiface is a quiz game where the player has 60 seconds to match as many faces with names as possible.
This was a challenging game to build for three reasons:
- We built for web, iOS and Android simultaneously. The challenge here is to identify what the three platforms can share, define the API, identify the dependencies, prioritize accordingly and keep the teams in sync.
- Our team was distributed across two continents. Half of us are in Amsterdam, half in San Francisco — plus for a few days I was on a motorcycle trip from Amsterdam to Italy working from hotels, hostels and botels (a hotel built in a boat) along the way.
- We had a very short timespan—2 weeks to build it. One product on three platforms and about 6 effective days of developments. We decided to go for it even with a tight schedule mainly because hack sprint is a great way to learn and work on something we wouldn’t be able otherwise.
How we overcame the challenges:
- We used Trello. We used Trello to assign tasks and get a quick overview of everyone’s progress and dependencies. We generally use JIRA for this at Optimizely, but Trello worked very well for a smaller team with a short term project.
- We had daily standups. In order to keep the team in sync and move fast, we had daily 10-minute standups. This was fundamental to talk through important decisions together and to keep the entire team in sync.
- We designed iOS first, then adapted it outwards. The iOS team split the development in three parts. First, we fetched the data (employees names and images) from the server and cached it locally. Second, we developed the app’s search functionality and leaderboard. Third, we tackled the quiz logic, UI and interaction. As the biggest team on the project, the iOS developers helped refine the game while developing it. The other teams followed and took benefit from having clearer specs and a tested API.
- We shared an API between all the platforms. We first identified shared infrastructure components that were applicable to all three channels. We designed a shared API so that all of the clients could talk to one endpoint. All of these established a strong core component and took us a step closer to achieve uniformity in presenting the game across all channels.
- We used timezones to our advantage. A time zone difference (especially a 9-hour difference) is generally a big obstacle for teams trying to collaborate. In the early stages of this project, we worked in shifts: I would work on wireframes while the U.S. team was fast asleep and by the time I woke up the next morning, I had designs in my inbox. During the second week, when we were much more focused on development, the timezone difference became an obstacle as usual but we were able to finish our project in two weeks.
The time constrain is what makes Hack Sprints so fun and even a bit nostalgic. We come together to work on something fun and we don’t mind staying up late, spending nights writing code as we used to do during college.