Thursday, 4 April 2013

"If you don't ask, you don't get"

I don't often get a chance to quote Gandhi, but there you go. It was gonna be "If you tolerate this...", but that sounded a bit egregious in the context I am going to use it. Plus Gandhi has a bit more cred than the Manics. Sorry Wales.

Anyway, children, here's a story from Adam's past.

Once upon a time in a past life Adam was a network admin / "engineer" / PC support person (ie: he did everything from network planning to changing toner cartridges), working in the civil service in the UK. One day he saw a ticket in the issue tracking system detailing someone having problems with [something, I forget, let's say it was Word Perfect. I did say it was a while ago], and needed urgent help. So Adam exited the IT dungeon and ventured up into the Ivory Towers Of Those Who Did The Actual Work, sat with the person, and sorted out their problem. It was something mundane like having the wrong printer selected. The person thanked Adam, telling him he was brilliant, because this had been causing them no-end of grief and loss of productivity for over a year and was bloody annoying, and he fixed it just like that. Brilliant! [did I mention he called me brilliant? Oh, yeah, a coupla times]. Not being one to just accept unwarranted praise, Adam queried this.

"But hang on... it looks like this ticket just got raised yesterday?" queried Adam.
"Well yes. I finally got so sick of it I raised a ticket hoping someone would finally do something about it!" said the user.
"OK, so you'd just mentioned it to someone in IT before, yeah? You really should make sure it gets logged in the system, because we're busy and things can get forgotten. Sorry about that,"  Adam replied, secretly already knowing where this was heading.
"Oh, no... I hadn't mentioned it to anyone in IT before," said the user. Not knowing where all this was going.
"OK," said Adam slightly tersely now, "you've had this really annoying problem for a year or so..." Adam had entered "Socratic Method" mode now.
"Yes!" the user enthused.
"... and it's annoyed you that it's never been fixed..." continued Adam.
"well until now, " said the user with a residual tone of thanks, but getting hesitant.
"Right. And you saw how long it took me to fix it, right?" which was voiced without a sense of achievement, more a resolute matter-of-factness.
"And it was fixed within... what... half a day of you raising it with us?" although it was not voiced as a question.
"Err... yes...?" the user realises where this is going now.
"OK... so basically you've been inconvenienced by this, and have lost productivity for the Ministry for over a year. When had you told us about it, it could have been fixed... well... a few hours after it started being a problem. Back last year. When it happened. Before all the productivity loss."
"Um. Yeah. Good point" the user closed, having taken Adam's point.
"You'll make sure we know about this stuff as it happens in future, yeah? We're good, but not that good," chuckled Adam, fortunately having the chuckle returned.

And the both lived happily ever after. Once Adam got out of the civil service and hardware work completely, anyhow.

I'm polishing that up for a bedtime story for my son. What do you think?

Seriously, there's a moral to this.

You know how I'm a bolshy complainy meany sort of person, who always seems to find fault with ColdFusion (or Railo, or OpenBD)? Well I do it on purpose. Because if no-one mentions these things, the chances of anything getting done about them is minimal.

I'm going to focus on ColdFusion when I talk about this, because Adobe are whom I have most experience with. The guys on the ColdFusion engineering team a good at what they do, and they turn out good work. On the whole all versions of CF that Adobe have been responsible for have been solid products (and Marcomedia and Allaire before them. Except for Macromedia with CFMX6.0, but let's forget about that). Even with the teething problems ColdFusion 10 has had, on the whole it's solid.

But everything has bugs, and equally the Adobe dudes cannot second-guess every use case us CF developers are gonna attempt with ColdFusion. That's completely legit, and indicates no problem with the ColdFusion product, nor the Adobe ColdFusion Dev team. It's just life.

So we will find bugs, and we will find things we don't like about ColdFusion.

Yesterday I encountered this comment on Twitter:
 I hate saying negative things about #ColdFusion. Wish I didn't have any reason to.
(If you read this, I don't mean to single you out, and indeed the point here is not based solely on this instance of this happening. You're in very good company. And I'm just using this as a convenient example today ;-)

I'm sorry, but that is a profoundly counter-productive and irresponsible attitude to have.

If you discover a problem or a bug or just something that doesn't seem right to you in ColdFusion (or anything you use), bring it to people's attention! Talk to the community about it if you're unsure of stuff, and if you are sure of stuff, bring it to Adobe's attention! They won't bite. They'll probably be quite thankful of the input. And even better: there's a good chance the issue will get dealt with, so the problem will be resolved!

Think about your own software endeavours. Which would you prefer:
  1. a user having a problem with your work, and getting all pissed-off or let-down about it;
  2. them telling you, so something can be done about it?
If it's not #2, you're in the wrong line of work. But of course it's #2. Firstly you probably want to actually help your clients; secondly there's professional integrity at stake: you don't want to be perceived as being no good at your job.

I don't like employing cultural stereotypes (OKOK, other than via in-poor-taste jokes)  - and I don't even know the cultural background of the person making the comment above - but this attitude is something I find prevalent - almost ubiquitous - in my friends from The States. There seems to be something in USA culture that's convinced people that having a contrary opinion or finding fault with something is somehow improper or actually rude. Bullshit (did you see what I did there? ;-). Provided you approach the issue with candour, there's nothing rude or improper about letting someone know you think they've done something inconvenient to you, or suboptimally, or even outright wrong. On the contrary: not doing that is rude and uncaring in my opinion, because you're depriving the person the chance of doing something about remedying the situation.

Of course - and as I said - that's a stereotype so doesn't apply to everyone, and equally it's not like it's restricted to USAn people. I don't mean to suggest that. However I feel I'm not out of line in saying it's an attitude more prevalent from people from the States than it is from other people I have dealings with. I only mention it because the bulk of the CF community is USA-based, so I see this attitude as being a significant issue in said community.

So if you see something wrong with ColdFusion... please don't sit on it. And please don't just wring your hands in a wee sewing circle about it either (that is where that particular conversation ended up, yesterday). Blimin' do something about it.

There is nothing wrong with identifying things wrong with something, and then doing your bit for the community by making sure the right people know.