Tuesday, December 27, 2011

REST Vs SOAP RPC


I had been familiar with the RPC (remote procedure call) interfaces for quite sometime just like many others: be it the proprietary COM and .NET remoting or a more standard and interoperable SOAP interface developed using any technology . I never dared to see what is the so called 'RESTful Services' until one of our current projects forced me to take a look at it and find out what it is. The journey became quite fascinating when I started understanding what's REST and comparing it with SOAP and other RPCs, particularly the total shift in the mindset that a normal developer would need to undergo to create a RESTful service.

If you are unfamiliar with SOAP or in particular any RPCs we shall see that with a brief example

SOAP RPC

Generally all RPCs are 'action oriented'. In fact, most of our programming models are 'action oriented'. What do you mean by that? Take the scenario in which you are developing a CRM application and you are tasked with developing a CRM SOAP service. You need to list down all the customers from the DB. If the user selects one customer from the list, then you need to give a detailed view of the customer data and allow the user to create/update/delete etc. Pretty normal CRUD scenario.  If I ask what would be the public interface such a CRM service, I am sure most people would jump at the following interface

Customer[] GetCustomers()
Retrieves all the customers in the DB
Customer GetCustomer(int custId)
Retrieves the details of the given custId
Bool CreateCustomer(Customer customer)
Creates a new customer in the backend with the supplied Customer object
Bool UpdateCustomer(Customer customer)
Updates an existing record

It's quite straight forward, isn't it? Let's see how the same scenario unfolds with RESTful services

RESTful Services

The main difference between REST (Representational State Transfer) and other models is that REST is 'resource oriented' rather than 'action oriented'. The other important difference is REST's reliance on the standard web protocol, HTTP. The best example of a REST service platform is none other than the web or WWW. If you build your service exactly similar to how the web works, then your service becomes a RESTful service.

Just think for yourself how the web works

  • Open the browser, type www.google.com and enter. You see the home page of google. What you have done here? You have issued a 'GET' HTTP command for a resource. Here the resource is, possibly a file on the disk. That is, the home page file on the google's web server
  • Assume you are creating a Gmail account for you, you are typing in all the required data and submit the form. That means, you have issued a 'POST' HTTP command for a resource, possibly RegisterUser page or similar in the google server

Do you get the idea? If you use a HTTP verb command (GET, POST, PUT, DELETE etc.) over a resource then you become 'REST'. The resource could be anything that is uniquely identifiable by a URI like a web page, a video, an image, a PDF file, an entity like Customer, anything and everything.

Let's apply the same concept for our CRM service. You will first identify all your resources, fix the URIs to uniquely identify the resources and then decide on the HTTP verb the resource is going to support

Resource
URI
HTTP Methods
Customers (root resource)
'/'
GET (gets all the customers)
Customer
'/{custId}
GET, PUT, DELETE (you want to get a particular customer details, create a new customer or update an existing customer or delete a customer)

Note: the URIs are relative here. The absolute URI will look something like the following

http://www.mycrm.com/ (all customers will be listed)
http://www.mycrm.com/CUS000123/ (for a particular customer)

Hope you would have got a fair idea of what a RESTful service is about.

Why REST is becoming popular and more and more people adopt REST including Microsoft?

  • REST uses the standard HTTP web protocol. HTTP has got a lot of built-in capabilities like authentication, caching, content negotiation etc. All those benefits you get for free when you use REST
  • REST has an uniform interface: with 3 or 4 methods you define every operation that brings in a greater amount of simplicity
  • Since it's HTTP based, both the server and client become stateless that makes your system perfectly scalable (i.e. the HTTP request or HTTP response has got all the details contained within themselves so the client or server doesn't need to maintain the state)
  • All systems that support the standard HTTP protocol support your service too. It's more interoperable than SOAP

Now we come to the important question of SOAP Vs REST

SOAP Vs REST??

When this question is raised, an alert and safe architect would answer something like this- 'it depends'. That's the standard answer and here it's quite correct too. I believe you need to make the right choice contemplating your current problem domain

  • For simple CRUD operations REST makes perfect sense, but for a complex domain the resources that you carve out may not simulate the real time. For example you may need to consider 'money transfer' as resource in the banking domain whereas our logical mind tells us it's more of an operation.  It's a disadvantage to me, but for some people it's the simplicity- "with a few well known HTTP verbs I am able to define all my behaviors"
  • SOAP tool kits are not supported in all the platforms, no such problem for REST since it's HTTP based
  • For REST the transport layer is fixed, that is HTTP. For SOAP you have many option like TCP/IP, NET PIPE etc. including HTTP
  • SOAP supports sophisticated security standards, but with HTTPS REST may be giving a close competition

