4

How does the choice of database transaction models: ACID (Atomicity, Consistency, Isolation, Duratbility) or BASE (Basic Availability, Soft State and Eventual Consistency) affect UX design?

Can someone share an example of how choosing one of these database models makes difference in user experience design?

  • 1
    Why not combine the two and use SALT? – user82294 Apr 15 '16 at 2:00
  • @TheBrownOne how does it work? – gurvinder372 Apr 16 '16 at 11:33
  • The comment was a chemistry joke, sorry. If you mix an acid and a base, you get a salt – user82294 Apr 16 '16 at 19:19
  • SALT can potentially stand for Simple, Available, Logical and Tested :) – Michael Lai Nov 1 at 0:16
3
+50

Database design is critical!

As are all architectural decisions. This is why a software architect should be a part of the UXD process.

The choice of back-end architecture isn't something the UXD can decide, but user-facing factors can be evaluated from a UX perspective.

These database considerations will impact product experience:

  • Is the product highly transactional?
  • Is "dirty data" a major concern?
  • Will transformations of the data be heavily queried against?
  • Is confidence or speed a greater concern?
  • Are there legacy or third-party back-ends to integrate with?
  • ... etc ...

^ All of those factors will impact the responsiveness of the interface and the trust established with the user.

  • Thanks for your answer. +1 for that. What if the software architect is not part of UXD process? What if UX Researcher has taken longer to define user-facing factors from UX perspective and Software Architect has moved on in the mean time? – gurvinder372 Apr 16 '16 at 6:37
  • @gurvinder372 In the real world, everyone has to take responsibility for the product's experience. IOW, the architect of the system needs to think about how it will be accessed, manipulated, consumed. – plainclothes Apr 16 '16 at 6:41
  • @gurvinder372 I think that UX Designers who are Information Architecture experts would want to look under the hood of the database to understand how to make a logical link between the data structure and how a user consumes information based on their mental model. Therefore it needs to be consistent from a UX perspective and solution architecture perspective. – Michael Lai Nov 1 at 0:17
4

This is an extension to Andrew Martin's answer, and the short comment discussion. I point to Andrew's answer as the short and simple correct answer:

Database construction and manipulation should never affect the UX design.

The rebuttal to Andrew's correct answer is one that we hear all too often:

ground realities are different. Database design and architecture is the first thing that is designed about an app rather than its UX.

But that database design should be part of the UX design. If the database was designed before user needs were defined, it was done too soon.

When Does "UX Design" Start?

User Experience starts at inception of the product. While someone with "User Experience" in their title may not be sitting at the table the experience which will be presented to the user has already started. Knowing the need that the product is solving and how to present that solution is the start of forming your product's user experience.

The problem presented is that, a lot of the time, companies don't quite grasp this. They build an infrastructure around their needs instead of the user's needs. They then try to impose that structure on the user's work flow.

It is the people with "User Experience" in their job title that think of the user first, which is why those people should be part of the conversation from the beginning. Hopefully, people without "UX" in their job title are also thinking of the user.

enter image description here

User Considerations For Databases

To quite a piece of the rebuttal again:

Database design and architecture is the first thing that is designed...

That design is to the user's benefit. That design is defined by the process that started with user's needs at the core. How the user intends to interact with the system should guide how the database is designed and what transaction models should (or shouldn't be used).

To use an API analogy:

Is a RESTful API best, or does it make sense to use a SOAP API?

The two have very distinct advantages under certain situations. What type of API is chosen will absolutely affect the end point UX is several different ways. But the "UX Design" should have guided the decision process to picking which API is most appropriate.

Similarly, what database transaction models to use. What is the user actually doing, and what transaction model fits that best?

"I know it may not sound right to a UX designer"

Here's the thing... a "UX Designer" is a loose term that hasn't been defined in context of this question. Let's, for the sake of argument, apply "UX Designer" to someone who is only working in the "Design" phase of the above image. Someone who "just draws pretty wireframes", so to speak.

It doesn't sound right to that "UX Designer" because that designer should be working under every proper assumption that what is designed on the backend was done with the user's best interest in mind. That designer should be confident that the "UX Researcher" was part of the initial process.

Going back to one of the initial points - even if someone with "UX" in their title was not part of each phase up until now: everything that has been done affects the user, making it all part of the UX design.

The Question, Flipped

How does UX design affect the choice of transaction models ACID or BASE?

From a User Experience perspective, that is the right question to be asking. How does focusing on the user affect the system level choices being made.

It begins with developing the product strategy, followed by analyzing the user needs and their work flows, then defining the application's specifications. Now you have enough information to decide which transaction model is best.

  • 1
    While writing this answer @plainclothes made the very good points of what aspects of a database could affect the user experience. Notice that each of his bullet points are actually user needs! Asking each of those questions should drive the database design, which is part of the greater UX Design process. – Evil Closet Monkey Apr 14 '16 at 18:14
  • Do you have any research, analysis or other supporting documentation to backup the subjectivity within? – Confused Apr 14 '16 at 18:40
  • "Database design and architecture is the first thing that is designed about an app rather than its UX." I can't think of a single time this is the case. I can, however, think of many products and apps that have been designed around the features of databases. Google, for one. – Confused Apr 14 '16 at 18:42
  • 1
    @Confused - If you read my answer again you will see that the quote you are referring to is a rebuttal to Andrew Martin's answer; a quote that I am disputing in the context of database design being a part of the UX design. As for subjective statements I've made, please help me find them so I can address your concerns. The User Centered Design process is well understood in the field of usability and wouldn't generally be considered a subjective concept. – Evil Closet Monkey Apr 14 '16 at 18:49
  • Most hardware and software "design" is the result of attempts to commercially exploit underlying technological developments, both in hardware and software. – Confused Apr 15 '16 at 7:10
3

Database construction and manipulation should never affect the UX design.

The design of the database should facilitate and optimise whatever processes the server-side operations require. As this takes place server-side it should have no impact on client-side and therefore no impact on UX design.

The only possible impact a database could have on UX is if it is returning wrong or incomplete data or if it is slow - Either way these are database design issues and not UX design issues.

  • 6
    should never affect the UX design My friend, ground realities are different. Database design and architecture is the first thing that is designed about an app rather than its UX. I know it may not sound right to a UX designer but it is a reality. – gurvinder372 Apr 11 '16 at 9:29
  • 3
    My comment still stands - Database design should not affect UX – Andrew Martin Apr 11 '16 at 9:34
  • 1
    Correct me if I'm wrong: I think what @AndrewMartin means is that db design should never negatively impact the experience. It's a factor the user should never have to think about, just like the front-end library being used. – plainclothes Apr 14 '16 at 17:31
  • 1
    @gurvinder372 you can also reduce the technology impact on the user experience (which flows into the user interface) by being disciplined with a MVC solution architecture or some hybrid version of it. It is also possible that UX design can impact on the underlying database design, but I believe that data integrity and consistency should take precedence because trust and stability in the application underpins all other user experience enhancements. – Michael Lai Nov 1 at 0:22
3

Delays are significant for UX.

Some solutions and patterns used in UI which work smoothly (feels instantaneous) with BASE to be problematic with ACID due intolerable response delays.

  • But I (metaphorically) work in an environment where data integrity and consistency is absolutely critical. Am I concerned about the delay in transaction requests, over knowing that what I ask of the system is absolutely the correct state of the system? – Evil Closet Monkey Apr 14 '16 at 18:32
  • Thanks, but Delays are not the only significant thing for UX. User's trust in the system (say for something like an ERP) is quite significant. Could you please address that as well? – gurvinder372 Apr 16 '16 at 6:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.