Thursday, December 28, 2006

Handling attrition in SME

I have come across a few instances where a large number of employees from a division quit within a short time. Though I didn't face the problem myself as a boss, I was part of the group that quit once - just once. The reasons range from better job market to low morale. Here are some thoughts on what the management can do about it.

1. When a key person or more than one person from a team quits, stop; think if you are doing anything wrong. The person might be leaving for any reason - the management needs to take the employee's reason with a pinch of salt. Rarely employees tell you what is wrong with you. They tend to be nice and usually lie.
2. Some of the mistakes that management end up doing are - share the work done by the employee who left among the remaining ones, putting more pressure on these members to complete the work and pressurizing HR to recruit more.
  • Sharing work is fine as long as the time allotted for completion is extended appropriately.
  • Giving pressure would happen involuntarily as management would like the project to complete on time or sales maintains the pace. In instances where possible, extending the deadlines or relaxing the targets would be the right thing to do.
  • Pressurizing HR without ensuring that the team is adequately staffed and skilled will cause more unhappiness in the HR team. Soon you will be seeing an exodus from HR. The first thing to do is to help HR ramp up on the skills and resources or begin outsourcing some of the recruitment activities.
These mistakes help in worsening the situation.

3. In divisions where the attrition is high, find out if the working conditions are normal. Smaller organizations do not have a process to address employee grievances. In many small organizations, employees don't have a chance to complain about their bosses with a confidence that they will be listened to and addressed. In cases, where a single boss micro-manages everything and there is no hierarchy, no employee would tell the boss that the conditions aren't right. Especially in cases, where the top manager is involved in every employee's daily tasks, there is no chance for an impartial observation of the situation.

4. It is comforting to list all external factors like good job market as reasons for people leaving. It just ensures that your ego stays unhurt. So, just be aware of this tendency and be reasonable in including such factors.

5. If the problems point to poor working conditions like office space, facilities, timings or accessibility, be sincere in addressing them. Speak to the employees that the situations can be addressed. If possible, involve them in a solution - like help find a bigger place, suggest timings. If the problems point to a person, work on informing the person of his / her shortcomings and help in improving on those.

The most difficult part in handling the attrition is - seeing your shortcomings and addressing them. I'll try to locate a few who managed it and write about them in the next few months.

Tuesday, December 26, 2006

Technical Writing and all such talks

Technical writings and software documentation

It seems Naveen, Ari and Shivan won't get to a conclusion. For relatively small SME projects, following a good coding habit is the most essential requirement. The cost of documenting the project could be too prohibitive for the SME. Consultants can give a value for the money by just following standards as per the language and environment.

This makes it imperative for the developers to be disciplined on whatever they are doing; that doesn't come right away when you work for small projects. It is like a circle, where bigger projects bring in discipline - developers have to gain experience with smaller projects to enter bigger ones - smaller projects need discipline (more than bigger projects where minor deviation from standards here and there won't matter much).

Tough cycle to break; but will try that!

Friday, December 22, 2006

Traffic lights coming down in city

Traffic lights coming down in city

Chennai added a large number of traffic lights and cops in the last 12 months - An indication that we are becoming less considerate to other road-users!

Tips for reading other person's code

Tips for reading other person's code

More from a maintenance guy's experience.

1. Concentrate on code and take the comments with a pinch of salt. Often you will encounter comments that were not updated when code got updated.
2. Try writing down your understanding of the code, taking one chunk at a time. A chunk typically consists of a program construct like if...else block, or a loop or a function. This way you can reconstruct the algorithm, especially if the code wasn't structured.

Thursday, December 21, 2006

Hype about IITs

IITians, do something for Indian education is right on target. There is no doubt that the students who enter IITs are the smartest ones in the country. The question is, what value does IIT add to these students during the best part of their life. Success stories of IITians becoming entrepreneurs and good scientists typically have chapter where the person spent 2 years at Stanford or MIT or Harvard or other great universities in US, after their B.Tech at IIT.

IITians when they come of out their B.Tech often have an air of justifiable superiority complex that prevents them from being normal. This gets normalized when they go to US, see that there are others including Indians from other schools who are at least as smart as IITians are.

In addition to getting into serious competition with Chinese and other Asian universities, IITs should also get into research in education, humanities and basic science.

Tuesday, December 19, 2006

Crystal Version 9.0 - Demystified

My earlier post was about the issues with Crystal. I guess I'm fairly clear now. For the sake of the unfortunate IT folks who struggle with Crystal Reports here is my understanding of the product.

1. There are two flavors of Crystal Reports (even with-in Crystal 9.0). One is the full version where you get to design the reports with Crystal and the other one is a stripped down version where you design in Visual Studio.NET environment.

2. If you developers build the reports either way, you have the option of delivering the all the dependent Crystal binaries along with your application. Again, you have the two options. One: Build an installable with merge modules downloaded from Business Objects web-site. Two: Have users download the redistributable available on Business Objects web-site. Either way, you need to pass the key code to your users. In case of merge modules, the key-code must be specified as a property of the license.msmx. In case of redistributable, the key-code of your Crystal registration must be used at the time of installation. I'm sure Crystal validates the key-codes against the product versions mentioned in the earlier point.

