Wednesday 26 February 2014

ARE WE THERE YET?

 “Mobile is the future”
“The future of computing is in mobile”
“Enterprise mobility is the way to go”
 
If you haven’t heard or read any of these sentences in the last few years then you probably have been vacationing away on Pluto. This is because, every tech convention you go to, every industry insider that you interact with or every business leader that you listen to; this is a common theme that is echoed in their talks. That would give one an idea that mobility as a concept would have already taken off in India and enterprises are jumping the gun in order to implement their mobile strategies. The facts unfortunately state otherwise.
They cite a variety of reasons for their hesitation
• Unsure about the cost of the solution
• Unsure about the technology
• Unsure about where to start
• General problems
Let me elaborate these problems further
 
“Unsure about the technology”
Though it might seem like an eternity, the smart phones, as we know them, have been around for less than a decade (the first iPhone was released in 2007,the first Android phone was released in 2008, Blackberry a relative early starter - but now nearing its extinction - was released in 1999). So there is limited understanding about the underlying technology behind these devices.
 
“Unsure about where to start”
Modern Smartphones are presumably powerful devices that they can perform diverse functions. From scanning barcodes, to capturing location-based data, there are very few tasks that can’t be performed using a Smartphone. This poses a different kind of challenge for the IT decision makers. They don’t know what would be an appropriate part of their process that could be automated using mobile phones. They are always on the lookout for that safe bet which would guarantee them success at least in terms of implementation. But, these safe bets are not always the testimonials for justifying the power of a mobile based solution. They offer only slight or no benefit over the existing processes. Such lack of clarity is preventing them from making big bets on a mobile solution.
 
“Unsure about the cost of the solution”
Like I said before, Smartphones are a relatively new phenomena. To top that, enterprise mobility is newer. So there is a lack of understanding about the cost of implementing a mobile-based solution. While the IT department would only consider the actual cost of developing the solution, the finance guys have other things to worry about. The cost of procuring devices adds to the overall cost of the solution and this moves up from being a hindrance to a nightmare for them.
 
General Problems
These are the problems faced by everyday users like you and me with our smartphone devices. Issues like network connectivity, net speed, battery life are a growing list, which keeps going on. At a personal level we can afford to overlook these problems or find ways around them. But when similar devices are used as a part of an enterprise solution, then this presents a lot of problems. Imagine a sales guy spending 8 hours on the field every day and using the company-owned cell phone to update his CRM on the move. What does he do when his battery drains out? What can he do when there is no connectivity and an order has to be placed? These are some obvious hindrances that are coming in the way of mobile being accepted as a trusted solution.
These are some of the problems that I have encountered in my professional dealings with the people I talk to on a daily basis. But, there is nothing at present concrete enough to tackle these issues. With a little education and understanding of the mobile technology, it can really become the next level of solution that everyone expects them to be.
At Frozen Digit we help companies to understand the exact value they would derive from a mobile app solution. We consult, formulate mobility strategy and implement a solution.
We carried out mobile branding exercise for one of India’s leading fortune 500 automobile companies. We designed and developed mobile games around a specific automobile model and distributed these games to the target audience. This exercise helped the company to position its vehicle as sturdy, fuel efficient and powerful machine and added to the brand recall.
 
For more information please visit www.frozendigit.com or email at v.borkar@direction.biz.

Vishal Borkar, Mobility Sales at Frozen Digit.
A company acquired by Direction expanding its operations in Mobile domain.www.frozendigit.com


Monday 17 February 2014

Parallel processing of LAMP Mandrill API via a job queue

Have you ever come across a task of sending close to a million mails from LAMP (Linux Apache MySQL PHP)? And had a hard time convincing the customer about the performance?

We did. And we had to come out with an out of the box idea to manage the same.

Our organization works extensively on solutions using LAMP. And in one such project, where we were building a system to send newsletters to members of an E commerce portal, we saw that the system was working too slowly in sending those mails.

Why?

Because the portal had more than a hundred thousand members and we were using Mandrill API to send those mails one by one (sequentially) via web service calls. This was extremely slow and was overloading the server frequently.

