Wednesday, July 20, 2016

ඉක්මන



මල් වට්ටි ටික නම් ලස්සනටම හැදුව,
රතු ගෙදර පොඩි අය්යා තාමත් නැහැ ඒත්. 
ඉගන ගන්න ඕනි තනියම සරුංගලේ යවන්න! 
ඉක්මනට ආපහු ඇවිත් පහන් තියන්නත් ඕන. 
ඉක්මනට සංසාරෙන් එගොඩ වෙන්නත් ඕන.

Wednesday, June 10, 2015

Why Would Your Ordinary Mobile Analytics Fail in Enterprise?

Mobile analytics has become one of the most common and mandatory inclusions in a mobile application - now, a developer would hardly think twice before allocating some of her time to integrate a mobile analytics framework into a new app being built. The effort has always proven to yield results, in terms of giving her information on how many users would try out her application, what their favourite screens are, when exactly they tire of her application and many other parameters that would allow her to improve the application. Chances are a simple integration of any popular mobile analytics framework would get you this results without much hassle (any of the top 5 frameworks you’d find by googling). However, this is only so for general consumer apps on a public App Store - not for your enterprise mobile apps. Why?



Business Context

An enterprise mobile app user would not use a mobile application purely based on his preference. Instead, his user behaviour would be a mix of his own way of doing things but heavily influenced by the business context that he works within. Straight-forward information such as the percentage of active users per day, how many seconds a user would stay on a particular screen, how many mistaken taps he would make, would differ and be dependant on the nature of his work.
How do you get a clear picture of this? Map business context with user behaviour. As an enterprise app developer, you would know in-and-out all the business scenarios that encapsulates each user and screen. Embed this useful data to your analytics tracking and you will then know how users use your app for a specific work scenario.
But that’s lot of work. What would be my ROI?

Good Analytics Means Money Saved

Unlike in any other type of mobile application, each action the user performs in an enterprise app is directly tied to his productivity. If two taps associated with an item on a list screen could be replaced with one swipe gesture, it will result in an estimated 40% productivity increase per action. Your HR team would agree 40% is a big productivity boost and the accounts team would appreciate the reduction of time spent per task.
That’s just a crude example but streamlining your app experience would make your users efficient, happy and more geared for their daily work. This will save you money both in the short-term as well as in the long-term. So you see that mobile analytics can be even more important for enterprise apps than for consumer apps.
Sounds legit. How exactly do I do this?

Customisation of Analytics

The core of enterprise app development is customisation. From splash screen branding to features that hug your ERP, you make your best effort to map your application to business processes. The same practices that you use to map features and business processes together can be applied to your analytics as well. You can encapsulate these parameters in a new layer between your features and the standard analytics, thus giving you the freedom to extend, experiment and tweak your analytics, both conceptually and technically (finally putting that Dependency Injection to use!). Your aim would be to capture how users use your application in their important business scenarios within the contexts in which they operate.
I see. Got any silly examples?

One Silly Case Study

Once upon a time, there was an app to track time spent by professionals on field work. There were mechanics, supervisors and interestingly, 50% of them were both. They had a screen with details of a particular task and two buttons: ‘Log work’ and ‘Verify Work’. The app was just a utility, they hurried through inputs getting their work done. Basic analytics revealed that they would tap on the wrong button (nearly 22% of the times), causing them to just go back and tap the right one where they input values and end the use case. Mistakes at a rate of one in five can be quite annoying.


Many analytic parameters were added to see how can this be fixed. Erick, one young developer with an eye for detail, noticed most of the ‘Verify Work’ mis-taps happened in the morning and vice versa. He found it quite amusing although the product owner couldn’t explain this either. A chat with few end-users later revealed that 80% of the mechanical fixing happens in the morning and 80% of supervisor work happens in the afternoon. That explained it! Based on active time-frame analytics, developers did a silly and a dynamic fix. Without changing anything on the UI (that would confuse users) they overlaid two transparent buttons on top of visible buttons, where the size of the invisible button (hence the touch surface) would grow slightly bigger or smaller based on time and user actions!

