"From Pattern to Component" - Tyler Tate at Lightning UX
Over the last few blog posts I've been sharing the notes I took at last week's Lightning UX event organised and hosted by Lee McIvor. So far I've blogged about "Dark patterns" by Harry Brignull, "The dip" by Cennydd Bowles, Boon Chew's talk "How a developer became a UX designer", and Jonathan Kahn talking about "Why content strategy is a big deal for UX professionals". Today it is the turn of Tyler Tate's talk about UI components.
"From Pattern to Component" - Tyler Tate
Tyler Tate's premise was that we need to move to more industrial scale production of digital sites and services. Citing the way that Henry Ford shifted motoring production from 500-or-so cars a year in 1899 to 10,000 a day by Ford in the 1920s, Tyler thinks we need to make more use of UI components.
Large sites can get very complex quite quickly. We have literally hundreds of different components making up the pages of guardian.co.uk. These can be configured according to a whole set of criteria, including the tagging metadata applied to the content on the page, and the status of the user.
When people want to make new ones, I always like to try and look them in the eye and warn them that kittens will die if they commission unnecessary duplication.
That means having components with a lot of flexibility, but of course, flexibility brings complexity, potentially both in the component code itself, and in the CMS that needs to be used to configure it.
Tyler identified five key qualities of good re-usable UI components:
- sound design that meets the needs of users
- clean code
- ready to use, with one line of code being ideal
- easy to configure
- well documented
Interestingly, the last point slightly mitigates against the agile development of components, since the agile manifesto values working code over documentation. [UPDATED: Tyler addresses this point in a comment below]
Tylor name checked Yahoo!'s YUI library, jQuery and his own Twigkit as existing component based systems worth investigating.
You can watch Tyler's talk on video - From Pattern to Component - and he has also made the slides available.
Thanks for the write-up Martin! I just wanted to clarify the documentation point. In the waterfall vs. agile debate, "documentation" is the term we use for specifying the desired functionality of a tool *before* it is created, and I agree that in this context, specifications are overrated.
For components, however, documentation is needed *after* the component has been created so that others can actually figure out how to use it for themselves.