Ah! Here we wished PHP supported multithreading and would help us in doing a lot of parallel processing.  As PHP has no built-in support for multithreading, we came up with the idea of using a “Job Scheduler” software which would indirectly support us in multithreading and completing the job faster without overloading the server.

We brainstormed and evaluated various such software like Beanstalkd, Gearman, Amazon SQS etc. and finally settled on Beanstalkd.

We preferred Beanstalkd because –
- It offered easy installation
- An easy-to-use PHP client was available
- It used very little system resource

Once installed, only minor changes were required in our code to send those emails to a “job queue” instead of to the Mandrill API. Further to this we wrote a piece of “worker” script to process the queue. This “worker” script actually started taking the information from queue and sending the mails via the Mandrill API.

And now, we had the freedom to start multiple worker scripts to process things in parallel and clearing the queue faster.

Yes we still had some possible issues in our hand before the solution could be deployed –
- What if for some reason the Apache Webserver was restarted?
This would kill all the “worker” scripts and someone would have to manually start them.
- In case a higher throughput was required, we needed to increase the number of “worker” scripts manually and needed to kill specific “worker” scripts manually when they were no longer required.

Definitely the entire solution was required to be polished further to handle these issues and we installed a component called “Supervisor” to manage the same. “Supervisor” is a client / server component that allows its users to control a number of processes on UNIX-based operating systems. This component also has a web interface where you can manage the “worker” scripts (Start / stop the individual scripts as and when required).

So finally, although PHP does not support multithreading we had managed to overcome its limitation with the help of Beanstalkd and Supervisor.
Hope to share you similar stories soon. Till then happy reading..
 
 
Written by Gautam Jumrani and contributed by Laxmikant Purohit
Laxmikant Purohit, Senior Manager at Direction has more than 15 years of IT experience. Believes in being Light and Agile philosophy for delivering projects. He is a certified SCRUM Professional.
Gautam Jumrani, Project Lead for LAMP projects, has more than 10 years on industry exposure. Always eager to try out new technologies and challenging scenarios.


Monday 10 February 2014

MIRROR, MIRROR, ON THE WALL

Reflections on Customer Feedback

First look
I recently met an old friend after a long gap of almost twenty years and after remarking on how little change we saw in each other (actually he had gone fat & grey and I was getting fat and bald), we got down to reminiscing about the good-old-days when we used to play hockey and football together.
Now, this old friend of mine, used to be considered as a tough nut on the field and I used to be quite wary of him while playing on the team opposite him - so it came as quite a shock to me when he said that he had been very reluctant to play opposite to me and used to always try to get on my team as he was somewhat afraid of me!
As I recall, I used to consider myself a fairly decent player who was “tough but not rough” on the field, and this was a real eye-opener for me.

Look closer
So it got me thinking and I realized how my views of myself differed substantially from my team-mates’ views of me. Where I saw myself as simply playing (hard) to win, others saw me as someone it was better not to cross on the field. On further introspection I realised that the actual picture was probably something in-between - but perhaps substantially closer to my friend’s view than my own.

Look around
This made me realise that what applies on a personal level, more often than not also finds a parallel in the work place and in corporate life.
Frequently, we chug along merrily thinking all is well and only start to wonder what is wrong when we find we are slowly loosing clients and repeats are not happening. Whether it is a development project, an implementation, a maintenance project or even back-office support - you feel that ‘we are doing a wonderful job’.
And yet your clients are leaving in droves!
Why?!?

Use a mirror
The most effective, and perhaps the simplest, way to guard against a situation like the above is to ask your clients what they think about you and the services you are providing them – this will give you insights into what the client expects and, more importantly, what the client’s pain areas are.
This way you will be able to address issues that are of importance to the client and correct minor irritations before they become major issues.

How to look
Getting informal feedback from the client will certainly help but to be really effective, feedback should be obtained from clients on a regular basis and in a structured manner so as to allow measurements and comparison on various levels:
· A long term client’s feedback over time
· Comparison between different clients serviced by one team
· Compare performance of teams across the organisation
· Take steps to address deficiencies and grievances of clients
· Measure effectiveness of steps taken above
A standardized feedback form should be used across the organisation, it must include points that are important from the client’s perspective, and should also allow the client to grade and comment on each point.
The feedback process should, as far as possible, not directly involve the team working with the client - and if a Quality department exists, it would be a good idea for them to solicit client feedback.

