Tuesday, 21 August 2012

The ColdFusion issue tracker

This is just a filler post that I can write this morning on my way to work and finish of before 9am. I started doing part three of my series of articles on CF arrays, but realised I needed CF10 to do the code, and we've only got CF9 on our work PCs. So I'll have to do that one at home.

So, anyway, for most of the life of ColdFusion, neither Allaire nor Macromedia provided a public-facing issue tracker for ColdFusion. I had only just started with CF when it was an Allaire product, and never really had need to investigate bugs (it was safe to assume any bugs that cropped-up were in my own code, not theirs. This is actually generally still the case  ;-). By the time I actually knew what I was doing and knew a CF bug when I saw it all I had by way of communicating this to Macromedia was the "black hole". Or as they'd prefer to call it: the "wish list". This was a simple form that allowed one to enter in a bug or an enhancement request, submit it, and that's the last you'd hear of it. Not an encouraging user experience.

I hasten to add that Macromedia did have a bug tracker for CF.  It was very bloody primitive, but it was there.  Just not exposed to the hoi polloi.  But finally after a fair bit of coercion from various quarters, they put a Flash UI on it (and I mean "Flash" as in the product, not "flash" as in "impressive".  I seriously do not mean to suggest it was in any way "flash"), and exposed it to the public.  Cool.

That said, the UI didn't really hide the fact that the underlying system was the same one I think Noah used to manage issues on the ark, and - as with pretty much every Flash-based UI I had ever seen - it left an awful lot to be desired from a UX perspective.  Why people persist with Flash (not that they will be, any more: phew) in this age of HTML & JS UI frameworks, I have no idea.  But that is a digression.

The UI did an OK job of searching the bug database, but beyond that it was a bit of a UX nightmare.  The colour-scheme was light grey on dark grey (bleah, and not very accessibility-savvy), and no-one had bothered to implement the usual keyboard shortcuts one gets on an HTML page, text wasn't able to be copy and pasted, URLs were no presented as hyperlinks, etc.  All the stuff a browser does by default, but is generally not implemented in Flash UIs unless one puts special effort in to support them.  It was just a pain in the arse to use.  It was such a pain in the arse to use, that Elliott Sprehn (who is one of the more clued-up CF people out there, in my experience) wrote an HTML-based mirror of the official UI.  And it was much better than the official one.  It's still there, but in only points to the old system, not the current one.  I still find it more useful for searching historical bugs than using the current system, that said.

Fortunately this Flash UI has been put to rest. But unfortunately so has the underlying system.  Given I said that system was a bit antiquated, why am I saying "unfortunately"?  Because it's been replaced with a system that is ever more shoddy.  My understanding that this is because this is the system that Adobe uses for all their products, and they wanted to bring CF's bug tracking into that system too.  Fair enough, but it sux for us, the CF community.

If you're not already familiar with the current CF bug tracker, it's here.  If you ever come across a bug in CF, or come up with an enhancement idea: log it.  That's the best way to try to get Adobe to do something about it.  I mention this because I encounter a lot of instances of people wittering on about problems they have with CF, but it does not occur to them to be proactive and raise it with Adobe.  So: raise it first, witter about it second ;-)

The new UI is slightly better than the old one - at least the colour scheme isn't like a set from the Death Star - but it still has some significant problems.

Now... I'm about to do exactly what I suggested on does not do.  I am going to witter on about problems with the Adobe bug system, and I know I have not raised these things with them yet (well: some I have; some other people have).  I will be making sure all these things are raised with them, and I'll cross reference the tickets at the bottom.

The home screen looks like this:

This shows a paginated list of the current search results (by default it shows the stuff you yourself have raised).

There's some things that could stand improvement on this page:
  1. Only the bug ID is a link through to the bug detail. One can click on the rest of the row, and all that does is turn it blue.  Why would one want to turn it blue? (this issue is kinda covered by the two links below in the next point).
  2. One cannot CTRL-CLICK on a ticket reference to open it in a new window.  A webpage UI should not mess with the standard behaviour of the browser.  It should present a web page and let me decide how to interact with it.  Adobe must've implemented this page to actively block this behaviour (given it's default browser behaviour).  Why?  Why would you do that? One cannot use the right-click menu here either.  Suck.  I've raised this as 3123658.  Someone else has too: 2928472.
  3. The columns are sortable, which is good, but they're not filterable, which is a bit of an oversight.  I've got bugs raised for the bug tracker, CF and CFB there.  And multiple versions of CF and CFB.  I should be able to filter this down to to - for examples - to just see the bugs I've raised for CF10...  or the ones marked "NotEnoughTime" (I must buy Adobe a spacebar for Xmas ;-).  Note that the column headings do have what looks like a filter option on them (hover on one and it indicates there's a filter dropdown), but this is a column filter, not a row filter.  Weird.  I've just raised this as 3314405.
  4. If one uses the pagination to move to a page after the first one, then selects an issue, then browser-backs, the page you were on is lost, and you're back to the first page.  Plus any ordering one has done is also lost.  This is sloppy.  Raised as 2903162.
  5. If browsing a bug from a listing, there should be next/prev links on the bug detail page.  Especially if the pagination is broken.  Raised as 3314412.
  6. There's a search box at the top right which one might expect to be able to type anything into and do a "quick search": that's how these sort of top-right searches usually work.  No.  It only allows one to search for a bug ID.  Who the hell remembers bug IDs?  This kinda indicates the UI did not have any UX testing, because surely this would have come out? Raised as 3314408.
