When I took over as VP of Engineering at Hightail, my goal was to help the company innovate on our existing service. We wanted to create a new and valuable creative collaboration product that would solve genuine problems faced by our users. From an engineering perspective, it was a daunting prospect.
For 10 years, our stacks had been built to do a few simple things well. Our processes were slow but steady and the tech team had settled into a mindset of manually managing the existing code, while gradually implementing low impact and low risk service enhancements. Changing course required a three dimensional shift in how Hightail worked with each approach happening in parallel and influencing one other along the way.
Here’s how we did it.
1. Creating a new culture
The first approach was to define what our new tech culture should be. We wanted to build a collaborative environment with velocity and quality at scale. Identifying the key people who best fit that mindset and would become beacons of our new culture as we moved forward was important. Because a key ingredient for creating a new product is a team that can communicate easily and develops ideas at high velocity, we emphasized building a strong core team in our Bay Area offices.
2. Picking the right people
Any concepts about culture are only as good as the people involved. I moved fast to empower the right people in key roles, including an architect, web team, a backend manager and a data warehouse team who would ensure our file sharing service kept ticking over while we concentrated on innovation.
It was essential that everyone on the tech team could work quickly, ensure a high level of quality across the architecture, code base and QA process and build at scale when needed. As our culture was refined and our new processes began to take shape, we brought in new talent who could easily adapt to what we were putting in place. The fresh energy and perspectives brought by these people helped shake the mindset of existing engineers and accelerate the required cultural change.
3. Perfecting our processes
When implementing more efficient technology stacks and processes, it was critical that they would be an expression of our new culture and not define it, as it had done in the past. We needed to be nimbler so we could adapt to the different product initiatives that would happen as we explored and experimented in the new world of creative collaboration.
Releases and deployment were the biggest issues we had faced previously, so it was imperative to solve these first. My solution was automation, automation and more automation. Our release process became as simple as typing a command in our internal instant messaging service, HipChat. Now anyone in engineering can deploy code to any non-production environment. Soon we were down from a large release every four weeks to smaller, automated one-week releases.
In addition, we automated the entire data warehouse in the cloud, which allows everyone to access data and run reports themselves, removing blockers on people gaining insights and generating ideas. Finally, we also adopted simpler patterns like microservices integrating with 3rd party providers as needed to get the infrastructure up and running. Now our infrastructure can easily scale without too much burden on engineering or operations. We also ensured that we had good monitoring of our systems so we can enhance and adapt to the usage patterns of our customers.
This three dimensional approach to creating a world class tech team has transformed how Hightail builds and develops its products and services. By rethinking our tech culture, we were able to assemble teams to deliver and implement processes that made everyone more effective. But the hard work doesn’t stop here and we’ll keep on enhancing and refining our culture, team and processes as we continue to create the next generation of creative collaboration.