UI First Release Strategy
May 17, 2021 -
You‘ve got to start with the customer experience and work backwards to the technology- Steve Jobs
Yes, and to build the customer experience, user experience & the interface plays a vital role. It is this what Customer sees first...now how can we address this better?
The Challenge (What)
Technology today is changing at a rapid pace and so customer demands. Customers today does not want to wait for 6 months to 1 years to see the final product. They want it soon and right now.
What are the Options? (Why)
Yes, I know at this stage what's your mind is thinking? AGILE. Yes, Agile methodology arrived specifically to address the faster release part through progressive delivery. We don't have to talk more on that, as you must already have more insights about Agile. But, by just using Agile does it address our goal?
Sometimes Agile projects do fail, when the end user experience is not met & there were cases where entire project was wiped out due to miss alignment of user experience with customer
I am sure you all agree to this? One of the key principle of Agile is Customer Engagement right from the start till go live, but how often it is practiced?
The utmost thing is the user experience, to have the most useful experience - Marissa Mayer
You know now, why even Agile project can fail if you we don't give a useful experience to users (customers). Yahoo may have gone down w.r.to usage on search, emails with other competitors, but their mobile apps user experience is top notch and won several awards at Apple & more. You can see it yourselves too
So, how do we engage our customers better and provide that useful experience and make the project successful?
The Solution (How)
Before we go any further, it is apparent that we look at optimising delivery methodology in a way that many work get done in-parallel in isolated yet integrated manner.
UI First
Most of our apps follows layered architecture & keeps it isolated, or at least the UI Layer is separated from the back-end. Now, rather having a single build parallel tracks, let us separate out UI & Back-end services and run as two separate tracks with dedicated teams. Look at the picture above to give a perspective of what I am talking about. You can even separate out UI further into Views track & Services/Model track with the help of JS frameworks like React, Angular.