3. Another issue that vexes the users is the login information. Developers are often insensitive to the differences between the development and production environments. The login information gets saved with the crystal report and Crystal is known for using this information inappropriately. Check out the documentation on the 68MB service packs Business Objects offers for Crystal Reports.

To prevent Crystal from using the login information stored with the report, it must be passed explicitly to the report at run-time. The sample code is as follows:

TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// Loop through every table in the report.
for (i=0;i == myReportDocument.Database.Tables.Count - 1;i++)
{
// Set the connection information for the current table.
logOnInfo.ConnectionInfo.ServerName = db_server;
logOnInfo.ConnectionInfo.DatabaseName = db_dbname;
logOnInfo.ConnectionInfo.UserID = db_user;
logOnInfo.ConnectionInfo.Password = db_pwd;
myReportDocument.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}

Monday, December 18, 2006

Crystal, Installshied, OLE and all the problems

I tried running a web application delivered by a vendor. Crystal Reports began acting crazy. The vendor failed to deliver the right merge modules. So, I downloaded the redistributable, got the key code from the vendor (with an error and guessed the right one). The error message changed; after a number of hours of search, began downloading the service pack for Crystal 9.0.

The pain here is, the redistributable is about 25M and the service pack is 68M. After multiple aborted attempts to download and a final good download, I bump into an install shied problem where the error message indicates that the type library is not there!

It took someone with 15 years of experience with software to progress this far. Who said software makes life easy!

Wednesday, December 06, 2006

Google: Gmail - Calendar Integration

You have reasons to be paranoid on what all Google does with your email.

I was having an email conversation with a contact to schedule a meeting. I used Gmail. As the email thread grew, on the right side navigation Gmail shows links to add this to the calendar. When I clicked on the link, Google had pre-filled some of the fields like date, location. If I had used a different time format, Google would have picked that one too.

It is nice to know that Google does so much for better user experience. At the same time, I am a bit uneasy with the parsing of my mail content. I guess Google WILL parse the email for ad-sense and such money making features.

Is there a way I can tell Google not to parse my mails or show context sensitive ads on the right side?

Tuesday, December 05, 2006

Differing views of managing software requirements

I hope this is doesn't become a habit that I bitch about non-technical people, though I may have intentions to do so.

Coming to the topic of my opinion, there are two views of software development.

i. Build the perfect system handling extreme cases though the extreme cases will not be encountered for the next couple of years. Consider a service aggregation where multiple service providers sign up. Users can choose the services that they are interested in and pay for it. If the business is not yet ready to bring in multiple service provider for the same service (say payroll), it makes no sense to build the software up-front to handle features like the priority, pricing etc.,
The business must be a very powerful one to get such multiple service providers sign up with them. If that is the case, why should the software be designed for it up-front. When the business spends the efforts to rope in multiple providers, the logic for the priority and pricing will have to be reviewed and changed as there will be a better understanding of the problem.

ii. I am fine with an approach where you treat software as an evolving beast. Address the requirements that would be useful right away for which the efforts are proportional to the effects. In web lingo, what is the cost per click - if you were to measure the cost in developers' time. If there is a reasonable doubt that a feature will be useless for 50% of the users, it makes sense to drop it and focus on something more important.

Often I come across bosses, mostly non-technical who want to take the first approach. I would bet that less than 10% of such over engineering done ahead of time is useful.

Friday, December 01, 2006

I'm impressed

Tata Sky Satellite Television

It is not uncommon that the gadget you get for a few thousands fails in the first couple of months. The remote for Tata Sky Digicomp failed at my place. May be it is typical of cheap Chinese products.

But Tata Sky did well to attend to the complaint. The technical support girl who answered me was trained to say, "Don't worry Sir!" very well. She repeated it some 10-15 times in a 5 minute call. And they promptly arranged for someone to visit us and fix the problem.

In less than 24 hours the engineer from Tata Sky came with a replacement remote and closed the issue. I'm impressed with their customer support, but still wish that they go for a more reliable partner for supplying Digicomp and remotes.

Problem with Chinese gadgets aren't unfamiliar. Couple of months ago, I had a problem with the Coship set-top box customized for the cable operator SCV. SCV being a monopoly in Chennai doesn't have much to claim as customer support. I was to carry the box to a place about 15 Km from my place. They work only on week days and 9 AM to 5 PM and so I had to postpone till I have a day off to visit them. I went with my father and waited at a hot car shed. There were a bunch of engineers around each table attending some 10 customers each simultaneously. It was chaotic. Then they wanted me to pay Rs 1000 for fixing it and asked me to come back later as they do not have the components. I promptly dumped the box and moved to Tata Sky.

The difference between SCV and Tata Sky is the same as the difference between Kalanidhi Maran and Ratan Tata. May be it is the same as the patriarchs of respective families - Karunanidhi and JRD Tata - that is the difference between monopoly and professionalism.

Earlier Posts