Common Surface – Web app for managing hybrid work
In the initial client engagement phase, we took on the challenge presented by Common Surface, a B2B SaaS company seeking to build a web application for hybrid working companies. The project began with an initial estimate and scope of work, and once agreed, the design and discovery process followed. This meant translating first design drafts into a functional web app.
Here’s how it worked:
The first step was to gather employees’ location preferences, such as how often they’d like to be in the office. For this part, the client invented a small algorithm to calculate schedules that would promote team spirit and make planning a simple task.
We took the algorithm, drafted by the client, designs established over the Design and Discovery period and the journey to build a fully fledged web application began. This was the bare-bones version of our project, also known as the MVP.
Once the investment had been secured, additional features were added to the platform. In particular, the algorithm was replaced with an advanced scheduling tool. This change made it possible for the employees to take charge of scheduling, which made it easy for them to choose their preferred office days.
In this video, we present a demo of Common Surface, an innovative application that provides a seamless collaboration platform for teams. With Common Surface, you can easily share ideas and insights, communicate with team members, and work on projects together in real-time.
Challenge & Goals
The client came to us with a need for a platform that could handle hybrid working. It is important to note that this was before the pandemic, before there were many options for managing this type of work. They needed an algorithm that would schedule people’s work locations for the week, allowing them to work remotely as well as in the office.
Let’s say there’s a company that has an office that can accommodate 40 people, while the company has 50 people. So the platform was to be the optimal solution for customers who work in a hybrid mode and need to plan when to come in and when not to come in, depending on the occupancy.
But, as the project progressed, clients asked for more interactive features that went beyond basic scheduling, such as synchronizing it with the employees’ absences, sick-leaves, events and additional authentication. A shift into a more extensive scheduling tool was expected. Adapting to these changing needs meant re-evaluating the project roadmap, reallocating resources and introducing a more advanced planning tool.
Technological challenges:
The most challenging aspect of our system was the integration with calendars, specifically Microsoft and Google calendars. We opted for a bi-directional integration, meaning that we could both read and make changes to the calendar. For example, if someone updated their work status from remote to in-office or marked themselves as absent, we would reflect those changes in the calendar. The difficulty came from the need to seamlessly synchronise these updates.
We also ran into issues with rate limits that were not clearly outlined in the documentation. While initially working on a weekly schedule generation, we found that attempting to add around 1,000 events to the calendars resulted in the system being blocked for a few seconds after the first hundred. This caused errors as our system was designed to only create missing events and avoid duplicating those already generated. Dealing with these challenges was quite a learning experience and a significant hurdle in the development process.
Objectives of the project:
- Creating a custom web application that can make it easier for the employees to plan their office and remote work.
- Improving scheduling system, and also integrating features such as office events, Slack integration and connections to external HR platforms.
- Optimizing performance and scalability as the number of employees, events and number of integrations grew.
- Sticking to efficient coding practices, rigorous testing, and user-friendly interface design.
Solution
Initial development phase
The project started with the creation of the minimum viable product (MVP) within three months, involving two developers. The POC version of the algorithm, was converted into the task executed periodically in the cloud. This phase laid the foundation for the web platform, providing a functional solution for managing hybrid work.
Prior to MVP development, we worked on the initial designs that became the foundation of the platform. The design phase was supported by research into the presentation of calendars and schedules in typical web browser applications. Of course, as is usually the case with applications that need to present a lot of data at the same time, the mobile/responsive version of the app was a big challenge.
At the beginning of the project we were responsible for the high fidelity designs, research and development, working closely with the founders.
Investment and scaling
After the successful presentation of the MVP, the project moved to the next phase with the support of a venture capitalist (VC). This marked the transition from a temporary contract to ongoing software development, initially with a dedicated team of two developers. However, the growing demands of a fast-paced startup led to the team expanding to 13 people, including developers, QA professionals and automation testers.
Agile Adoption and Velocity Improvement
Recognising the need for increased velocity, the team moved from a Kanban approach to Scrum, releasing features weekly and working in sprints. This change allowed for a more structured development process, in line with the needs of a VC-backed startup. Communication with the client’s team, including developers, data scientists and the product owner, played a critical role in the success of this phase.
Feature implementations
Over the course of the project, numerous features and integrations were implemented to enhance the functionality of the platform. Notable implementations included OAuth authentication (Google, Azure), integration with HR platforms (bambooHR, Hibob, merge.dev), synchronisation with external calendars (Google Calendar, Outlook), Slack applications for extended functionality.
Advanced integrations and analytics
The project included advanced integrations such as Cumul.io for analytics, Intercom for customer support and user onboarding, and LaunchDarkly for controlled feature releases. The use of custom analytics solutions prior to Cumul.io demonstrated a commitment to refining and optimising the performance of the platform.
Result
The final product was a scheduling platform that simplified hybrid working and was packed with integrations and features. Our platform received positive feedback from clients, with a high level of customer satisfaction. While further development was discontinued due to competition from major technology giants, the project had a successful duration of almost three years.
During this time we have implemented features such as:
- OAuth authentications of all kinds, such as Google and Azure.
- Several HR platforms, including BambooHR, Hibob, and finally https://merge.dev/ to manage absences within our platform.
- External calendars, such as Google Calendar or Outlook, synchronise the events in both directions, reading them and pushing them to the user’s daily calendar.
- Slack applications – to enable the use of Slack’s application features and extend the platform with additional capabilities
- Serverless services based on AWS Lambda – for small or scheduled tasks that run periodically
- Various queues, based on AWS SQS – to handle notifications, adding additional logic based on many factors
- Intercom integration – for customer support and initial user onboarding
- [cumul.io](http://cumul.io) integration – for the analytics shown to users within the platform, as well as for internal company use
- Custom analytics solutions – before cumul we went through several different approaches to analytics like Google Analytics or the Mixpanel.
- Launch darkly integration, allowing to release the features only to particular groups of users for testing or because of business reasons
Client Review
The client provided a positive review, mentioning that all the required features were developed, and the team was easy to work with, quick, and efficient.
Results & Feedback:
While the project was yet to reach an official launch at the time of the review, the client emphasized that we provided a platform that met their needs. All the features outlined in the initial estimation were successfully developed, and the team incorporated additional features based on customer feedback.
Project Management Style:
Communication was mainly conducted through Slack, Jira, and other tools like email and Miro. The client interacted mostly with one of the founders for project management. The use of these communication channels ensured transparency and efficient collaboration throughout the project.
Impressions and Uniqueness:
The client found us to be very easy to work with, quick, efficient, well-priced, helpful, and willing to accommodate requests. The positive attributes highlighted the overall positive experience and collaboration between the two entities.
It was a hell of a ride. With ups and downs (but mostly ups!). Working with Common Surface has been a pleasure, a challenge, and fun all at the same time. It has led to a constantly evolving platform that solves the problem it was designed to address.
We won’t hide the fact that TH-EY has grown with the Common Surface. We’ve also learnt a lot during these almost 3 years of cooperation, and it’s been a great journey.
Lessons learned, processes improved, platform built.