I don't want to sell one over the other, because I myself is not influenced by any one of these models. I am perfect with the response 'it depends'

Sunday, December 18, 2011

IT orgs will lose control over IT budgets in Future: Gartner


IT budgets and responsibilities are moving out of the control of IT departments and into the hands of others, Gartner says in its vision for 2012 and the coming years. Any idea who are the 'others'?

It's the business managers and business users. The business community feels empowered like never before particularly with the advent of 'Cloud' and 'Mobility'. Business users have started improving their productivity with devices, tools and applications of their choice, in many cases without consulting the IT. In the changed techno-political scenario,  IT is forced to legitimize the devices and tools that the business user started using without IT's guidance and direction. In the past, the same business user would wait endlessly for the IT to come and provide the 'right' tools or even the ERP that influences the life of a business user. And they used to work with whatever's been provided by IT even though they are not exactly happy.

Those times are gone now and the main trend that is forcing this change is the increased consumerization. With the smart phones, tablets, social networks and cool apps, business users are forcing the IT to fall in line or become irrelevant in the enterprise technology landscape. CIOs lose control over the devices and applications that the business user consumes and ultimately on the IT budget as well. In future enterprise wide IT budgets will be fought over by many a business units, the performing business unit will get the bigger pie. IT would need to keep pace with the business users and consumers and be tech savvy or face the risk of becoming sidelined.

When the public clouds become the mainstay, users will have the increased tendency to approach the help desks of the cloud service provider by-passing the enterprise IT

Is this good or bad?

  • This is extremely good news for small and medium IT service providers (vendors).  They always find it difficult to make an entry into enterprises mainly because of the CIOs love for the large scale vendor that provides all the possible services required by the enterprise though quality is something that needs to be desired
  • This will provide an opportunity for niche IT service providers (someone who specializes in SharePoint or mobile or CRM and the likes). This results in high quality technology solutions
  • Business-IT alignment won't be a big problem like before. Since it's the business that demands the IT capabilities, there will be less of business-IT alignment problems in future. It's not the IT which is imposing its whims and fancies on the business
  • Technological innovations will sneak into enterprises rather quickly resulting in rapid ROI
  • Business users will be the change agents rather than the IT 

What's the role of future IT orgs?

One flip side that I see with the trend is, there may be a lack of holistic IT strategy for the enterprises that may result in islands of apps and tools incompatible with each other.  Each business unit (particularly powerful, performing business units) will influence the technology landscape which they may not be well aware of. Here's what IT will have a role to play

IT and the CIOs will have to take more of a governance role. They envision the IT road map- be it the infrastructure architecture or data architecture or the application architecture. Business can choose the solution they think would help them accomplish their business objectives and create value for their customers, but within the contours of the roadmap set by IT

Except for the above, I don't see any issue with the predicted change. I welcome it. 

Monday, October 31, 2011

A Result-Oriented Approach to Performance Appraisal


Employee performance appraisal is arguably the top business-enabling functional process,  in knowledge based industries and professional service organizations where human capital and their performance are the fuel that drive the business engine. HR community is constantly trying to innovate and refine the appraisal process  that includes the popular 360 degree feedback system invented in the 90's.  The 360 degree system, in particular, added new dimensions and provided aspects which were never thought of earlier and was an important milestone. Yet,  I have a feeling that different systems being followed by organizations are far from comprehensive and never address the performance related issues faced by industries like IT in a holistic manner

Current Pain Points

  • Appraisal systems are mostly generic and don't address the needs of industries like IT where the knowledge of the employees is the real competitive edge
  • Current systems don't differentiate between different roles and their needs
  • Current systems don't consider different experience levels and their needs
  • Current systems don't recognize the different stages of employee life cycle

New, Value Added Performance Appraisal System

Crux of the new system are the identification and endorsement of different stages of employee life cycle, different approach to KPAs and the customized appraisal questionnaires

Employee Life Cycle

Career Beginners
New to the company, new to the role, new to the industry,  new to the professional circle
Organization Beginners
New to the company but established in the role
Role Beginners
Established in the company, but assumed new role
Organization/role Beginners
New to the company, new to the role even though they are generally experienced
Established Professionals
Established in the company, established in the role

Categories of KPAs (key performance areas)

