Thursday, May 03, 2012

Ode to Ed Fiberesima


Ed a towering young man bustling with ideas but calm on the surface.
Gentle giant you were who was well spoken of and liked among his peers.
Shame we shall never again share a pint but I am proud to have made your acquaintance.
Proud son of Fiberesima sleep with the sages and smile as the stars upon your mother's house.

Tuesday, March 13, 2012

Nigeria Immigration Service - living up to a name

Every now and then I rant about a topic that is close to my heart. Not that I assume anyone is listening but just because I find that blogging can be therapeutic. Sometimes.


Today's spot of bother is the Nigeria Immigration Service. As you may have noticed, customer service is a subject that is close to my heart. Whether it concerns coffee, developer support, mobile telecommunications etc.


I happened to have business at the Nigeria High Commission in London today and was not satisfied that the Nigeria Immigration Service took the Service part of their name very seriously. From the lack of information regarding the visa application process to the customer experience on the ground at the consular section of the embassy, it was a trying process.


The first thing you notice once you get to the embassy is the queues. They may be unavoidable but some effort should be made to reduce them. I personally find them dispiriting. The next issue you are confronted with is the way the front-line staff address customers. Condescending in some of the cases I witnessed. I believe the higher-ups need to take a step back and consider the benefits of friendly customer service and the fact that customers appreciate it and would sometimes pay a premium for it.


Some questions came to mind: What would the customer service be like if they had competition? Why can't there be competition? What is the complaints procedure? How would customer service be affected if front-line staff knew their bonuses depended on customer satisfaction?


The other thing I had to contend with was a lack of information access points. The website doesn't have all the information required to get an application from start to finish. On-site information from front-line staff is patchy and conflicting in some cases. The whole communication package for the service needs to be revisited, as it is missing a few tricks.


My experience entailed filling out a form online, making payment and then turning up on the day and having to fill the same form out yet again, because I didn't bring a printed copy of the online form. All this is in addition to being chided for daring to turn up without a printed copy like other good citizens. The other soul-destroying part of the saga was making the trip (and braving the queue) thrice to the post office about 5 minutes away because the service refuses to streamline its processes. Cards are permissible online but one still needs to pay some 'admin' fees in person via postal orders. Why not simplify the process for the customer so that both payments can be made online as a single transaction? Why even use postal orders in 2012?


I hope someone is listening. If not my ranting has helped restore my usually zen-like calm. Now all is well with the world.


Till the next rant...

Cobertura Goodness for Groovy code in Gradle builds

Was trying to measure code coverage on a Groovy side project and tried a number of Gradle plugins for Cobertura. Settled for this one from Val Kolovos (thanks dude :)), as it just worked out of the box.

By default it doesn't drill into Groovy files to show the line coverage on source files. To get it to do so you need to add the following convention setting in your build.gradle:

cobertura {

coverageSourceDirs = sourceSets.main.java.srcDirs + sourceSets.main.groovy.srcDirs

}

Enjoy.

Sunday, February 26, 2012

Gradle Grails Plugin for Grails 2.0.x

I love the Grails Framework but sometimes I prefer to build my Grails projects using Gradle. I am just happier that way.

I have just started upgrading one of our projects to Grails 2.0.x and thought I would share what our build.gradle looks like.

Full build script can be found on Github. Enjoy!


Sunday, January 15, 2012

Retort to Paul Collier

Hi Paul,

Nigeria's current administration might have received a legitimate mandate but their actions since their ascent has been anything but.You only need look at the budget and its constituent executive and legislative expenditure which has incensed the masses, and is anything but responsible, to give you an idea of the reasons behind Nigerian's mistrust.

All we have heard from the government are the same tired platitudes of how our biggest problem as a nation is the subsidy. No problem however straight-forward has a single solution and at times the march to durable solutions begins with critical and radical reasoning. What we need are creative solutions but our leaders seem to be unwilling to solicit them or even consider suggestions all in the hope that the people will soon be distracted so they can get their way. Well, democracy is about listening and inclusion and Nigerians have begun to talk. Shouldn't our elected government listen?

The government claim to have offered palliatives but how does more buses after a hike in fuel prices help with the consequent price increase of everything from food, to power generation costs? Just so you can process and contextualise it, a fitting analogue to what the Nigerian government has done by artificially hiking the prices of petroleum products would be the UK government deciding without consultation and alternatives to scrap a service as vital as the NHS. Such an action would understandably be met by resistance, as its effects would be far-reaching. Fine-tuning the mechanics of the current subsidy regime with a view to increasing accountability and then working on solutions to fill the vacuum once it is eventually removed might have been the place to start.

