Several debates on architecture overlap. At a first glance they could be treated as a whole, isolated from the rest, but when we go deep on them we discover that they are actually part of a major discussion
Endless struggles for high cohesion, low coupling, reasonable reusability or complexity reduction -just to mention some-, they actually want to conquer a same land: inexpensive development and later maintenance. A predictable, under budget, Software Development Life Cycle (SDLC)
However, those battles have given place to several strategies along the last decades: from the, nowadays old fashioned, Remote Procedure Call (RPC) to the updated Service-Orientation (SO), mentioning CORBA and some other casualties along the way. From another perspective, the Model-View-Controller (MVC) architecture pattern and its derivatives (including the most evolved Model-View-Presenter, or MVP) are again another attempt to achieve similar things: low coupling, a possible reusability of a same model between different applications, etc. While MVC/MVP aren't an alternative to SO, the later actually complements the former in what respect to accessing the model. Although they looked as belonging to two different camps, what is evident is the fact that both techniques were intended to decrease the cost of developing software
The architectural landscape is plenty of examples like this one
User eXperience (UX) is probably another topic that, treated in isolation, seems to be self-contained but when you double-click on it there's (happily) a lot of other architectural concepts that are clearly related with. So let me tell first how this thought was initiated, and later I'll show you how almost all in Software Architecture, sooner or later, attempts to provide a better experience for users
A friend of mine, architect he, found me in a book store some months ago. I was checking a stack of books on UX, so he asked me if I was about to design UIs for some applications and needed to improve my skills. That wasn't false, I mean, my UI design skills are actually very poor, but the real reason I was checking on UX (let's observe I didn't say UI but UX) was because I was to spend the next months analyzing and writing architecture recommendations on UX. He seemed a bit disappointed about that, as he let me know: on his view, the architectural story on UX is very short, "just have some graphical designers doing the UI with usability concepts in mind, some developers coding the behavior... and it's done! The rest is solutions architecture as usual. How much more can you say about that? Maybe, updating the speech to the current line of products, you can mention Microsoft Expression for UI designers, Visual Studio 2008 for developers, XAML as lingua franca for both and that's all, folks!"
Before going ahead ask yourself, honestly, do you realize why my friend's point of view is a simplistic one? Do you, instead of that, share his view? If that is the case, I hope I can change your mind in what follows
The first misconception that leads to opinions like the previous one is considering that User eXperience (UX) is all about the User Interface (UI). Actually the opposite is likely to be right in the sense that UI is a very important part (surely not the only one) of UX. Probably UI's importance among other disciplines affecting UX is due to the fact that any decision, any change in the interface is immediately perceived (even if we just display the interface, without actually using the application it belongs to) with all our human senses (mostly, our vision and tact)
If we interpose a cache in order to reduce some network latency originated on front-end / back-end round trips, the experience of using our application will be enhanced as we won't wait anymore for those most common (and thus, already cached) queries. However, that improvement didn't involve any change in the user interface
Next, I'll enlist a series of nowadays trends, debates and disciplines in Software Architecture, showing how the search for a better User eXperience is, in last instance, a motivator of those
The list could follow. Summarizing all as final words for Software Architects, there's a lot to do from our side to help our applications get a better (if not the best) User eXperience. As we could see in the list above (for sure incomplete) every architectural decision we take affects positively or negatively the experience that our applications offer to our users (customers, employees at our same organization, etc). Therefore, from our perspective (the one of Software Architects), studying UX-related issues is not just getting a state of the art on UI technologies and innovative devices, but actually understanding how they fit in the general picture (if they do). Complemented with the remaining current debates on Enterprise Architecture, we must extract conclusions on how the UX is affected by all those, in order to take better decisions for our next releases
Clearly a long road to traverse. With this first I inaugurate a series of blog posts on User eXperience (UX)... for Architects, 'course!!
PingBack from http://www.artofbam.com/wordpress/?p=5323