I’d been leading a team of Front End Developers for years when the opportunity to come work for Enova came up. Shifting from a Director role to Principal Engineer might seem unusual to some but I couldn’t resist. I like a challenge, and there are multitudes here to conquer. They’d been looking for a Principal User Interface Engineer for a while to polish the Front End. But of course it’s not wise to take on the unconquerable. With smart and engaged staff, anything is possible. Since Enova has both, I dove in.
Joining at a time of transition has been interesting. We’re in the midst of untangling some rather complex monoliths into Services, essential work if Front End work will ever be successful in the modern definition. A Performance team was built shortly before my arrival — another essential component for UI success.
So what are the challenges here: We have a number of sites each with its own Front End. So far as I’ve found, they’re all tightly wound into the aforementioned monolithic Rails apps that each site is built on. Every site has lots of its own everything. Shared components exist in some limited contexts, but not done in a readily maintainable way. While I appreciate how it happened I can’t imagine I’ve done a very good job if we’re still in the same state a year from now.
Like the sound mission statement and values for the company, good UI thrives on first principles. That’s my starting point. After being here for a few months I have a good sense of what I (and we) are going to do.
So what I am going to do about it?
I don’t have a team reporting to me. I was brought in to shape our UI direction and I have to build relationships across the company, in Technology, Marketing, and Product to get there.
The first step taken was to work on a Mission Statement — a call to arms that UI-focused Engineers can rally to and use to justify their decisions. It’s currently PACE – Performant, Accessible, Compelling, Enterprise. Each of those core beliefs is explained further with additional links to resources regarding their merits. I say the call to arms is currently PACE because I’ve asked the UI Engineers to review and make revisions if desired. I’ve already received great feedback on some of the aspects of each of the 4 beliefs of what makes a great UI, and revisions have been made accordingly. There hasn’t been a request to add an additional core…yet.
Next was the roadmap, and then some ideas regarding how we were going to get from where we are to the next place. The next place isn’t in any way revolutionary or ‘bleeding edge’. There are a few bigger companies out there that have already built what’s in our immediate future — now it’s our time. Documented, unit tested components deliverable to any application that might need them is where we’re going.
All of this is captured in a Wiki and editable by the team. We’re currently defining Standards in order to give us a foundation to drive the rest of our initiatives from. Committees will begin work to achieve defined objectives once that’s all settled.
Without a team reporting to me it may take a bit more time. Organized as such and moving forward with commonly-agreed-upon notions is going to build a best-in-class experience. Slow and steady still wins races. It’ll be a journey to get there, and I’m excited for the trip.