Tuesday, December 31, 2013

5 Rules for Outsourcing Interviews

Before I get to the actual rules, let me tell you a story. A few weeks ago, I was approached by an HR Associate of a Bangalore-based e-Learning Solutions company. They had an "Engineering Manager" opening, for which this HR fellow thought my profile was well suited. After going through the Job Description, I felt the role was a bit more "technical" than I would like. But then again, most companies do give a technical slant to their Project Manager JDs, to ensure that the candidate has some past coding experience, instead of being a typical "MBA-pass manager". So I asked him to go ahead and schedule a telephonic discussion. Soon he called me and told me that his CTO Mr. Charles Dickhead (not his real name) would call me on the morning of 27th December. He also said that he'd send a confirmation email, which never came. Still I remained available at that time, just in case CD gave me a call. When the call didn't come, I went on with my day, and forgot about the position.

Out of the blue, the HR guy called me again yesterday and apologized for the non-availability of CD due to Christmas (on 27th December???) and confirmed the rescheduled telephonic interview for today afternoon. Since I've been giving many interviews of late for Project Manager positions, I did not feel it necessary to do any specific preparation. If you've managed projects for 7 years, including Development, Production Support and Upgrade projects, across various technologies, you can manage practically any IT project. All that an interview needs to check is the depth of your PM experience, along with your personality and fitment to the organization. But CD apparently had other ideas, because he outsourced the job of taking my interview to someone else, let's call him Mr. AK-47. To my horror, this guy followed up the standard, much-abused "tell me more about yourself" question with a set of queries that are normally reserved for freshers straight out of engineering college.

"What are the differences between the deployment of a Java project and that of a PHP project?" was followed by "What are the key features of MVC architecture?" By the time I'd wriggled my way out of those two, I realized that AK was at best a Technical Architect, at worst a Tech Lead, and most likely that amorphous entity called a Project Lead. He had probably never met a person with 14+ years of IT experience, much less interviewed one. As I desperately tried to talk myself out of jumping through the window, AK came up with a classic: "What are the 4 pillars of Object Oriented Programming?" As I hemmed and hawed, not knowing whether to kill him or strangle myself, I managed to blurt out "polymorphism" and "inheritance". Sensing that I was choking on the question, AK helpfully came up with "abstraction" and "encapsulation". At this point I was wondering how to end this nightmare, when AK went and outdid himself, if at all that was possible. He said, "Give a one-line definition of each of the 4 pillars." That was it for me; I openly told AK that his questions were far too technical for me, and that I couldn't answer them. AK decided to put me out of my agony by ending the interview and offering to convey "his feedback" to the CTO.

So, without further ado, here are the 5 rules you need to follow while outsourcing interviews, which you were supposed to take, to your juniors:

1. Team Member interviews can be outsourced to Team Leads and above
2. Team Lead interviews can be outsourced to Project Leads and above
3. Project Lead interviews can be outsourced to Project Managers and above
4. Project Manager interviews can be outsourced to Senior Managers and above
5. Never break any of the above 4 rules. Never! NEVER EVER!!!

Friday, December 27, 2013

Leadership and Transparency

This morning, while reading the Economic Times, I came across this quote from the global HR head of one of India's leading Consumer Products & Services companies: "In turbulent times there is a need for greater transparency at the workplace, which will lead to higher accountability, responsibility and responsiveness on [the employee's] part". This struck me as a very powerful idea, one that I believe needs to be implemented urgently by all companies.

Whether your company has just lost a big deal, or has run out of working capital in a recession year, or is facing a hostile takeover by a rival organization, be transparent - go ahead and tell your employees all about it. Also tell them the short-term and long-term impacts of the problem. Normally, whenever a company faces tough times, the natural reaction of the leadership is to shut themselves off from the employees. They feel that, by not conveying the bad news for as long as possible, they can protect the employees from demotivation and low productivity. But we need to realize that such an information blackout normally has the opposite effect on our team. An employee who knows what is going on is more secure mentally, since there is no uncertainty about the situation of the company. Such an employee has two straightforward choices - either stick with the company and help it tide over the bad times, or leave immediately for greener pastures. On the other hand, an employee who is kept insulated from the bad news will soon realize that something is being hidden from him but at the same time will not be sure as to what that hidden matter is. This uncertainty will keep preying on his mind continuously, thereby reducing both his immediate productivity and his long-term engagement with the organization.

Another aspect of transparency is to treat all employees equally during a crisis. If you apply one set of rules for some employees, and another set of rules for others, you run the risk of alienating both groups by making each think you favored the other. For instance, if you implement a cost cutting drive, ensure that applies to everyone, including the leadership team. If the leaders don't lead by example, they will find it difficult to push through any unpopular measures in their respective departments. Or else, if there is a cash crisis and salary payments are delayed, ensure that all the employees are paid at the same time or nobody is. If you decide to pay the junior employees first, saying that they are more dependent on salary income, the seniors will definitely support you. But somewhere in their minds, they will feel betrayed and the first thought of quitting will begin to arise. A third instance where transparency is needed is during appraisals. When one employee gets a good rating, or an award, or a promotion, it is your responsibility as a leader to explain to the rest of the team why that person is getting the special recognition. This will guard against bad blood and allegations of favoritism.

Wednesday, December 11, 2013

RoR Music Database Project

Finally, I've created a Rails + SQLite version of my favorite practice project - the Music Database. This one looks very different from my other (Perl, Python, PHP, ASP, ASPX) implementations of the project - as Ruby is an object-oriented language, I tried to model the application as closely as possible to real life. Usually I store the details of each song in a row of the database table, with the album details (Album Name, Year, Artist Name) being repeated for multiple songs. But here I made Album the primary model and Song a secondary one. So the user has to first create an album and then add multiple songs to it. Here are the steps I followed, once I had the design ready in my mind:

  rails new MusicDatabase
  cd MusicDatabase
  rails generate scaffold Album albumname:string albumartist:string albumyear:datetime
  rake db:migrate

Edit the file "config\routes.rb" to open "views\albums\index" by default, by adding the line:
  root :to => "albums#index"

rails generate model Song songname:string album:references
rake db:migrate
rails generate controller Songs index show new edit

Edit the file "controllers\song_controller.rb" to have the standard methods for showing, adding, editing and deleting songs

Edit the files under the "views\songs\" directory to have the standard forms for showing, adding, editing and deleting songs

In my case, because of the form code that I copied from the Rails tutorial, I also had to edit my Gemfile to include the line "gem 'dynamic_form'" and then do a "bundle install". And thus, I completed my Ruby on Rails "self test" by getting the Music Database project running successfully

Wednesday, December 4, 2013

Steps Taken to Revive Galaxy Tab 2 P3100

When my tab recently suffered a battery drainout issue, these are the steps I took to revive it:

Charge battery to 99%
Perform factory reset
Connect to Wi-Fi
Provide Samsung account settings
Provide Google account settings
Update Samsung apps
Power off
Insert SIM card and Micro SD card
Power on
Save GPRS settings
Install essential apps only (Clean Master, Facebook, Blogger, MyMail in my case)
Update stock Android and Samsung apps as needed
Add apps and widgets to home screen as needed