You get a larger touch area for ‘Log Work’ in the morning and the same for ‘Verify Work’ button in the evening. Mistaken taps got reduced to 6%. TADA! Will you ever get this feature as a requirement on a spec?
Fine, I think I’m buying this. Anything else?

Analytics on Analytics, Cross Functional Analytics and the Next Up


While mobile analytics will help your good application become a great application, it’s a shame if your analytics stop just there. In an enterprise environment, analytics data from multiple sources put together can create brand new insights. Big data on employee behaviours and performance - what kind of employees, who uses what BI filters on their mobile app, would do most sales - derived from multiple sources such as financial analytics and HR analytics, along with your mobile user analytics would take business into new levels of strategizing that were never possible before. Quite a few possibilities! Now is the time to think of your own analytics in your enterprise business context.

Monday, August 12, 2013

A Snapshot of Happiness

On an unnamed day, in the beginning of 90s.. the Disney theme music starts playing on through the flat mono channel of a CRT Television tuned to a VHF channel... 

*Hears the theme song from distance* *Starts running towards the living room* *Jumps over the dog* *Takes a 90 degree turn slightly grabbing the edge of the wall* *Jumps over the step to porch* *Another sharp turn* *Though the door* *Runs touching the arm rests of a array of chairs* *Apply full breaks just in-front of the TV with the biggest smile on the face.* *The theme song ends and cartoon starts* 

Happiness!!




Monday, July 2, 2012

5 Sil and Software Engineering - Part 2

This is a continuation of the post "5 Sil and Software Engineering".

I said "But wait...". Why? I want to counter my own thought.

If I ask you which Sil (percept) out of 5 Sils (Five Percepts) would be most challenged with the invasion of internet what would be your guess? The 3rd one?

Well I'd say it is the 2nd percept. "Do not take what is not given". Yeah the one about stealing! If you'd take a look the app stack that lies in your Start menu (or on the dock or launcher) how many of them are genuinely purchased apps? If you take out your developer tools or favorite games how many of them are ones you actually purchased? Let's not pick your music collection or your movies ;) -- if you are not guilty for any of these... ever... from day one - my bad - sorry for the tone of sarcasm and accusation! ;)

Would one steal anything else like that? A mobile phone, a pair of shoes, shades, a DVD... would possibly be in the same price range. We don't see that happening as much as people steal software, games, movies or music.

One possibility is that, we are still more primitive and not very comprehensive with the concept of stealing something that does not physically exist. Lack of that concept might be keeping us from considering stealing of these non-physical items from concept of stealing described in all religions.

Other possibility has nothing to do with our topic - could be that it is just easy to steal non-physical items than the physical counter part. It's relatively easy to obtain, store concealed and get rid of!

OK then, if you are the software guy who don't steal software and media can you paint yourself white? Well, let me leave the end of the topic open for discussion and to think with this story.

A week ago I was discussing with a few business app suggestions that we were to suggest to a non-technical client who has a solution stack in domain of outdoor adventures. One "good" outdoor adventure in europe is deer hunting. A tailor-made location aware app for the purpose, a collaborative info feed in your mobile might come in handy. Are we to suggest an app that would promote more business with deer hunting? Wouldn't it be abetment for the sin? How and where can you draw the line? Can we really classify professions as black or white? Your thoughts?

Sunday, July 1, 2012

Siri, Intelligent Assistants, Missing Context and Now Google Now?

Lets me ask you... does Siri get what you say? I see! And does she respond you the way a true assistant would do?...

The first time I tried a voice-to-computer interaction was in 1998, the IBM ViaVoice came bundled with IBM PCs by then. It was a commercial product and needed voice training with the user to improve it's accuracy. After the longest dictation session in my life with ViaVoice, it learnt to show me the start menu when I said "Start Menu" at the first attempt with luck. But it never learnt to type what I spoke with my typical Sri Lankan accent and broken pronunciation.

