Episode #102 Reusable Components & Libraries with Nathan Curtis
Jared Spool chats with Nathan Curtis about the reuse and standardization of components that make up your web site.
If your site has more than one page, chances are you have repeated elements: Repeated interface elements, repeated design patterns, repeated code snippets. When you multiply your responsibilities over a large site and involve many designers, developers, and stakeholders, how do you make sure you're not wasting your time building many widgets that already exist? That's where a standardization process comes into play.
Nathan Curtis and the crew at EightShapes are the leaders in standards, reuse, consistency, and libraries. In this podcast, Jared Spool speaks with Nathan in anticipation of his workshop on this topic at the 2010 User Interface Conference.
(Side note: in this context "standards" are different than "web standards", though completely compatible.)
When do you know if you need a component library? Nathan says the idea often surfaces when designers and developers start chatting about their collaborations. When many people are touching the design, the idea to reuse components comes up quickly. Standardizing on certain page components, for example, helps in many ways. It prevents double work and keeps the experience across sites (especially large sites) consistent. Certain items, say a calendar picker on a travel site, are especially useful to reuse.
While the creation of a library is useful and efficient in many ways, storing the components isn't free. It requires a manpower commitment and possible software purchases or provisioning. Nathan says to do it right, you should treat it as if it were another project on your team's plate. But once committed, you can focus on the quality of the components. If you have 18 different video players across your site, someone can take the time to discover which ones work best and then improve the experience across the site.
Beware of how you maintain your library, Nathan warns. If you let it get too out of date, it'll lose its credibility and people will begin to stray. If you can't ensure the library will be faithfully maintained, make sure only your critical items are in the library. Prioritize for the components that have the most effect on the User Experience.