The balance between the user experience and maintainability
Tags: design, javascript, webdev, business
Published: 2021-12-02 23:11:20

We are in many ways in a surprising era of programming. From one hand we can provide exceptional experience for the user. On the other hand cost of providing even mediocre feature grown exponentially thanks, among many others, to shift to underdeveloped cloud solutions.

It causes frontend responsibilities shift to fill in data processing gaps of flawed backend and architecture.

Naturally the role of frontend developer becomes more and more technical, rather than human.

With the shift frontend roles become occupied by people with more of a technical skill set that is necessary. But the same influx is not visible from the design perspective.

What happens is that majority of frontend orientation is to solve technical issues rather than take care of the user experience. Even if it is in the focus, it is viewed as a conclusion of what is technically easy to do, something that we do just for the sake of it, after we have combined all the data and made sure we use proper coding rules.

The user in the new perspective is not someone who is the user, person we decide to support with our effort. It is a consumer. A person that consumes what we almost impossibly provided.

A person that has to accept limitations and the fact, that after hundreds of hours of hard work, engineers were able only to provide the bare minimum of expectation.

With the culture of constant MVPs it makes somehow sense to focus on the infrastructure and data mostly. It is the reality we have to face that we choose to use technologies that make things more difficult for long term gains.

Is there still a place for a user centric approach? Do we see a shift to delivery chain approach? It can be compared to an analogy. A user centric approach is a visit to a nice restaurant. Where you feel great eat well and are served nicely. You are in the focus.

In the delivery chain approach it does not happen. A perfect example are delivery services. Aside from all marketing catch phrases, you are not in the focus of being served great. Delivery chain focuses on its own, to move a package from point A to point B in the shortest time and with the best quality and precision… overall. We all know that what overall can be described as a success from a delivery chain perspective is not always satisfactory for us. Especially when the package is not delivered, delivery person is rude, throws package and breaks it.

I must admit shift to delivery chain model bothers me. Because it does not mean only that the architecture and data flow is becoming further away from users. But because this attitude of ignoring end user shifts to the frontend. An area that main role for years, was to wrap all data and features into an exquisite experience.

A role, that is becoming harder and harder to keep when delivery chain model infects frontend development. Delivery chain model does not ignore user, it does not take into account the user exists. Hence, his expectations can be at best ignored, and in worst — misuderstood.

As a person that is for sixteen years a developer — designer it means more and more struggle to do my daily job.

As an advocate of a user’s, business and marketing I have to constantly explain that experience is not a result of a successful delivery.

More orders are result of a great experience.

That throwing package over the fence is not enough, that we have to make that one last step to make sure that when we deliver, we deliver it right.

That technology has almost none limitations, and it should serve humans, not the other way around.

It seems quite obvious but it’s not always. I have worked with some teams that didn’t get it. The result was often a lot of work done, and no business outcomes. Always being in the heat of providing new features, taking care of architecture, about technical aspects, keeping corporate rules etc etc. The work never ended, but from the user perspective nothing happened.

Fortunately, I was working mostly in my career with user centric companies. They shaped who I am today. These companies didn’t ship so often. They put a lot of effort into the user experience. User was always in the focus. Architectures, systems, and code changed to satisfy the user. Make sure his journey and experience is above perfect.

The result was quite honestly similar. Less releases, less stress, common goal, and great metrics. More sales, more corporate customers, more orders. Results that count just a little bit less than a full code coverage.

It is a broad topic and I am sure the article does not cover it as precise and detailed as I wished. But I hope you will find it as an interesting starting point for observations and positioning of your practices.

If you have any observations or questions don’t shy from voicing them. I’d love to hear what you have to say!