Technical Blog Post
Working as Designed and Requests For Enhancements (RFE)
The first 3 words have been on my mind of late, so I've been doing some thinking.
Once in a while, we get a PMR which seems like Maximo isn't working properly, and our answer is "working as designed".
This can be very upsetting if the client expectation seems perfectly reasonable (as is often the case). And we'd much rather be in a position to deliver a resolution to your problem!
I think the key thing here is whether the undesired behaviour was deliberately designed in, or whether it was not considered (or not considered to be necessary) when the affected function was designed.
I have seen some discussion elsewhere on the web suggesting that "working as specified" might be a slightly better phrase. I guess it's semantics, but it points away a suggestion that the undesirable feature was intended to happen and points more towards a statement that the product is correctly conforming to some kind of blueprint.
If the product is not behaving as specified, we might consider the reported behaviour to be a defect and provide a resolution. If the product is behaving as specified, then no matter how reasonable the client expectation may seem, we have to change the specification, which is not something that can be done in a PMR (no matter how much we would like to). This is therefore a Request For Enhancement.
Consider the following true story
I'm not really into cars. I see them as a necessary evil and I really hate spending money on the things. And washing them.
A few years ago, I was talking to a very good friend from my university days. For some reason we started talking about my car. It was getting old and worn out (I know the feeling well) and increasingly expensive to run. Worn engine mounting, worn clutch, a hole in the exhaust, and it desperately needed a wash. It had served me well. It still ran. But it was getting towards the end of its economic life.
Anyway, I thought no more of this until the phone rang a few months later. My friend had moved house and changed job and the family no longer needed one of their 2 cars. Would I like their spare? As a gift. Gratis. Free.
Given that my friend is very "correct" in many ways, I knew that the car would be in excellent condition and regularly serviced. It was even my favourite colour. Delivery was free despite my friend living several hours away. And it didn't need a wash.
Some minor compromises, though. A little smaller than our family of 4 is used to, but that has actually been hardly noticeable. 3 doors rather than 5 (the biggest issue, but we only travel long distances a few times a year), mediocre stereo (now replaced to the detriment of my tinnitus).
On the whole very happy, especially given the price.
However, there is something else which has been really annoying me of late. Not sure why it has taken so long to get on my nerves.
Guess where the headlight control is?
This is bit like one of those old spot-the-ball competitions.
In pretty much every other car I have driven, the headlight controls have been on one of stalks on the steering column.
Not this time.
It is on the dashboard. Down by my right knee. Completely obscured from view by the steering wheel (and my knee).
Pretty smart, huh?
The obscure button to disable the passenger air bag is much easier to find (and reach)
My journey to work is very long these days.
A few months back I had to contend with thick fog.
So the rear fog lamp was useful.
This is something which we sometimes need to find in a hurry, so one might hope it would be easy to find.
Also craftily hidden.
A weird rocker switch, part of a group of 3 around the outside of the circular headlight control, with some tiny hieroglyphics to kind of tell you what it does. To this day, I am really not sure what the other 2 switches actually do, or which one is the fog lamp. I have to lean forward and grope around until the indicator lights up to show me I got the right one.
It is clearly working as designed (or specified).
in my personal opinion (which is a very important thing to remember: this is but one perspective), this design is just plain nuts. Not designed/specified to my expectations.
But why, why, why make this design choice that I don't like?
Let's think about this from different perspectives. Maybe there was some very good technical or regulatory reason why they couldn't put these switches somewhere more conventional(from my experience)/visible. Maybe it's part of a common look and feel across the brand and changing one model means changing all other models? Maybe many things.
What's my car got to do with Maximo?
Let's consider my options:
1) Understand that it is what is. Educate myself (and anyone else who I might let drive my car) in the correct use if this feature. Keep the manual handy for those foggy days. There may be a good reason for this design that I am unaware of. I don't have the big picture here.
2) Drive only during daylight and good weather (a Workaround: a partial solution, which may provide some relief). I am writing this during summer and it's not raining today. Maybe this is not as restrictive as it sounds?
3) Maybe I could find some way to use the existing design to help me without hacking it to bits? A bit tricky with a car, but Maximo has many, many ways to help with unexpected/unwanted effects. Conditional UI, Application Designer, Database Designer, automation scripts, escalations, the list goes on.
4) If I have the right tools etc, I could move the switch myself (Customisation). I do this at my own risk. If I fry the car's electrics or damage the dash board, it will be my own fault. There is no way that the damage would be covered under warranty. If I break it, I have to fix it.
5) Contact the manufacturer to see if they can move the switches next time they refresh the design of this model (a Request for Enhancement). If enough people feel the same (vote for an existing RFE), the manufacturer will be aware that this is important to a wider community and there will be more chance of it happening.
A few words about RFEs
The RFE community is here https://www.ibm.com/developerworks/rfe/?BRAND_ID=1
If this link goes astray, the brand is Internet of Things
Have a look at these great tutorial videos https://www.ibm.com/developerworks/rfe/execute?use_case=tutorials.
They explain the process far better than I can.
Why do you tell me it's Working as Designed, that I should raise and RFE, and then reject the request?
The R in RFE stands for Request.
RFEs are considered carefully by Development and your seemingly reasonable request might still be rejected.
Consider the case of my car again.
I wouldn't go as far as saying that I am a dissatisfied customer, but I do find this design rather annoying.
It is in the car manufacturer's interest to turn me into a satisfied customer, even if it can only promise to change the design for the next time the model is refreshed. They might even agree that it would be good to change the design, but they still might not be able to change the design for me.
I am reliably informed that there are some drivers (maybe a lot, given the large number of cars in this world polluting the atmosphere and using up all the parking space in the street where I live) who find this arrangement of switches satisfactory and even logical. Even though I think it's less than optimal, many other car users do not. In this case, the switches can only be in one place. No Schroedinger's cat.
There might be internal knock-on effects of what seems like a simple change. Moviing the headliught and fog lamp switches might need some wires to be rerouted so that the indicators no longer work.
There could be all sorts of reasons that are not immediately obvious from my perspective.
Do RFEs actually work?
The short answer is a resounding yes, yes, yes. For example, we now tell you when Admin Mode has been enabled.
I hope that the analogy makes some sense.
Next time you hear those words, please consider the following:
1) We might actually agree that it would be great if the product worked the way you expect, but this requires a change to the specification.
2) There may be options to address the problem yourself
3) Use the RFE process if we advise you to. It will not produce an immediate solution, but it might provide a solution in future.
4) Don't shoot the messenger