Role based KPAs (subjective in nature)
Nothing but the requirements of any role. Suited for role beginners, less experienced people and certain roles where targets cannot be set objectively
Target based KPAs (objective in nature)
Suited for established and experienced professionals and certain roles where targets can be set objectively
Hybrid KPAs
Mix of role and target based KPAs. Suited for certain combination of role and life cycle stage. Example- a young sales person may need this. It will evaluate her adoption to the new role as well as set an objective sales target

Customized Appraisal Questionnaires

In most of the current systems, the ratee (person being evaluated) fills out a KPA form with her own comments and score for each KPA. The rater (person who evaluates the ratee) also fills out the same form with her comments and score. The difference between the rater's and ratee's perspectives become the moot point of discussion in the appraisal meeting. Seeking the opinion of the ratee is a refreshing change brought out by the 360 degree system. We can still try to improvise the system.

In the new system, the ratee and the raters shall be asked to respond to a tailor made, customized survey question set to make the environment more lively and interesting. The new system doesn't try to eradicate the KPAs, but try to judge the performance in the key performance areas rather intelligently and indirectly by asking questions.

Success of the system depends on the tactful preparation of the questions. It requires thoughtful contributions from expert HR specialists and senior resource managers. Most questions may be indirectly checking one or more specific aspects of the ratee's performance or ratee's perspective or the environment/constraints under which the ratee is working

Ex: Are you able to continue your hobbies/passions (like Yoga, meditation or a simple body work-out) which you were pursuing before joining the company?

