Now I understand 'bleeding edge'

Over the past couple months, we’ve been consolidating technologies across the various offices. One of the key pieces of this has been the selection of a front-end architecture/framework across the organization.

Getting together

In early June, developers from across all the engineering sites (Boston, Boulder, Tucuman, Minnetonka) gathered to discuss options for a go-forward frontend architecture.

A couple of the sites had previously been doing React, and a couple of the sites had been doing ng1. While there are a lot of points to the discussion that occurred, the end result after a couple of days was that we decided to move forward with ng2. It is important to note here that ng2 was already at RC1 at this point in time.

The bleeding starts

No one on the team really had any issues with the actual technology piece of ng2. We all were onboard that we wanted uni-directional data flow (in this case, redux). We all agreed that having smaller components was better than monolithic “pages”.

The issue really is one of timing - we chose to go forward with ng2 in June 2016 (I think it may have been the week before RC2 was released). In rapid succession we received RC2, RC3, and RC4. In a couple months we would end up going through RC5 and RC6 as well.

The shifting sands of the API was one thing - but we (as an architect team) were also short on answers for frameworks and tools to use. Rich component libraries like Bootstrap and MaterialUI are, as of writing, still in beta. Contrast this with React - where there is not one, but three implementations of MaterialUI components.

Newer engineers found it difficult to source accurate information. There were no “real” best practices in place yet.1

In the end - it just turned out to be poor timing for us to have chosen ng2. Summer 2017? Yeah, might have turned out differently. We regrouped, shifted focus, and plowed forward with React.

Hopefully you have the same problem someday

This is a cautionary tale for teams that are experiencing a lot of growth all at once. Maybe because you were acquired. Maybe because the company is doing awesome. Doesn’t really matter.

You may not yet be used to selling decisions to more than the five senior folks who have literally built everything. You may not yet be used to thinking about the training impact for developers that have no subject-matter-expert on their immediate team. You may be used to plowing through the pain if you see enough upside down the road.

Just beware the bleeding edge.

  1. All problems we experienced when adopting React back in the day as well. [return]