This Independence Day..

Lets evolve..

from

a nation which is struggling for passion apart from cricket.

a nation where education is about producing order-takers.

a nation where money is the only reason you work for.

a nation where there’s still a large percentage of population under poverty line.

a nation which emulates the west.

a nation governed by incompetent people/politicians.

a nation which is indifferent about what goes around them.

a nation that celebrates mediocrity

to

a nation that cares.

a nation that innovates.

a nation that encourages people to think on their own.

a nation where every individual is educated.

a nation where everyone can afford 3 meals a day.

a nation where passion is the reason people choose careers.

a nation where there are equal opportunities to all castes, religions, backgrounds and present.

a nation that respects people for who they are.

a nation that is free of corruption and bureaucracy.

a nation that believes in excellence

Lets evolve..

Social Profile – Interviewing – Part 3

[tweetmeme source=”snarayan” only_single=false]

This is a continuation in the series of Interviewing.. Here are the first two parts Part 1, Part 2

I’ve shared my views about the recruitment process in general and the absence of actual coding/programming for programmers. In this topic lets talk about resumes.

What are resumes for.. to define one’s body of work and experiences that one has had in his career/lifetime. They give a glimpse of what the person has been doing in their lives till then.

By looking at a resume (in software industry) you can say that a person is interested in Java/.Net/Ruby and understand that he’s executed multiple projects in these technologies. And most importantly (and mostly useless..) his number of years of experience.  They effectively become the basis of the face-to-face interview that follows next, where mostly one is asked to define the things that are presented in the resume.

Now, how much can you tell about a person by just looking at his resume?

Frankly, the resumes that I’ve seen in last 5-6 years, Not Too Much

Most of the resumes look very similar and there’s very little information that can be termed useful in any way. Frankly, a visiting card would give you the same information that most of our resumes contain.

Now, here’s an alternative.

Let’s read the person’s blog. What does he like to write about? What does it tell you about his personality, his attitude..

Let’s look at the content that he likes to share with others.. Twitter, Google Reader, StumbleUpon, Digg, Delicious.. What are his interests?

Let’s look at some of his code that he’s written.. Github, Google code.. What does he like programming? What’s his style?

Let’s attend to some of his conferences.. Barcamps, Devcamps, Tech conferences.. How good is he in communicating things? What’s his style of presentation?

Now compare the information that you just got with his resume, and see for yourself..

Yes, it requires more effort than reading through a mundane resume.. but your chances of hitting a good programmer are extremely high. (if you’re looking for one..)

After this.. Interview becomes exactly what it should be.. a process of exchanging views. When both of you are moving in the same direction, well.. you join hands.

Many organizations are doing it very actively.. It should only be a matter of time before it becomes fairly mainstream.

Sometimes Strength is their greatest weakness..

[tweetmeme source=”snarayan” only_single=false]

Its odd, but true. Really. Many companies suffer because they did not evolve their business models at the right time.

We’ve heard of companies that fail very early on, in the startup phase, because of lack of a strong business model primarily. But, in current day and age, it is not enough if you’ve made through that phase. In the face of competition, first mover advantage is restricted to very few domains. Certainly not software.

Its essential that company evolves its business model, considering the state of economy, political structure and basically the environment. Many companies make the perennial mistake of sticking to their assumed strength for too long. Yes, I don’t mean to say that one should not value their core value proposition, I’m saying that one needs to continuously keep evolving it.

It’s about continuing to innovate in every means possible, and building that innovation around your core abilities.

When companies get bigger, they tend to be more focussed on their core abilities, simply because it is difficult for them to innovate and grow at the same time. Hence we see a trend that most innovation come from smaller players, who have little to lose and are willing to go that extra mile to build something that breaks the predefined rules. And naturally, bigger companies are found wanting.. playing the catch up game in the competition.

Recently, there has been lot of movement in this space. Many companies have tried to redefine themselves. Companies that have always been very traditional about their business models are getting out there and trying newer things. It is for the benefit of everybody. Those who are not doing it, they better have a very good reason for not doing so.