[This question attempts to gauge whether or not the ratee's work-life balance got affected after joining the company]

The large question pool may have many sub sets to address different requirements

o    Questions to check the ratee's comfort with the new company and  team
o    Questions to check the ratee's comfort with the new culture
o    Questions to check the ratee's comfort with the new role
o    Questions that check the ratee's fit-gap with the current role (these are very important performance evaluation questions)
o    Questions that check the ratee's target performance (questions like whether or not the target profitability achieved) 
o    Questions to check  whether the ratee commands the cooperation of all the stake holders (these questions try to gauge the team working ability of the ratee, but sometimes may throw surprises like there is no problem with the ratee, but the organization culture itself is poor)
o    Questions that just seek facts without being judgmental (this gives an opportunity for the ratee and raters to think over just what had happened in the evaluation period without pre-conceiving anything)
o    Questions that check the future relevancy of the ratee in the organization
o    Questions for each employee life cycle stage
o    Questions for each experience category
o    Questions for ultra high performers and people who had performance problems in the past
o    Questions that check the longevity of the ratee in the company
o    Questions that check the current band width of the ratee
o    Questions that check the glorious moments of the ratee
o    Questions that check the major and minor irritants in the company
o    Dummy questions (they don't evaluate anything, just a mental trap)
o    Etc. etc.

From this large pool, a customized set needs to be prepared for the each role, each life cycle stage or even for some important individuals like department heads, COO etc. This requires careful and sharp thinking by the HR specialist and resource managers. Once again emphasizing the point - mostly questions will not be direct, they are carefully and tactfully crafted to objectively evaluate performance.

Questions must be randomly mixed to avoid detecting any patterns. Generally the questions set is to be designed in such a way that makes the filling out process more interesting and enjoyable one.


Appraisal Strategies

By now, it must be clear one single strategy will not fit the needs of different sections of the company.

Career Beginners
  1. Conduct appraisals once in 3 months in the first year
  2. Check and find out how they are settling down in the company
  3. Check and find out how they are seamlessly migrating from the campus to the professional circles
  4. Check and find out how long they will take to make meaningful contributions (Recommended: 6~9 months)
  5. Coach them to become great individual contributors
  6. Set them role based KPAs
  7. Reward their learning aptitude, learning attitude and quest for knowledge
  8. Coach them to sustain their initial enthusiasm to last long 
Organization Beginners
  1. Conduct appraisals once in 4 months in the first year
  2. Check and find out how they have adopted to the organization culture
  3. Check and find out the organizational barriers to excel in the already familiar role, then work to remove the barriers
  4. Check and find out how the work-life balance is affected after joining the company
  5. Check and find out how quickly they can start meaningfully contribute (recommended: 3 months)
  6. Check and assess their longevity in the organization
  7. Initially set role based KPAs, once they are comfortable with the environment, introduce target based KPAs
Role Beginners
  1. Conduct appraisals once in 4 months in the first year
  2. Check and find out how they have adopted to the new role
  3. Check and ensure that they are not promoted to the new role because of 'Halo effect'
  4. Check and find out the organizational barriers to excel in the new role, then work to remove the barriers
  5. Check and find out how quickly they can start meaningfully contribute in the new role (recommended: 3 months)
  6. keep the options open to revert the role if needed. If the role reversal is inevitable, do that sensitively
  7. Set role based KPAs for the first year. Once they are comfortable with the new role, introduce target based KPAs
Organization/role Beginners
  1. Most vulnerable category, handle them with care
  2. Conduct appraisals once in 3 months in the first year
  3. Apply and implement all those applicable to organization beginners and role beginners
  4. Set role based KPAs
  5. Check their longevity in the organization. 50% of this category may resign in the 6~12 months period because of cultural mismatch
  6. Check and ensure they are stress free, they enjoy the new atmosphere
  7. Check and find out how quickly then can start meaningful contribution (recommended: 6 months)
Established Professionals
  1. Conduct appraisals once in every 6 months
  2. Set target based KPAs
  3. Ensure their longevity in the organization
  4. Set an innovative reward system based on their accomplishment of KPAs
  5. Inspire them to be even more great performers
  6. Baseline them to be the performance bench mark within the organization


Finally any system or process is only as good as the people who implement it (though die hard fans of process oriented approach may not agree). In order to make it a success, following shall be the recipe

  • HR shall have a great understanding of the system. All the time they train people on the importance of high performance and how to approach the new system
  • One person from HR shall become the 'High Performance Coach (HPC)'
  • HPC shall work with managers to identify the different needs of the employees.
  • HPC and the manager shall formulate the questions for each appraisal period, each role, selected few individuals etc.
  • Questions and responses are analyzed in an intelligent manner to get new aspects and unexplored dimensions
  • Appraisal questions are continually reviewed and revised
  • Appraisals are not merely conducted to reward the past performance, but for exploiting the promise an individual holds for the future
  • Finally HPC is a full time job

Sunday, October 9, 2011

'The boss is not your friend'


The book was recommended by one of my 'rebellious' friends, I finally got hold of the book in the Odyssey amidst hundreds of corporate management literature books. Obviously Odyssey got it wrong, thinking that it's one of those corporate worshipping management or leadership materials narrating the greatness of our corporate leaders and their infallible vision and mission. The book was just doing the opposite, thrashing every corporate entity and idea- be it the CEO or just your manager, it's culture or the structure, be it Raju's Satyam or Ratan's Tata or NRN's Infosys. The book is penned by one 'little known' Vijay Nair and his profile reads he is an organizational coach. I was left wondering after all which organization would invite him to coach after this book

The author bulldozes 6 dogmas that every organization imbibes and brainwashes their employees to trap them effectively. These are the basic tenets which the employees are trained to believe without questioning.

Organizations are organic entities
Author: So what? You can still be evil

Organizations take care of your interests if you take care of theirs
Author: Here responsibilities are unconditional for you and selective for the organizations

Organizations are promoted and helmed by visionaries
Author: Only that those visions are sometime hampered by issues pertaining to profitability

Organizations want to empower you
Author: But the empowerment is much lower to your responsibilities (read 'work')

Organizations reward hard work and performance
Author: Yes, they reward someone else for  your hard work and performance

Organizations provide safety and security for their employees
Author: But for the labor laws, organizations would even shy away from basic compensation

The funniest part is how the author categorizes different types of Bosses. He calls it BLFI (Boss Labeling and Fixing Instrument). It's a set of 25 objective type questions which the author asks you to respond at least 18. Based on your responses, he attempts to show you what kind of boss you are blessed with. Once you know who your boss is, he recommends strategies to tame your boss.

Author has 6 types of bosses. For each type he has coined a word that I never understood just by reading it, Probably you will, if you are a keen viewer of Discovery or Animal Planet channel.

Oily Oyster (Oo)
The boss who is pleasant and sweet as long as you limit yourself to what he required of you. The moment you try to push yourself to the next level, the boss starts to conspire against you. The boss will still act as if he has the same sympathy and empathy towards you, but  will be trying the pull the carpet underneath.

Vicious Viper (Vv)
Vicious, vindictive and poisonous. If you ever rub the boss on the wrong side even inadvertently,  you will get it back one day. You will have day-to-day problems working with this boss

Flattering Fraud (Ff)
Praise you all the time face-to-face, but will create a bad image of you in the organization 360 degree- to his boss, your peers and your team members

Crafty Conman (Cc)
Intelligent, fiercely competitive and extremely cunning. You will not have day-to-day problems working with the boss, but you are responsible for your own destiny and the boss will never help accomplishing your own goals. In fact, the boss will cunningly work against your interests

Burly Bastion (Bb)
Makes hefty promises every time, but never serious about implementing it. The boss will stand  between you and your ambitions and you will realize only lately how cleverly you've been trapped. You cannot make the move outside and you cannot realize the goals inside too

Horny Harry (Hh)
Guessed it right? Yes the boss who tries to take sexual advantage over a sub-ordinate.

Are you expecting a type that characterizes the good boss? You are so naïve, says the author. There are no such creatures in the world. It was quite interesting to read the case studies (case stories?).

The book advises not only to tame the boss, but other entities like the chief of the organization, HR manager and likes. It tells you how to tame the organizational culture too

Tuesday, September 27, 2011

I care, so I criticize...


Have you criticized people? Have you criticized your spouse, kid, peers or even boss? Were you comfortable doing that? What's their reaction?

I have criticized people many a times in the professional circles and official meetings. When other's reactions were not so receptive I have lamented myself why these people cannot be professionals and open minded, after all I am doing it for all the good reasons. But there were occasions when I was in the receiving end, and I had struggled to become the same 'professional and open minded' which I wanted all others to be :)

It's not simple, not simple at all- criticizing others and being criticized by others. So what's the way out?
Can we avoid criticizing and be nice and goody-goody to people? Can we see that we don't discuss contentious issues and pre-empt a possible confrontation?

If you want to do that or already doing that then you don't care others; you don't want others to improve and come up; you are selfish

Criticism is like a double edged sword. You MUST do it, You MUST face it. Real challenge is how are you going to do it? Shiv Khera gives a few tips for constructive criticism.

Are you specific while criticizing others? If no, then people may suspect your motive. There has to be a clear, constructive purpose
Are you doing it with care and compassion? Are you able to make eye-to-eye contact?
Are you telling others the benefit of correcting the issue? Are you showing the loss from not correcting?
Are you sarcastic? Then you don't care
Are you questioning the intent of others while criticizing? Then you don't trust
Does criticism give you pleasure? Are you bringing personal grudges while criticizing? Then you are sadistic  and you have no business criticizing others
Are you giving others the opportunity to explain?
Are you open minded enough to consider other's suggestions?
Are you cool and firm while criticizing? Obviously you have to be
Are you closing the conversation on a positive note?
Are you congratulating them when they realize their folly and ready to correct?

There must be some tips while on the receiving end too. (but this is by 'yours truly' :))

Are you open minded enough to face criticism?
Are you looking to who's doing that rather than what they are doing? Obviously you should not
Are you attributing motives to the person doing that? Then you don't want to improve
Are you unnerved or tensed while facing criticism? Then you lack confidence
Do you respond by targeting personalities rather than targeting ideas? You need to have the tenacity and courage

So do you care others and want to help them out? Criticize them constructively
Do you want to improve yourself? Face criticism with a open, positive frame of mind

Happy criticizing!! (of course, constructive)

Tuesday, September 20, 2011

Top 10 Motivators


Last week I had been to Bangalore to participate in the 3 days 'Hi-Impact Leadership Workshop'  conducted by Mr. Shiv Khera, the Motivational Speaker &  Leadership Consultant.  He was able to create a big impact on the attendees with his passionate speech and ability to influence your thought process. Not to exaggerate, the work shop was a clear blue-print for success. I recommend this program for all, current and to-be leaders.

I thought of blogging a few interesting topics of the workshop. The first one is the top 10 motivators. This was a study conducted at Ford Motors for management and rank and file separately. I have listed out the 10 parameters.  You shall rank between 1 to 10 with 1 being the top motivator and 10 being the bottom one.  I have given results of the survey too and you shall compare your ranking with the actual survey results (Please don't see the results before you finish the exercise) 

One important conclusion I came into was rank and file of the organization is much more responsible and loyal to the organization than the management. It may be surprising but that's what the result shows

Motivators
Your Rank
(1 to 10)
Tactful discipline (conveying your message without offending)

Personal loyalty of the supervisor

Interesting work

Job security

Feeling of belonging

Appreciation of work done

Help on personal problems

High wages

Promotion in the company

Good working conditions


Finished the exercise? Now compare it with the actual survey results given at the bottom
...
...
...
...


Motivators
Management

Rank & File
Tactful discipline (conveying your message without offending)
7
10
Personal loyalty of the supervisor
6
8
Interesting work
5
6
Job security
2
4
Feeling of belonging
10
2
Appreciation of work done
8
1
Help on personal problems
9
3
High wages
1
5
Promotion in the company
3
7
Good working conditions
4
9

Do you agree with my assertion that there are more good people in the rank and file than the management?  :)