14 years later I tried out Siri. She didn't wanted a voice training, quite nice of her. She caters number of various accents at a pretty sophisticated backend server, where she can learn from thousands if not millions of voices from different regions and accents. Well if she understood what I was asking 5 out of 10 times she gave me an acceptable answer within limits of her capability.

"Why can't she understand?!!" (pardon the pun at common quote!)

Well lets consider how do I understand what you say, when you say something. You say something to me and I usually get what you say even when you were not 100% audible. How? I see your lips moving, but is that it? No. I see the context!

We as living beings, keep updating our context of current existence based on various inputs. Let's figure what kind of inputs these are.

1. Knowledge of where we are
2. What we have seen for past few moments and what we are seeing now
3. What the people involved being talking about past few mins
4. Time of the day
5. General details of people involved with - their general interests, work, relationships, etc.
6. Current affairs - local and international, weather, news
7. Understanding of concepts rather than terms and keywords (think meaning of "being screwed" you get opposed to reference to the keywords "screws, hardware, tools, fixing, department stores")
8. .... etc.

The context that we have built based on these would enable us to recognize the words other person says and predict what he or she means. Therefore if you want to make an app that really understand what you just said, make it context aware... that is the key to make a better responding assistant.

But how can a phone app do this? Except for point 7 and 8 your smartphone more of less already know these. What needs is to aggregate all these in a logical way and have that knowledge as the base that for assistant's intelligence. Too much to communicate with server and handled by backend server? May be, but processing it in the cloud would be the best way to capture and manage more context information about a user.

I've seen few attempts towards reaching this. Few months back these bunch of guys who made Iris (Siri clone for Android) had popped the concept app called Friday App. The idea is to keep track of events in your life through your interactions with mobile and be kind of a journal of your life. And Google just announced "Google Now" at Google I/O 2012 along with offline voice support which is one step ahead towards making the app aware of user's context. Good thing about this is; if anyone to do this better - it would be Google! The reason is Google knows about you, lot more than you think specially if you sport an Android phone. The catch about this is technology would influence your life more than it ever did. The decision of which route to take or which restaurant to go for would no longer be sole decision of yours but highly influenced by your smart(er) phone. Whether its a good thing or a bad thing would be a whole other discussion. But isn't this what you have been asking for all this time?

Wednesday, February 15, 2012

The Crisis


It's crisis time.

It's convenient to be carried along with the crisis. Let it be your actions, opinions or comments. Only those who can zoom out in their perspectives, away from emotions and personal biasing, would see the bigger picture & would be able to stand strong, letting the crisis pass through.

Friday, November 4, 2011

5 Sil and Software Engineering

[await... cartoon image]

I was not at the temple last Full moon Poyaday. Unfortunately it wasn't something rare either. I was going somewhere, speeding past a temple and on the loud speaker I hear "… anaakulaa cha kammanthaa…" of Maha Mangala Sutra, meaning "Do righteous occupation".

Having the driving partially handed over to a thread that run's in background of my head, I took a moment to think of at jobs we see around in the modern day. In many occupations, I could think of many scenarios where people have to push across white lies or minor unethical conducts just to make sure everything runs smoother. Even if one doesn't have to lie, it might be beneficial to not to say some true facts, knowing that mentioning or exposing them would be an disadvantage. Not exposing the truth, that the other person would be interested in, might be a deal breaker as well. Hence one tells half truth.

I think of what I do for a living. A coder, a developer, if I may - a software engineer. I was happy to comprehend to myself that we, software guys face very much less scenarios in our daily work life that we have to do such minor unethical conducts. Isn't that indeed a great thing? When we write some code,we try to produce some quality code with passion, do the justification to the best design and project itself. If you are not skipping any null checks as a habit, I think its less likely a software guy would be doing anything that is a sin.

Software engineering seems to be one "anakulaa cha kammanthaa".

But wait…! (to be continued.)