Onto the next page: the search screen.

This looks pretty fully-featured, and if it wasn't for a significant UX fail, it'd be bloody useful.  The problem is that the CF version is not a multi-select, or does not have an "all" or "I DON'T KNOW" option.  This makes the search a bit impenetrable because how the hell is one supposed to remember (or already know) which version of CF a bug was raised against?  For example, I encounter a bug in CF9.  That's not to say the bug first arose in CF9, it could have existed in CF8 (or older).  Or it might still exist in CF10, and someone's raised a ticket for it there.  So I come to try to find if it's already been raised, I have to do five separate searches.  What if I've got multiple search strings to try to find it?  That's another five searches.  You're having a laugh, Adobe.  If you thought finding bugs in CF was hard, there's something in there called "Open Source Media Framework"... that has 56 different versions to choose from (admittedly, one is "unknown"... hopefully that searches all of them?). Raised as 3115854.

Another shortfall in UX here is that each text field is independently searchable (good), but there's no unified text search box that searches all if them. How fundamental a shortcoming is that? It's as if whoever designed this UI had never in their life used a search engine (I covered this in 3314408).

The primary search mechanism here should simply take some text. This text should be used in an "internet" style search across a collection of all indexable fields. That's the minimum baseline they could get away with. An "Advanced Search" is a bonus. I don't even know why I have to type that in, it's so obvious.

Anyway, if one is not completely sapped of one's will to live whilst trying to negotiate the search experience, one can locate a ticket and see its detail.

Actually this screen is pretty good: it shows the ticket details, ask the comments that have been made, and all the votes it's garnered. One of the chief problems with the new system is demonstrated here though: it shows the feedback from Adobe. This is actually not a slight on the amount if feedback Adobe provides (that's a topic unto itself!), but the poignant bit is that reading the feedback here is the only way I'd know about it. Unlike even the most basic free bug tracker (eg: Bugzilla - which, whilst free, is much much better than Adobe's efforts), Adobe's system doesn't actually email "interested" parties when updates are made to tickets. By "interested parties" I don't mean edge-cases or features like how Jira (and I think Bugzilla?) Allows for people to "watch" an issue, I mean fundamental participants like the person who raised the issue in the first place. This is ridiculous. This doesn't even meet the lowest lowest expectations of a bug tracker. This has been raised as 2956452.

This is a very real world problem because I've had tickets I've raised closed by Adobe due to "insufficient information" or "cannot reproduce", and indeed an Adobe bod did note that against the ticket, but how the hell was I supposed to know this?  Am I supposed to check back every day in case someone's decided to follow-up one of my tickets (or someone else's ticket that I'm interested in).  Given the lack of feedback in general from Adobe, this is going to be a fool's errand most of the time anyhow.  How did a failing like this get through their UAT process? (Guess: I doubt there was one).
Perhaps needless to say, one cannot "watch" a ticket in this system.  Whilst I was describing this as an edge-case requirement, I was being kinda sarcastic (moi?): it's a necessity.  Raised as 3121514.

Another shortfall I've come across here is that the ticket detail input is limited to 4000 characters.  This seems a lot, but I've hit that limit a couple of times when providing all the info I deemed necessary for them to replicate & address the issue.  Why do they have this limit? I've raised this one as 3140424.

There's a trivial issue when one raises a bug.  The URL one lands on after raising the bug is not the URL for the bug itself, but is just a form submission URL.  To get the bug's URL, one then needs to copy the bug ID and search for it.  Sloppy.  Raised as 3314410.

The last thing that immediately springs to mind is that none of the URLs from the old bug tracker work.  There are numerous URLs to bugs in people's blogs and in comments on the Adobe forums and in the docs which point to the old system, and none of these work.  A minimum requirement when porting from an old system to the new system is that the old URLs still work.  All the tickets have been migrated (good!) but their URLs were not.  Suck.  And sloppy.  I've raised this as 3120311. One can see this in action if one uses Elliott's bug tracker mirror to find a bug - eg this one - and then click on the "View Bug 86960 on the Adobe Tracker" link... this does not go to the entry for that bug on the new system... it just goes to the home page.  Useless.  Note that Elliott has got the URL correct, it's Adobe that's messing it up.

Seriously, if Adobe don't have the wherewithall to write a bugtracker that's fit for purpose... just buy one.  Buy Jira.  It has its idiosyncrasies, but on the whole it is a great tool.  Or download Bugzilla and reskin it (it's designed to be reskinnable, so this is not a significant task).  It would probably cost less than developing their own in the long run, plus this is something that they are exposing to the outside world as an example of their work.  I'd be bloody embarrassed of this example if I was Adobe.

I realise I have spoken of more issues here than I have raised with Adobe.  I'll crack on getting them logged now.  And wait for nothing to happen with them.