Coding. Interview as a Service – Part 2.

[tweetmeme source=”snarayan” only_single=false]

This is a continuation of the Interview as a service series. You can visit the part 1 here, where I talk about some of the common shortcomings in recruitment process of IT organizations.

Well.. to jump directly onto the subject, Coding. How many organizations have coding as a standard practice in their regular interviewing process? To your surprise, not too many. It is absolutely mind-boggling to how one can recruit programmers without actually testing their programming skills.

Programmers are supposed to program. Code. In any language, but Code. That is a absolutely non-negotiable. Any concept, any theory, if it is not demonstrated through code.. it is not correct. It is not good enough if one talks well, is well dressed and knows few technical buzzwords/jargons floating around in the industry. We’ve seen such folks struggle to write even the simplest of programs. And for all the referral process fans here.. these folks have lot of friends like themselves. They will refer everyone. No doubt about it. So you end up having a fantastic team of programmers who can’t program. Not program even if their lives depended on it.

This decision has to be made by the organizations. Do you want such posers in your system? If your answer is we’re fine with it, you can stop reading further. This one is not for you.

Ok. If you’re still here, I believe you understand the importance of recruiting right programmers. One of the important exercises to be done immediately is add 1 or more coding exercise in your recruitment process. Start with a simple problem, one  that requires some of the programming constructs and ask them to write code for it. Not pseudo-code. Actual program. Make sure the problem contains atleast 2-4 constructs like conditional logic, looping, modularization, data structure, etc.. as one sees fit. An example could be, from a list of numbers give me all numbers that are divisible by 3. As simple as that.

Look at how quickly one gets to solve the problem. In my experience, good programmers would be solving this the minute you’ve finished your question. Speed is not necessarily a measure of quality but can be treated as an indicator.

This is fine if you need just programmers. How about requiring good programmers? Do you need them? Yes.. ok lets go about doing it then.

Present a problem that involves more programming constructs and add a bit of design into it. You’d like to see how one goes about arriving at a solution. What are the approaches he takes. What are the approaches he doesn’t take, and reasons why. It can be a really exciting experience when you carry this exercise with a real good programmer.

I’d suggest doing this on premise and actually going through the whole process of arriving at solution. Thats the best way to do it.

One of the other approach I’ve seen is sending the problem to the programmer and ask them to submit the code. After submission, on premise, discuss with them about their choices and practices.

If you go with this approach, I’d rather suggest submitting code katas, screencasts.. This would give a nice idea of how a programmer goes about doing his job. How comfortable is one with his editor. What shortcuts does he use to get the job done. What classes he comes up with, etc..

To summarize, to build a good or even decent software organization, you need to focus on the kind of programmers you let inside. Better the programmers, better the kind of services or products you provide.

My interactions at Devcamp chennai..

[tweetmeme source=”snarayan” only_single=false]

Wasn’t a regular saturday for sure..

Last week, on saturday, I was in NDTV office observing the shooting of a show on social media and its influence on the way we interact..  One of the arguments was that People have forgotten the art of social interactions. There are very less real-world communities.

Well, this saturday, this argument was totally written off. At Devcamp, we had 100+ programmers (creators of the virtual world) under one roof and discussing the thing that they love most. Technology.

This is not a recap of all the things that happened at devcamp. Its only restricted to my interactions there..

First mention to few people who I was meeting after a long time. Mr. Dorai Thodla(iMorph), Mr. Suresh Sambandham (orangescape) and Sriram Narayan(Thoughtworks). I admire each of them a lot and for different reasons. Was great to catch up with them and talk about various things..

Next, loved the self-organizing nature of the event. People were free to move around, talk to different people and discuss things the way they liked. Although, I felt the awareness level about Open Space Conferences was fairly low on the attendees. So at times it got a bit chaotic. But taking nothing away from the charm and enthusiasm, it was a nice show.

