Friday, June 02, 2006

.NET Developers

My Office wanted to find some good .NET resources since two of our best guys are leaving. So we found some CVs through the staff itself and we interviewed some of them. After spending time for all the interviews, we could select only one person, but unfortunately he had commitment to his current work place as he was leading the team there. So he was not in a passion to join
The GM proposed that we should go for a big paper advertisement and we should conduct an examination to recruit some people. But when I looked around,  I found lot of paper advertisement similar to our requirement in the Sunday paper. It that case, it’s a game of convincing developers, why they should select our company.  

I think you can find Three types of resources in the industry.
1) People who have a degree as a qualification and know some development language semantics form some course or certification.
2) People who are creative, who reads books, who experiments and challenge software development concepts.
3) People who have no idea what programming is

1st type of people is usually recruited by large outsourcing companies. Because they have a well setup internal process and its matter of training new people to follow the process and making them knowledgeable only in the area that the company wants them to be fit in.

2nd types are the people who works is small or medium scale development companies. Companies which develop products or custom creative projects based on customer requirements. The customers of these companies are not ready to pay for various additional resources such as business process consultants, dedicated project managers etc. They expect a team of 5-10 people will do the job for a flat rate and they don’t wont jazz like dedicated project manager and domain consultant etc..

These requirements result the need of multi talented, very creative people to support these software projects. The developers should have little marking ability and personality, planning ability, R&D skills and self discipline to very closely communicate with team members and management. The reason is that, there are no closely monitored process and supervisor level people to monitor whether everybody is following the process. Basically no one will consider the management time as a need and no one is there to pay for this time.

When you compare software developers, you can find hundreds or thousands of people of category 1, but very limited people like 500 for category 2. Because category 2 is value addition to category 1 and the companies looking for category 1 prefers category 2 people.

Therefore finding a category 2 person is very hard. Even if you find one, he is currently working in someplace and they won’t allow him to leave. They will offer what ever he wants because it’s a very valuable asset to them and they know how hard it is  to find same caliber of a person.

I think usually at a given time, there are 20-30 developers in category 2 changing their companies due to some reasons. But since there are new companies joining the industry every day, grabbing one is been a major challenge.

In a way the outsourcing model has created some of the problems.
Consider the garment industry in Sri Lanka. Sri Lanka is one of the best countries who produce garments to the world. But see how it works. International company seeks a local partner to outsource its production. They will setup the factory, train people, and create processors and they will create a best business venture.

But what happened when the US stop the quota system.?. Most of the Sri Lankan garments factories had to close. My point is that, knowledge won’t come to 3rd world countries as to independently operate. Some consultant creates a process and makes our people to follow that. Locals don’t know the whole operation. That’s why they couldn’t create own brands and designs and market it to the world. Locals are best at following someone else’s process productively but not at creating complete processors own there own.
This is happening to the local Software industry as well. A company which does well in outsourcing in SL has only their production arm locally. Either there process is setup by some international consultants or they are getting the whole spec from another country to produce the code.

Some time back I interviewed a Software Engineer, who worked in some major outsourcing company in Sri Lanka. When I asked him some simple questions like , “how to make a connection to the DB” for my surprise, he told me that he doesn’t know to do it as they are using ready made components.

This is the bad side of outsourcing. It will make our workforce dumb; destroy their creativity and destroy the eager to learn new things. Most of the developers don’t like to put extra effort to lean something and improve themselves from developers to architects or some senior level. They want a higher salary with less effort but doing same set of job functionalities. This has not become a problem now because there are lots of outsourcing jobs in the country. But we have no idea when this model is going to fail. In that day we are going to face a hell of a problem….