Clean the mirror
While most clients will welcome the opportunity to express their point of view, there are many clients who will not feel this is important and will need to be coaxed into giving their feedback.
There will also be situations where you will need to exercise caution in reading the feedback provided – sometimes a client will want to quickly get over the request for feedback and will simply mark all points average (or very good) depending on their mood or may even allow their own discontent color their judgement.

Keep looking
Remember, while it is always easy to think that ‘we are providing the best services’ or ‘the client can never be satisfied’, Gandhi’s advice that “A customer is the most important visitor on our premises…” applies equally to all businesses from corner shops to corporates.
You will need to keep yourself regularly updated on what your customers think about your services and how you could make them feel better about what you are selling them.
As long as you keep these ideals in mind, you will not go far wrong and your customer base will grow.


Kamal Changezi, Senior Manager, Direction -
Veteran in the IT industry with overall 25 years of experience, associated with Direction for last 14 years  handling the Operations and Administration. Famously known as the encyclopedia of Direction.
www.direction.biz




Monday 3 February 2014

Approaching your superior: PROS & CONS

It is always said, that if one cannot resolve an issue after multiple tries, one should approach a help-desk if one exists
OR
Approach a superior.

1) When it is specific to the project you are working on, it is often right to keep your superior informed about any issues you may be facing.
2) It may not be right to inform your superior of each and every little issue that you face.
3) It would also not be right if you are struggling through the issue & inform you superior only when it is about to break or burst or is already beyond salvage. This definitely does not help as the superior cannot do anything at that stage. He cannot repair the damage that has already happened.
Having said that, let’s look at the PROS and CONS of appraising your superiors of your day-to-day activities, and the best strategy to keep yourself and your superior happy:
PROS
A superior is there to help and there are situations where his involvement will be beneficial to you:
1) Superior can help you resolve an issue beyond your control / capabilities.
2) Superior is experienced and is most probably aware of most the issues you will face & can provide his guidance.
3) Update on every progress made – impresses the Superior of the resource capabilities & the challenges faced.
CONS
But there is also a negative impact of over-doing the same:
1) It gives an indication to the superior that the resource is not able to handle the issue himself.
2) It irritates the superior too, if he has to handle your tasks too frequently, you could be perceived as a ‘whiner’ and slowly new projects are directed to other capable resources (non-complaining types).
3) Performance KPI for this resource goes for a toss & might affect your next increment.

THE BEST STRATEGY
First give it your 100% to resolve any issue at hand and, in case you get stuck, ask your peers & then ask your superior.
Informing your Superior about the situation does not mean that you should start with the problem statement. One should give a brief status of the progress made in the project as a whole & then explain the issue clearly and concisely and also explain the nature of assistance you are seeking. 
When in doubt and / or when the repercussions of a decision could be very serious, you should always take your superior’s advice.
However, in case you are unable to contact your senior, do NOT be afraid to take decisions. 
There are no Right and Wrong decisions, there are only Better or Worse decisions.  You would never know if your decision is good or bad, if you don’t take action, so go on, decide, execute & evaluate your decision.   Doing so you will become a much better decision maker, enhancing your skill and overall career potential.

FINALLY A QUICK WORD ABOUT WHAT YOUR SUPERIOR EXPECTS FROM YOU?
1) Clear status overview on all accomplished and unaccomplished tasks.
2) Ideally the ratio of accomplished tasks v/s problematic issues should be in the ratio of 80 : 20
3) Don’t go overboard – Do not re-iterate the status again and again. Only additional & new info applicable on the issue needs to be provided.
Simply said you are working in a team where your superior is there to guide you, make the best use of your superior’s experience and knowledge and put in your 100% and Success will always be with you.
 
Mary Stella, Senior Manager, Direction -
Decisive, Action, Results oriented professional with over 17 years of experience in IT with the last 8 years focused on project management, delivery and management of large projects.