Thursday, July 10, 2014

The Life(Cycles) of UX/UI Development

It recently occurred to me that not one of the dozens and dozens of user interfaces I've worked on over the years, had the same methodology/lifecycle.  Many of those were results of the environments under which they were constructed: startup, BIG company, government contract, side-project, open-source, freelance, etc.  But the technology also played a part in choosing the methodology we used.

Consider the evolution of UI technology for a moment.  Back in the early days of unix/x-windows, UI development was a grind.  It wasn't easy to relocate controls and re-organize interactions.  Because of that, we were forced to first spend some time with a napkin and a sharpie, and run that napkin around to get feedback, etc.   The "UX" cycle was born.

Then came along things like Visual Basic/C++ and WYSIWIG development.  The UI design was literally the application.  Drag a button here.  Double click.  Add some logic.  Presto, instant prototype...  and application.  You could immediately get feedback on the look and feel, etc.  It was easy to relocate, reorganize things and react to user feedback.   What happened to the "UX" cycle?  It collapsed into the development cycle.  The discipline wasn't lost, it was just done differently, using the same tools/framework used for development.

Then, thanks to Mr.Gore, the world-wide web was invented, bringing HTML along with it.  I'm talking early here, the days of HTML sans javascript frameworks. (horror to think!)  UI development was thrown back into the stone ages.  You needed to make sure you got your site right, because adjusting look and feel often meant "rewrite" the entire web site/application.  Many of the "roundtrip" interactions and MVC framework, even though physically separated from the browser,  was entwined in the flow/logic of the UI.  (Spring Web Flow anyone? http://projects.spring.io/spring-webflow/)

In such a world, again -- you wanted to make sure you got it right, because adjustments were costly.   Fortunately, in the meantime the UX discipline and their tools had advanced.  It wasn't just about information display, it was about optimizing the interactions.  The tools were able to not only play with look, but they could focus on and mock out feel.   We could do a full UX design cycle before any code was written.  Way cool.  Once blessed, the design is/was handed off to the development team, and implementation began.

Fast forward to present day.  JavaScript frameworks have come a long way.  I now know people that can mockup user experience *in code*, faster and more flexibly than the traditional wire-framing tools.  This presents an opportunity to once again collapse the toolset and smooth the design/development process into one cohesive, ongoing process instead of the somewhat disconnected, one-time traditional handoff.

I liken this to the shift that took place years ago for application design.   We used to sit down and draw out the application architecture and the design before coding: class hierarchies, sequence diagrams, etc. (Rational Rose and UML anyone?). But once the IDE's advanced enough, it became faster to code the design than to draw it out.   The disciplines of architecture and design didn't go away, they are just done differently now.

Likewise with UX.  User experience and design are still of paramount importance.  And that needs to include user research, coordination with marketing, etc.  But can we change the toolset at this point, so the design and development can be unified as one?  If so, imagine the smoothed, accelerated design->development->delivery (repeat) process we could construct!

For an innovative company like ours, that depends heavily on time-to-market, that accelerated process is worth a ton.  We'll pay extra to get resources that can bridge that gap between UX and development, and play in both worlds.  (Provided we don't need to sacrifice on either!)

On that note, if you think you match that persona.  Let me know.   We have a spot for you. :)
And if you are a UXer, it might be worth playing around with angular and bootstrap to see how easy things have become. We don't mind on the job training. ;)







No comments: