3 ms·
We need to treat GUI as a specification and a contract to the users. With APIs, we version them, we're incredible careful to not break the client's code. If the
by neilpanchal 6y ago
We need to treat GUI as a specification and a contract to the users. With APIs, we version them, we're incredible careful to not break the client's code. If there is a new change, we'd create `v2/foo` to access resource foo while still maintaining v1.
I think graphical interfaces are exactly the same. Instead of `GET` request, it's our eye balls consuming data from a 2D space of a computer monitor. Whenever GUIs break, we suffer from the disparity between expectation and what we're seeing. Breaking GUIs should be treated with the same level of rigor and respect as REST APIs (and other specifications/contracts).
- kodah 6y agoMy team does this. We don't really track the layout of a GUI (read: web, desktop, or CLI) but we do track inputs, output, and behavior. That said, it is very expensive to do this in terms of time and the amount of overhead it will add to each iteration of the SDLC so I can see why teams would rather not.
- andrepd 6y agoOh my god, thanks for articulating my feelings and frustration in this way. I'm gonna steal the "GUI is an API for the user" line.
- kbenson 6y agoI think an interface that could be defined and iterated on is what Mozilla used to have with their chrome UI specification layer, and I think they mothballed that a few years ago? At least I think it was called chrome, it's not exactly easily searchable anymore. Edit: Actually, I think I'm thinking of XUL? I'm not sure how much it's still the standard for Mozilla UI specification or not.