Editor’s Note: For the latest update on Asana performance, check out this post from January 2017.
Making an app really fast while scaling to a large user base around the world is one of the biggest challenges of software development. Delivering top performance gets harder, though, the more data the app has to load.
We’ve been aware of this challenge since we wrote our first line of code for Asana. We knew the app needed to be very fast to be useful and valuable to people, but most of today’s modern web frameworks didn’t exist yet. So we wrote our own framework called Luna, believing that we could incrementally make it faster over time.
As our user base has grown, with more people putting more of their work into Asana, and as we look to scale to millions of people, it’s become especially critical for us to bring the app’s performance to where it needs to be. We know that teams of all sizes—but especially those of you in large Organizations—aren’t seeing the quick loading times you need, and we’re making it our priority to solve this in 2016.
In fact, we’ve been committed to this for a while behind the scenes, but 2016 is the year that you’ll experience a much, much faster Asana. For over a year, we’ve been working on Luna2: the long-term solution for solving the app’s current performance challenges and for enhancing our ability to scale to many more teams in the future. We’re almost ready to ship components of the new framework that will significantly improve several areas of the app.
What’s going to change, and when
In the near term, some core Asana actions—like switching between projects and viewing different tasks within a project—will become much speedier.
As with any major change to the codebase, we’ll be rolling this out gradually so that we can monitor the app’s stability and make fixes before turning on these changes for everyone. We hope to release the first big set of improvements over the summer. As the year progresses, additional actions—like loading calendars and conversations—will get faster as well.
“It’s a massive project, and it’s our highest priority.”
An important part of this effort is to increase the overall speed of page loads, which requires us to convert almost everything in Asana to our new framework. It’s a massive project, and it’s our highest priority.
Our performance goals
As part of our company-wide process for setting objectives, we’ve laid out some specific and measurable performance goals:
- Make project switching 4x faster
- Make task switching at least 3x faster
- Make searches 4x faster
- Make page loads 6x faster
We chose these goals because we think they represent a product experience that will meet your needs and expectations—and because we believe they’re achievable. In fact, we often talk about these goals as representing an experience “as fast as Gmail,” since that is widely recognized as a fast app for common actions. We know that delivering a product that feels as fast as Gmail will dramatically improve the experience of using Asana, and we expect to speed up most core actions this year.
The team to do it
A majority of our engineers are currently working on performance. We have four technical teams devoted to converting different parts of the product to Luna2, with tight deadlines for getting the app running on the new framework. There are many dependencies between these teams, so there are risks to the timeline. But we’re confident we have one of the best teams ever assembled for succeeding in this kind of work.
With each performance-related task (tracked in Asana, of course) that’s completed, we’re getting one step closer to our end goal: a faster Asana experience for every team doing great things together. We look forward to sharing the fruits of our labor with you this year.