The presenters, I expected much more live code and variety of styles, which was missing. Most of the presentations were powerpoint stuff. Seriously.. in a devcamp you need to see more code. Editors, syntax, program, they were a little less. Guess, that will improve in the further sessions.

I had a presentation of my own along with Deepan, my colleague and friend, on “Code smells and Refactoring”. Got few techies interested and had a nice time discussing finer details of programming. (I had a full code session. No presentation.)

Next up was lightning talks/fishbowl sessions, which disappointingly had very little participation. So we thought, we’d change the style and invite people to talk based on topics we chose. It was an interesting little session, which really caught my imagination. Some really interesting topics discussed there.. Some of them are as follows:

1. Inspiration as a programmer.. Names starting from Larry Page to Joel Spolsky were mentioned as inspirations for being a programmer.

2. Products that we’ve appreciated.. Stackoverflow, Delicious, Winzip, Hibernate, Gmail, etc. were mentioned.

3. Products that’ll make future interesting.. Google Wave, HTML5 & CSS, Mobile apps, mobile/e-commerce. Here’s a post on it by Dorai.

Apart from these, there were couple of young Entrepreneurs (still in college), who are trying to change the world. Pretty neat stuff.

All in all, Devcamp was a step in the right direction. Though, there’s a long way to go still.

Check out few tweets here

How about interviewing as a service? – Part I

[tweetmeme source=”snarayan” only_single=false]

There are many parts of recruitment that are outsourced. Outsourced to people who have little to no knowledge of what kind of people are required for the job.

So the effects are, requirements like this:

1. Do you know Java?

2. We’re looking for a .Net person for this project.

Would a resume which has no such keywords like Java, .net, etc. be even filtered into our recruitment process. Imagine a resume which states things like Object oriented principles like Law Of Demeter, Tell don’t ask principle, Liskov’s substituition, Refined Unit Testing, Test Driven Development, etc. I’m sure 99.9% of such resumes will be filtered out.

In the previous example 0.1% of resumes escaped due to some mistake in the filtering software/process.

You’ve already lost some good programmers. Congratulations.

Next up is the interviewing process..

3/4 companies do not have coding as part of the interviewing exercise. That is fairly irrelevant, isn’t it? You can judge a person from his body language, confidence in his language ability, etc.. right? Right.

There are couple of reasons why this is happening.

1. Already our outsourced business principle has made programming one of the clerical jobs. Programming is a necessary evil you need to go through in your pursuit of becoming a manager.

2. All companies are virtually the same. You can hardly differentiate one from the other.

So interview is done. Wonderful. Our candidate has been hired.

Next up, he refers people similar to him for the job. In this revolutionary referral process, the only motivating factor is money/reward. So you mostly get people referring for reasons other than improving companies culture and stuff..

Well.. we’ve been extremely happy with such process till now. Since the demand has been high, we did not really care.

But for longevity this wouldn’t work. So the process has to be refined to not filter exceptional candidates. Move away from the sub-standard and mediocrity encouraging framework of recruitment.

For companies/people interested in solving this.. I’ll try to touch upon the solutions/theories in a series of articles. Your suggestions/case-studies are also welcome.

My people always ask me “what to do”..

[tweetmeme source=”snarayan” only_single=false]

As an entrepreneur/manager, believe me, its not a good position to be in. You want people who can/are willing to take decisions.

The reason you hire them is because you think they are good at what they do (ideally.. better than you too.). So you need them to tell you what they want to do.

Sadly, many argue that its a very ideal state to be in.

Ok. Point taken. Back to reality.

Don’t tell them what to do and observe them.

What could happen? Will no one work? Would there be no decision at all?

Or

Would people start thinking what to do..
Would people start taking decisions and learning from their failures/successes..

Remember, the reason people ask you what to do is because they’re not confident of their decisions and are afraid of failure. Give them the cushion for failure and encourage them to take decisions.

Embrace innovation. Accept failure.