One of the key challenges, for any youngster starting a career in the IT industry, is the transition from a coder to a solution provider. Often I am asked this question, how do we evaluate the performance of youngsters and how do we help them in this transition.
For starters, I define three stages that any youngster goes through before he becomes fully profitable to any organization. Stage I is what I call the “Coder”. A coder is a person who knows one of the programming language or an application very well and can write programs or applications using this skill. Usually this is what is examined by the organization during the campus interviews. So the first thing to look for while evaluating any individual is to examine whether he understands a programming language and can write programs.
Stage II is the stage called the “Developer”. A developer is a more rounded person, who understands the design and tends to provide technical solutions. The developer is also good at troubleshooting, debugging and testing his applications. In short, if you give a program to be designed, a developer will design and develop and would give you a tested solution.
Stage III is the stage called as the “Solution Provider”. A solution provider looks at a problem, understands the requirement and provides a solution. Sometimes these might be technical solutions, while sometimes it might just be a clarification of information. Organizations just love solution providers as with them you just entrust your problems to them and they will find the solutions.
So what are the typical symptoms with which you can identify which category your people fall in? A coder would be a person who is trigger happy, meaning who will jump to coding as soon as you finish your problem statement. Remember such people. The first thing they will do as soon as you have finished defining the problem is open up their development environment and start coding. Typically, you will find that though these people are hardworking, the solutions they provide a sub optimal. The solutions typically would be complex and would use all kinds of technology available to showcase the technical superiority. The quality of final solution would be pretty low in their priority list. Also, typically there would be a lot of bugs related to incorrect interpretation of business logic. As they are usually good in the programming languages, making them understand these issues can at times be challenging. To add to it they are sometimes very rigid about what their responsibility is, for e.g. testing is tester’s job and not mine, so I will only code and not test.
Recommendation: If someone is stuck in this stage for sometime, then probably it is time to ask the person to move on.
A developer on the other hand would take a bit more effort in understanding what is required and understand the design. This person will usually first work out a design once you have given the instructions, then proceed to code. The solutions provided by this person would usually be after evaluating a few options. Also, the code would be tested to a level, so usually the solution will work the first time around. But, often developers tend to do what is asked of them, rather than what needs to be done. For e.g. if you ask them to do something, they would tend to ask you what are the inputs, the outputs and what is the business logic. But they would seldom ask you what is it that we are trying to achieve by doing this task. So though developers are very handy, at times, they tend to do what is asked from them rather than go figure out what needs to be done. Also, sense of responsibility is much lower, because they are doing what you asked to do, so if it does not work, how are they to blame!!
Recommendation: If someone is stuck at this stage for sometime, then the person needs to be counseled about his responsibilities and need to show more enterprise.
A solution provider is a project manager’s delight. With this person, you just have to state the problem. The person would then try to dig out what is the requirement and what is it that is being attempted by doing this task. Then the person would iron out the possibilities and then provide a solution for the problem. These people would also go the extra step to convince the stake holders on the benefits of their solution. Of course, the one thing that managers need to oversee with solution providers is at times in their over-zealousness they tend to over-commit.
Recommendation: Promote your solution providers and give them opportunities to grow.
In a performance appraisal mechanism on a scale of 5 where 1 is lowest and 5 is highest, the coders would be rated anywhere between 1 to 3 depending on their expertise in the languages or applications. A developer would generally tend to be rated around 3 mark, though some really good might sneak to a 4. Solution Providers would tend to be around 4 on the performance graph, with some really good ones pushing for a rating of 5.