Skip to content

Instantly share code, notes, and snippets.

@collinsrj
Created May 11, 2017 06:50
Show Gist options
  • Save collinsrj/504fab348928223f6dc1561656fc5770 to your computer and use it in GitHub Desktop.
Save collinsrj/504fab348928223f6dc1561656fc5770 to your computer and use it in GitHub Desktop.

I work for IBM, on a very large, mature enterprise product. My role is technical architect, I was tasked with building a new application for consumers. By consumers, I mean systems real people interact with, not those employees of a business paid to use it. This wasn't something which had been done before for the product.

We faced two big challenges. We had to deliver an application which would work well across all platforms and my team were a a set of native iOS developers. The second was I strongly believed that the existing framework for web UI development would not deliver the great experiences required by our customer.

Addressing the team issue was not a big hurdle. We had already been looking at web applications to expand our reach. It didn't take too much convincing. The team were used to change, we'd been working in the Swift programming language following the latest builds and language changes.

The enterprise product had a long established way of building user interfaces. For end users, it resulted in bloated pages which were slow to load. The designers were really restricted by old patterns and a stale widget set. It wasn't responsive on mobile devices. It used a proprietary templating language which left developers feeling stale in their skills.

Changing a pattern of development was hugely challenging. The larger group was very invested in their ways. They strongly believed that it wasn't possible for a small group to deliver a web interface which met all the non-functional requirements like localisation and accessibility.

We felt we could and we did. Using many pieces of the React ecosystem we built something really great, that demoed really well.

For me, this story is not about building a new user interface. It's about change in a large company. Change in large company requires persistence. Many times I questioned why we were swimming against the stream. It would have been much easier to stop and fallback to the old system. We kept going, anticipating issues where we could, dealing with those we could not.

Change required buy-in from others. To get this, it was not enough to describe or show change. That change had to be significantly better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment