Moving a Team from React to Svelte
Tags: svelte, react, watercooler
Published: 2022-11-05 09:46:14

Hey, I'm Chris.

I'm the Director of Engineering at XtendOps, but that's boring. I'll introduce myself later.

I want to talk about Developer Experience. We all have a feel for what that means and it's easy to talk about if you're a developer. The old saying goes, do things to make your developers' lives easier and you'll have better software.

We take for granted that good Developer Experience leads to better software. The weird thing is I recently found myself stumbling to describe exactly how to the Leadership at my company. 

How does Developer Experience translate to better software? What does the business experience? Is Business Experience a thing? What does this have to do with Svelte and React?

## Hey, I'm Chris.

I'm a translator at XtendOps. I translate the Business' needs to the Developers and the Developers' needs to the Business. (I wasn't sure about the apostrophes)

Let's start with a story. I just came from a 2 week trip to Las Vegas and Mexico. We had a conference in Vegas which was a bit of a coming out party for our company. We help run support for companies like HelloFresh and J. Crew, and we are scaling rapidly.

After drumming up new business, we went to our offices in Mexico for Leadership meetings. Sounds boring but I got to use a big glass window overlooking the Pacific Ocean as a whiteboard. We were planning out our next 6 months with the CEO and VPs. Post Covid, you tend to forget what developing in an office with other people is like.

The conversation turned to why we chose to operate in Svelte back in October and that's when I brought up Developer Experience. They looked at me blankly.

I looked back at them blankly. 

I mean come on, you want your developers to have a good experience right? Am I right?

## The Revelation

The business doesn't care about Developer Experience. Not in isolation and not for the sake of the developers.

The business does care about outcomes and at the end of the day outcomes are Business Experience. Its through this lense I want to look at moving from React to Svelte.

## Hey, I'm Chris

I care deeply about Developer Experience (DX) and Business Experience (BX), and that's why we chose Svelte.

### Conciseness

One of the huge joys of using Svelte is the conciseness of its API. IMHO it provides just enough of an interface to get the job done without bloating your mental landscape of the application with unnecessary abstraction.

> Your code is your understanding of the problem you're exploring. So it's only when you have your code in your head that you really understand the problem.

Paul Graham: Y Combinator, [Holding a Program in One's Head](http://paulgraham.com/head.html)

We put a lot of emphasis on that mental landscape because I have found the more quickly you can digest a complicated frontend view, the quicker you can modify it.

That feeling you get when you keep reading a component over and over again is an indicator that you have poor abstractions. One thing is not leading to another which means it takes you more cycles to really understand the problem.

The closeness of Svelte to the browser APIs and its readibility are the DX for why we chose Svelte, but how does this translate to BX.

Our experience is that it yields faster delivery time with fewer rewrites because of the language. Clarity here is key and appropriate abstractions have reduced our development Lead Times by about 30-40%

On our first sprint with Svelte, I had chalked it up as a Learning Week. It wasn't going to be about releasing production code that week. (We set aside a whole week of Svelte onboarding giving the team the official Svelte tutorial, example production code, and 2-3 Youtube series.)

The PRs started coming in after a day and a half. My direct manager and I were completely blown away at the speed with which my team picked it up. I think this speaks to the readibility of Svelte and conciseness. 

This revelation completely altered the development Lead Times we were prepared for and we haven't looked back since.

### Why tiny matters?

One of the oft spoken about features of Svelte is its tiny bundle size. It's spoken about in very general terms, without quantifying the impact on individuals. It really does matter for our users.

As an outsourcing company, we hire in the hundreds which means we have thousands of applicants. In addition, our applicants are primarily in Mexico and the Philippines so they are often operating our applications on mobile devices on slower internet compared to the US or Europe.

I've given all of this context to say that our candidates jobs depend on being able to apply anywhere in the world.

You may be wondering why this matters for a simple job application form. I'd be wondering the same thing.

Our clients prize top placements on spoken English and comprehension. With the scale we're operating at, we need to evaluate our candidates before the first interview so we we have custom assessments in the application process.

How does this affect BX then? We need tiny bundles to run on less powerful devices and ensure the greatest number of applicants.

We moved to Svelte a year ago and haven't looked back.

I spoke about this and more at the [Svelte Society London Meetup](https://t.co/n9N5KzQwIB) back in August.

Please let me know if you found this helpful.