As a Nigerian who has seen both sides of the coin I know the pangs of Nigerians and understand the mistrust. I have benefitted from appalling roads, the epileptic and largely DIY power supply and the abysmally funded education and health-care systems. Oh and did I mention the non-existent social security? To crown all this Nigerians have increasingly and of recent been served incessant helpings of violence by politically motivated mercenaries. In the years past there has been trillions spent on white elephant projects only for those funds to be trousered by the ruling elite and their cohorts so is it any surprise we don't trust them? If they couldn't deliver with all those trillions what good will a paltry $8bn a year do?

At a time like this what we would love to hear from intelligent media isn't that Nigerians are being manipulated. It is patronising but also lazy reasoning to think that Nigerians who have had to contend with 50 years of suffering and smiling are incapable of articulating how they feel. I think what good folk like yourself need to be doing is actually gaining a firm grasp of the issues at play and, if you are so inclined, proffering solutions.

Nigerians are among the most resilient and resourceful people I know. It is time our leaders stopped taking advantage of that great trait and started doing their jobs.

Saturday, December 03, 2011

Musings on improving customer experience at MTN and MTN Connect centres

Last week I made my usual trip to the connect center for MTN. As usual the staff were courteous and helpful but I came away unhappy.


It is my belief that some of the reasons that customers come in to the center can be better addressed via a careful blend of self service and better empowered customer service personnel.


On the days I have visited you get customers who have come in for a varying number of reasons from topping up their prepaid accounts to registering their SIM and signing up to one of the increasingly popular BlackBerry bundles.


It turns out that with careful construction of self service applications MTN could reduce the number of customers feeling the need to come in. Take a scenario where a customer needs to top up their account: they should be able to do so at the now ubiquitous ATMs in major city centers.


Having more staff empowered with smartphones running key applications that, for example, allow them to take card payments for a vareity of services - it is a mobile communications company afterall - would help manage the load at the connect centers. Second level customer service operatives can then better spend their time helping customers with more complex requirements. This would be consistent with the level of customer experience you would get at an Apple Store or Wagamama where tills are attached to roving and attentive customer service personnel.


My pet peeve at the moment is my current issue where I need a statement of expenditure on my prepaid mobile account for accounting purposes. Front line staff at these locations are not empowered to solve my problem and as a customer there are no self service options. So I am stuck with the lengthy and soul destroying process of writing a letter along with applying for a police report just to get a statement on my account.


I am hopeful that a customer-focused someone in the MTN hierarchy reads this and sets the train in place to make the necessary adjustments for improved customer experience.


Peace and Love.



Published with Blogger-droid v2.0.1

Monday, August 01, 2011

Enabling Xpather Firefox Plugin in Firefox 5 on Windows 7 after upgrading from Firefox 3.x

I have been messing around with the Selenium Testing. Again. I think if you have spent any amount of time trying to construct functional tests for your web applications you will have found that Firefox developer tools like the Xpather plugin indispensable. Well, I do. My problem recently was the fact that with an upgrade to Firefox 5 from 3.x this most useful of plugins was disabled.

Its original developer Viktor Zigo, much respect for his efforts, is taking time off so while wondering what to do to get it working in Firefox 5, I stumbled upon the plugin reviews
page and a particular comment stood out for me. It led me to a useful solution on how to get this plugin enabled on Firefox 5. Without further ado, here it is.

This part of the post assumes that you had the plugin installed and working previously in Firefox 3.x and are on Windows 7.


  • To get it working update the install.rdf file which can be found in your Windows 7 install at the following location:
    \Users\\AppData\Roaming\Mozilla\Firefox\Profiles\lszvse7r.default\extensions\{636fd8b0-ce2b-4e00-b812-2afbe77ee899}
    Do adjust your username and actual profile directory to take into account your install specifics.
  • Restart your Firefox and Xpather 1.4.5 should be now be re-enabled.


Thursday, June 30, 2011

WebDriver querying Text Nodes - Lessons learnt

Earlier on today I ran into an odd problem while using WebDriver as part of my ongoing foray into Cucumber as a DSL. I was to trying write automated tests that verified that a link (a tag) had a text node. I could locate the link by an xpath locator.

I can hear you ask why this should be a problem. It was because the link looked as follows:


It turns out the usual WebDriver incantations along the lines of findElement(By.xpath("arbitrary-xpath")).getText() was returning nothing for the link's text. I looked around for a while and found that the only solution I had was to look things up via Javascript seeing as there were no ids to fallback on.

In the end it worked out that document.evaluate became the saviour of the day, since it allowed me to make xpath queries on a document. The result is a java step definition and cucumber feature file that look as follows:






UPDATE: Changed the step definition file so that the xpath lookup is done in WebDriver instead of in the javascript seeing as xpath lookups cannot be relied upon in Internet Explorer.

I suppose you could argue that the html could be changed to be better. True, but atimes that might not be an option. The purists will argue as they do here that it isn't a feature that should be provided by WebDriver but I think it would help to have a way of traversing the DOM once you have looked up an element. I should like to read about other creative solutions to a problem of this nature.