I've been on a few projects where I've had to mess with breadcrumbs and they tend to be much more trouble than they're worth. It all starts simply enough: put the users path through the app on the page. Which isn't too hard.
Then the bugs come.
Like: "This page is linked to from page A but it really is more of a child of page B so the breadcrumbs should show page B and not A even if they come from A"
Or: "When I come to page X from the search on the front page it should have breadcrumbs with Y and Z because that's really what it's under."
And: "Page L is listed under K but should be under M (followed a few days later by) Page L is listed under M but should be under K"
Oh, you want a hierarchy. Which is hard.
First: There's now a new job to be filled: Taxonomist. Somebody is going to have to figure out where all the pages in the app fit in some sort of tree. And this list must be maintained.
Second: There must be code that manages all this. And since there are always exceptions to the rules of hierarchy it can get quite complicated.
Third: Although your customers don't really care where the page fits in the hierarchy, everyone else in the business does. A lot. So much so that there will be many (perhaps endless) arguments about exactly where things "belong."
All this will take plenty of time that could be used doing something that, you know, your customers may actually need. I guess I really don't have too much problem with "true" breadcrumbs (aside from the fact that I never use them and they're kind of a relic from the days of "Wow the internet is so complicated people will get lost!" and they can probably be replaced with a good search box) but what I really hate is when they act as a gateway drug to hierarchy.
Subscribe to:
Post Comments (Atom)
About Me
Backstop Solutions (current job)
Obtiva (old job)
ThoughtWorks (old job)
Object Mentor (apprentice)
Apprenticeship at Object Mentor Blog
Obtiva (old job)
ThoughtWorks (old job)
Object Mentor (apprentice)
Apprenticeship at Object Mentor Blog
Blog Archive
- August 2012 (1)
- December 2010 (1)
- August 2010 (3)
- July 2010 (5)
- June 2010 (4)
- May 2010 (4)
- August 2009 (21)
- July 2009 (22)
- June 2009 (19)
- May 2009 (12)
- April 2009 (12)
- March 2009 (4)
- January 2009 (1)
- December 2008 (1)
- November 2008 (12)
- October 2008 (2)
- September 2008 (10)
- August 2008 (5)
- June 2008 (3)
- May 2008 (3)
- April 2008 (2)
- March 2008 (3)
- February 2008 (2)
- January 2008 (5)
- November 2007 (1)
- October 2007 (1)
- September 2007 (1)
- August 2007 (6)
- July 2007 (3)
- June 2007 (4)
- May 2007 (5)
- April 2007 (4)
- March 2007 (10)
- February 2007 (13)
- January 2007 (7)
Categories-
- Code (61)
- Apprenticeship (57)
- Rails (53)
- commentary (48)
- Ruby (31)
- RSpec (20)
- Metrics (17)
- metric_fu (13)
- Flog (9)
- complexity (9)
- testing (9)
- RailsConf2009 (8)
- git (8)
- RubyConf2008 (7)
- test_coverage (7)
- Bugs (6)
- Mocking (6)
- craftsman_swap (6)
- not_code (6)
- Agile2009 (5)
- Amazon (5)
- refactoring (5)
- ActiveRecord (4)
- JRuby (4)
- Linux (4)
- LoneStarRubyConf2008 (4)
- RailsConf2010 (4)
- Saikuro (4)
- XP (4)
- churn (4)
- design (4)
- Fixtures (3)
- LoneStarRubyConf2009 (3)
- Math (3)
- Obtiva (3)
- RailsConf2007 (3)
- Rake (3)
- Rcov (3)
- RubyKaigi2010 (3)
- RubyMidwest2010 (3)
- Svn (3)
- legacy_code (3)
- Flay (2)
- GLSEC (2)
- Mingle (2)
- SQuiD (2)
- TextMate (2)
- Windows (2)
- WindyCityRails (2)
- javascript (2)
- lean (2)
- Backstop (1)
- Bundler (1)
- DUST (1)
- EVDO (1)
- GC (1)
- IO (1)
- MacRuby (1)
- MongoDB (1)
- OSS (1)
- OSX (1)
- Routes (1)
- RubyWorks (1)
- Tomcat (1)
- attachment_fu (1)
- cache-fu (1)
- citcon (1)
- consulting (1)
- craftsmanship (1)
- css (1)
- db (1)
- iPhone (1)
- interview (1)
- mac (1)
- memcached (1)
- memprof (1)
- oracle (1)
- ord_sessions (1)
- ostatus (1)
- pairing (1)
- redis (1)
- restful_authentication (1)
- singleton_class (1)



5 comments:
Truthfully, if you involve an Information Architect at the start of a project to build a proper taxonomy and site structure, you tend not not run into these problems. Yes, it's another body to have to pay but the benefits of a competent IA far outweigh the costs. Plus, you can make the IAs fight the good fight on organizing a site properly so that breadcrumbs aren't necessary at all.
I recently worked with breadcrumbs in the Radiant CMS. That was an easy situation: the CMS is hierarchical and breadcrumbs were just following were the page was in the tree. No hassle for the programmer. So the tree was implicitly maintained by who was managing the content. But I agree with you: if there are exceptions maybe tagging is a better solution. All the business people can be accommodated when there is no common agreement on the hierarchy: put another tag. I also agree on the fact that too much time spent on breadcrumbs is a bad smell: poorly designed web site or an upgrade to a tagging system required.
breadcrumbs work great for browsing product catalogs or for sites like ebay when searching for things to buy within obvious predefined groups.
that's about the only time I use them. that and sometimes large project wikis.
it's important to understand that there are multiple "versions" of breadcrumb navigation
http://en.wikipedia.org/wiki/Breadcrumb_(navigation)
I personally think the the "path" version suits the term breadcrumb best. And I think it's quite a useless feature since you can just use your back button
I agree with you. Tags, tag clouds (or lists) and a search box are a more powerful combination.
About the Wikipedia article:
Nobody needs the Path version. The browser already has this. The Location is the most common, and totally sucks. And the Attribute uses tags (or categories). That's useful. A lot of blogs have this below the post title.
Post a Comment