React's Laws of Successful Change

Why couldn’t this have been discovered 30year ago? - Dan Abramov

How do we make ideas survive and realize better outcomes sooner? I often find myself searching for the answers to this and the preceeding question above. Answering these for a project, team, or a business is fundamental to achieving transformation.

Today, we live in a vastly complex and highly dynamic world that is filled with change and expectations of even more change to come. Why is this a reality? It is because the people we socialize with and serve have changed and are changing. Our generation demands instant gratification, rich and interactive experiences with high levels of engagement as well as constant updates and improvements. All of us collectively want the physical and the virtual world to operate like the apps on our phones!

The new paradigm means we must transform how things are done to thrive in this age. Essentially, the ability to learn and execute (through apps and their features and as a team or organization) faster than everyone else becomes the only real competitive differentiator. Ultimately the transformational experiences are powered by these digital apps that we are all racing to build and improve. Digital apps are the delivery vehicles for the modern services we consume and they have become increasingly complex as they continually add features thus making it challenging to update them rapidly and frequently.  Therefore, any toolset that amplifies our ability to move fast while  managing high degrees of complexity are powerful catalysts. They provide a superpower of sorts. Hence, the birth of tools like React that gifts these powers to every developer are massively important events.

Software has eaten the world and chosing the right tech stack matters immensely in determining whether you can innovate quickly. This is why I was so excited to watch the Honeypot documentary on React. React is one such tech stack that has allowed both Facebook and Netflix amongst many others to really execute at scale and speed. It is the #1 JavaScript framework for a reason.

However, while the technology is amazing and the story and the characters behind it's development were quite inspiring I was really surprised by the other non technical core activities, events, organizational dynamics, and pivotal decisions that were essential in propelling React to success.  In my conversations with engineering teams and other leaders they often overlook these activities or try to bolt them on at the end. What this documentary showed clearly is how important it is that these are baked in from the very start and also executed by even the most behind the scenes technical person that is a part of the team. If any one of these pieces were missed the changes of React actually being what it is today would have shrank dramatically. Below are the laws of success that I discovered from the story of React told in the documentary.

You have to be willing to Sell. Sell. Sell.

Firstly, selling is a must. Every person involved must be willing to sell their ideas and present them in a convincing manner even the most hardcore techies. To innovate we must convince people to adopt the change. Great ideas don't sell themselves unfortunately. The bigger the change the more selling is required.

If you want to spread an idea you have to really convince a few people and not just be shouting it yourself

A real "bingo" moment for me when watching this feature was the scene where Lee Byron in his role as an Engineering Manager is having a meeting to basically kill the project and get Jordan Walke to focus on work that is more immediately beneficial to Facebook. You see, React at the time was nothing more than a time consuming side project. Jordan's ability to sell his idea for React was so convincing that instead of being a dead side project he was able to keep it alive and give the project more time to grow. In my opinion it is the attitude that Jordan took of sharing his enthusiam and being prepared to sell the idea up that won the day.

Most engineers have projects that get halted early because they think it is beneath them to sell their ideas. They expect by that by the miracle of osmosis everyone will magically see clearly the brilliance of what they are working on. In reality it doesn't work that way.

In fact, even after React was already delivering value and benefiting Facebook internally the team still had to continue to sell the idea externally which resulted in the infamous JSConf presentations.

Competition pushes things forward faster

Those of us who grew up in a capitalist system or are more right leaning politically instinctively know this. Nevertheless, even if you come from a different background or have other beliefs, there is some core truth to the idea that competitive forces push humans to deliver better results. "Necessity may be the mother of invention" but competition really refines and vastly improves quality of innovation.

This is demonstrated really clearly in this documentary as React was the new upstart and competing against already established technologies such as backbone.js and boltjs. React had to quickly improve as it was being compared against the existing technology stack and it had to show that it could handle complexity as well as deliver performance on a scale that was equal to or better than the alternatives especially given the sceptism brought on by its at the time novel functional approach to UI development.

You can see this play our perfectly in the scene at 23:17 in the documentary when a decision had to be taken on the future technology stack for the Ads product. Competition was again also the deciding factor in Netflix adopting the technology when they pitted two teams against each other to deliver a prototype of the new design at minute 55:25. React came out on top in both instances and lived to fight another day. Today we see competition playing out within the React ecosystem itself between Next.js and Remix. There also exists continous competition between React and other frameworks in JavaScript such as with Vue.js and Svelte amongst others.

Without competition, we would often make the wrong decisions or deliver poorer outcomes.

No sacred cows. Be Bold and Slaughter them when necessary

Some people say never rewrite but this documentary showed that Facebook actually continues to rewrite its core products from the Ads Manager, Messaging, to the Newsfeed, and Instagram continuously. We must not fear rethinking established practices and avoid being dogmatic. Transformation means you cannot be satisfied with the status quo.

It is pretty powerful to have the willingness to pause or make major changes to "sacred" or mission critical systems or way of doing things. Facebook did this using React, it paused the releases of the Ads Manager for 4 months to do a rewrite which is something people say "you should never do." This allowed them to execute faster in the long run but the most impressive part of this story is that this was the main money maker and also they did it when the IPO price had taken a nose dive. What a time to get radical!

That takes guts. Watch minute 28:40.

Be persistent

Change can be jarring. Our reception to "New" can be very bad at first. When this happens it is easy to quit if we don't get the reaction we anticipated from others. The lesson here is that if you believe in the benefits of something don't give up easily or quickly. Try again and then again.

When I first saw JSX I thought it was awful too (and I saw it years late) and I wasn't the only one. I was thinking why would I want to put a blob of markup in the middle of my beautiful code???

I thought as Sophie did that I would be calling ReactDOM functions quite a bit instead of sticking that markup everywhere.

However, it turns out that the JSX markup is actually great! I never use ReactDOM directly. I didn't see the first JSConf presentation by the team when I was researching React and comparing it to the other UI frameworks but I certainly watched Pete's JSConf EU presentation that he describes at minute 49:21 and it was very convincing.

Thinking different has it's own appeal. That video presentation did it for me and I gave it a try. However, had the team not tried again with JSConf EU and had Pete not gone for it maybe nobody would be using React today outside of Facebook.

Build a community if you want to grow

Finally, it is important to build a community. Many companies doing Digital transformation or major changes find it very helpful to develop a ecosystem around the core change.

React's growth is largely due to the fact that they out of necessity didn't get too opinionated and left a lot of scope for others to fill the gaps. Key to this was that they realized from early that open source projects won't maintain themselves and that the project needed to be approachable and have well written documentation. This engagement work was equally as important as the technical work of building the core libraries.

Open up the APIs, write good documentation, encourage outsiders to contribute and who knows even invite them to your own internal meetings. Kick start that ecosystem and build partnerships.

These 5 principles are my new laws for Digital Transformation and must be a part of every plan in my opinion.