Wednesday, April 30, 2008

Trip to Puri, Orissa : Toshali Sands

On this trip I stayed in a resort called Toshali Sands. This resort is about 65 KM from Bhubaneshwar city and it takes about an hour and a half by car to reach the resort from Bhubaneshwar airport. The road is very good and it is quite a smooth ride. You can call up the resort and arrange for a car pick up from the airport which we did and it cost us Rs. 1200. In front of the resort is the Baiukhanda Reserve Forest which is basically a cashew plantation owned by the government and were told that there were mainly deer in it but we did not get to see any. If you drive through the forest then you reach the Balighai beach.

Although the resort claims to be of 4 star quality it is not really of the same quality of other 4 star properties although it might have similar amenities as a 4 star property may have. It is comfortable and decently clean. The food is very homily and do not expect too much of exotic food. The room that we stayed in also had a small kitchen with a single burner stove and basic utensils. It also had a small fridge that worked very well.

The resort has a swimming pool which is nice. Since it is outdoors and there is no shade to cover it, it gets quite hot in the pool so make sure you carry enough sun screen lotion that is strong enough (SPF 40 is what we used). The only problem we had was the sun screen lotion that we carried was water soluble so it tended to wash off after a bit of swimming. Not sure where you get non water soluble sun screen lotion.

In order to go to the beach the resort arranges for pick up and drop using a quaint old jeep that they have which reminded me of driving around tea estates. The reception arranges for the pick up and drop to the beach and although they tell you that they need 1 hour notice every time we went and asked them we got the drop almost immediately. It is about 5 min by jeep to the beach which is pretty much your own to have fun on. The resort provides a life guard and umbrellas, mats and towels on the beach so just carry your swim trunks and sun screen lotion and you are all set. The beach is not all that great during high tide as it is quite rough but it was amazing during low tide - so find out when is the low tide and schedule all your beach trips during that time. The lifeguard is a fun guy and he showed me how to catch crabs on the beach which was quite amazing.

The resort has tons of greenery and lots of ducks, hens and geese. My daughter used to just love playing with them all day long. Other sports activities at the resort include table tennis, tennis, badminton and a gym. There is also a pool table. You can also hire cycles to go around and see all the places close by to the resort that include rivers, back waters and a stone carving village. They also had an Ayurveda center in the resort that I did not try out.

You get pretty much everything that you need in the resort or in the shops just outside the resort so there is no reason to leave the resort. You can take a bus to visit Puri town and the resort charges you Rs. 30 per head. The drive to Puri town is about 2o min by the small bus that they have. So we took the bus one day to Puri town to get all the supplies that we needed that we did not get in the resort. The resort also provides the services of a pujari when you visit the Puri temple.

One day the resort organized some indoor games for all the guests which was quite enjoyable and we were able to interact and talk to the other guests in an informal manner and get to know them better. On another day they organized a performance of the Gotipua Dance (A folk dance of orissa) which is performed by young boys who dress as girls. This dance was quite acrobatic and interesting to watch.

On the whole the resort was a very enjoyable experience. It is not of top class quality but it is very down to earth and basic. It had enough activities to keep us busy all through the week without feeling bored. The staff is very friendly and helpful and frank on what is possible and what is not for the umpteen requests that we had.

Tuesday, April 29, 2008

Trip to Puri, Orissa : Shamshabad Airport

Having got so used to going to the airport in about 15 min when it was in the middle of the city I was a bit apprehensive about the long commute to the new International Airport at Shamshabad. So I went to their website and found out all the options about getting to the airport.

I decided to try out their airport shuttle option and I took it from the Paryatak Bhavan at Greenlands junction. The cost of the trip is Rs. 95 per head and there is a bus that leaves every 30 min and it is pretty much on time. On weekdays it takes about 1 hr and 30 min to get to the airport but since the date of my travel was Sunday we reached the airport in about an hour. The ride is very comfortable and smooth.

The airport itself is very new and swanky. It has quite a few food and beverage options inside the airport but they are quite expensive. You do not have baggage screening anymore as it is all automated. So you have to find your airlines counter and directly take your bags there and get your boarding pass and the baggage is checked in. You then have to go through security check and there is a very comfortable waiting lounge.

On the way back we decided to try out the cab option. So we came out of the airport and there were these whole row of Meru cabs waiting. We just got into the cab and I was told that it is Rs. 15 per kilometer and there was no minimum charge. This worked out very good for us since our house is about 30 km from the airport and the cab works out to Rs. 450 and the bus for the 3 of us was Rs. 285. So for just Rs. 165 more I was able to get a nice A/C car to get me home in just a little over 45 min on a Saturday which I would have paid the auto to come from Paryatak Bhavan to my house since I had luggage.

There are some car rental booths as soon as you come out of the airport but they are very expensive. They wanted Rs. 1200 for this same journey. Just walk a little further and you will see all the radio cabs that I took lined up one behind the other.

The question I guess is what option to choose to go or come back from the airport. If you are a single person traveling then the bus is a good option. But if you are more than one person traveling then you can do the calculations based on the above rates and decide. The commute to the airport is really not as bad as it is made out to be. My experience was quite nice and enjoyable.

Trip to Puri, Orissa

I went on a vacation to Puri, Orissa and hence the long silence. Well I am back now and in the next few articles I am going to tell you all about my trip there and my experiences.

Some of the things I will be covering in the next few articles are
  1. Shamshabad Airport
  2. Toshali Sands : Resort that I stayed in
  3. Boat Ride
  4. Konark Temple
  5. Other places to see around Puri

Thursday, April 17, 2008

Learning and Understanding CRM

I have not been blogging recently as much as I used to blog earlier and the reason for that is I have been spending a lot of my time learning and understanding CRM and more specifically Microsoft CRM. It has been an interesting experience so far as I started without knowing anything other than what was the full form of CRM which happens to be Customer Relationship Management.

In any business finding and retaining the customer is the hardest. Whether it was selling Christmas decorations in the church or in the one and only exclusive online baby shop in India finding the customer, convincing the customer that you have something that they want and then finally being able to manage and sell the product to the customer is so hard. In an earlier article I lamented that it is easy to conceptualize and build a product but finding the customers for that product is so hard.

A CRM system will help you manage the customer right from when they are identified to when they are managed after they have been sold a product. It broadly consists of 3 modules
  • Marketing
  • Sales
  • Service Management
In Marketing you identify the customers called leads and you try and sell them your products. You use this module to educate your customers about your products and how it can help them.

Once the customer shows any kind of interest in what you have you convert that customer into an opportunity identifying the products that they might be interested in. Your sales team then tries to close the deal with the customer by making the actual sale. Your opportunity then becomes a client and is handed over to the Service Management team.

In the service management module you take service requests from the customer and manage their everyday whims and fancies.

So as you can see a CRM system helps you manage your customers so that you show that you care about them and their problems. I hope all the companies I have been complaining about the service offered by them buy a CRM system or improve the one that they already have.

This article is written with my naive one weeks knowledge about MS CRM. To know more about CRM read this wikipedia article.

Wednesday, April 16, 2008

Interesting Blog

I came across a very interesting blog today. It has pictures of what can happen when things fail in real life. I am not sure if all the images are real as a lot of them look like they have been doctored, but anyways, it sets you up for an amusing ride. The only issue is that you take pleasure in these pictures at the expense of someone else's pain - but then we tend to do that often in real life too - so what the heck.

Anyway here is the blog - Fail Blog

Friday, April 11, 2008

Buddha Statue - Hyderabad

Last weekend being a bit cloudy I went on a boat ride to the middle of the Hussain Sagar lake to see the Buddha Statue. It is quite an impressive statue and the lake having just been cleansed of all the water Hycianth was quite pleasant. Looks like my Sony Ericsson P1i did quite a decent job in capturing the statue.

You can take the boat to see the statue either from Eat Street on Necklace Road or from Lumbini Park. The cost of the ticket as of writing this post is Rs. 40. From Lumbini park you have a speed boat option. In the evenings on weekends they also have a boat which has some entertainment on board. This boat too leaves from Lumbini Park.

While at Eat Street check out the Ice Cream parlor for some unusual flavors of ice cream. The medium size portion costs a steep Rs. 110 to Rs. 130 but it is worth it for something different and nice. A once in a while treat to yourself for trying to be good :).





Thursday, April 10, 2008

Free Local Information courtesy Google

If you have been spending money calling up Just Dial services on 24444444 to get information about local businesses in Hyderabad, you have an alternative now. Google has launched its free telephone service on the number 1 800 41 99 99 99. You call them up and you get instantly connected to their call center. You ask them for what you want and they ask you for your mobile number and then send you an SMS.

The last time I called up Just Dial they asked me for my name and if I had a business and if I was interested in listing with them and a zillion other stuff. Nothing like this with Google - just call them up and they were quick and efficient.

You can alternatively also get local information by sending them an SMS to 54664 ('5GOOG' on most devices). But you are charged for sending the SMS and you can see the charges here http://www.google.co.in/mobile/sms/index.html. You can alternatively search for the information on the link given above without sending an SMS.

I checked by searching for "ameerpet pest control" on the site and I also called up the call center and asked for the information and they both gave me exactly the same places and phone numbers.

On the whole its a neat service as it is very comprehensive and I can access it on the web, sending an SMS or just calling them up.

Tuesday, April 08, 2008

World's smallest Girl is Indian

Jyoti Amge is the world's smallest girl at 15 years she is 1 feet 11 inches tall and weighs just 11 pounds. Caught this on twitter a few minutes ago - so twitter is really not too bad but you have to wade through the junk messages that do come in it.

Friday, April 04, 2008

Disconnect between Management and Programmers

One of the biggest reasons why attrition is high is due to the disconnect between the management and the programmers. The reason for this disconnect is very inherent in the type of work that each one does and there is a clash of interests. Some of them are
  • The goal of the management would be to complete the project within the shortest possible budget which means ultimately in the shortest possible time. The goal of the programmer is to do the project in the best possible manner and this may mean multiple iterations before he gets it right. This need not necessarily mean that it will be done in the shortest possible time.
  • Management likes to have a clear understanding of the progress of the project and how long more it takes to complete a particular job so that they can keep everyone informed about the progress and also keep in check the escalating cost of the project. But software projects due to their inherent qualities are tough to estimate accurately and there are problems that may be resolved in a couple of minutes or may take days to be resolved. Management never seems to understand this and does not accept this as an answer.
  • Due to the technical nature of what is being managed many project managers are not technically adept at understanding what is happening. So there is a distrust between the management and the developers on issues being reported and estimates that are given. I have had questions like why would it take 1 day to just move this field little to the left on the screen. They don't understand the fact that the entire layout will have to be changed if we do that and we then have to test the page in 3 different browsers to make sure the change did not effect any of the other parts of the layout.
  • Good developers think in binary - it is either right or wrong. Management is not binary - there are a lot of shades of gray around everything in management. There are unknowns that need to be managed. There are risks to be contained.
  • Developers need to be handled carefully. They don't like to be told any other way than what they believe in unless proven that their thought process is wrong. Management finds it very hard to come up with arguments against developer wishes due to the fact that they are not technically adept.

In my experience I have found two cases where management and developers have the biggest disconnect and they are

  • Managers who have come from other industries or managers who have just done an MBA and think that they can manage the cost and people of a technical project. This kind of manager in most cases never works out. The reason is because they do not understand the nature of the work and they cannot empathise with the difficulties that their developers are facing and can't think alternative solutions when they are stuck. Developers feel that they are doing all the work in this case as the manager has to come to them for everything such as talking to the client on technical issues, estimates, plans, status reports and so on. So developers quickly ask why do I need a manager when I am doing all of this.
  • Very good technical people who are pushed into management just because they delivered on some very difficult assignments and have gained the trust of the top management. Many of these programmers do not know a thing about man management or external communication. The reason is because software development is an introverted role. You program alone, you think alone, you work many a time all alone for many days. This kind of manager also tends to start doing things himself ignoring the interests of the team.

So one might ask what is the solution. The only solution to this problem is to identify managers among the people you already have. Leadership qualities show in many ways - the way they organize events in the team, help other developers with their work, how they keep their tasks in an organized manner. These developers who have a methodical way of managing things that they are doing are the right people for management. They then need to be slowly groomed into the role by starting off with handling one person and then slowly increasing the strength of the team and the number of projects that they handle. In all the other industries mostly manufacturing you hear about how someone from the shop floor grew up to get into the top management of the company - why don't we hear the same in the software industry. Unless you clearly understand what you are managing you can never really manage it. So you need people who have done development and testing to play a management role.

Thursday, April 03, 2008

Pushing yourself to Take

I was reading an interesting post by Seth Godin in his blog on Getting vs. Taking in which the following paragraph struck me

A few people, not many, but a few, take. They take the best education they can get, pushing teachers for more, finding things to do, exploring non-defined niches. They take more courses than the minimum, they invent new projects and they show up with questions.

I used to keep telling people that I work with - you need to leave work everyday asking yourself the following questions
  • Did I learn something new today ?
  • Have I made progress since yesterday ?
  • Have situations improved since yesterday ?
If the answer to any of these questions is "NO" then you did not have a good day at work. I feel that in order to make sure that we have a yes for these questions each day we need to "take" away from our job rather than expect to be "given" at our job. It is unreasonable to expect a supervisor to make sure that you are given opportunities to learn each and every day.

People who "take" are the ones that are recognised since it is going beyond what is expected from them. So it is important to push yourself to "take" all the time.

Tuesday, April 01, 2008

Estimates are dangerous

We always hear of software projects being over budget and the reason is because how the budget of the project is determined. The issue is greater if the project is a fixed budget project where the budget is determined based on the initial estimate that is done for the project. Let me explain what is the fixed budget project.

Lets say you have to do task "T" which you know will take "H" hours. The per hour cost of a developer is "C" dollars. So you know the total cost of the developer to do task "T" is H*C dollars to this you add M which is the cost of the material needed such as software licences, machines, etc. So the total cost of doing task T is H*C + M. In a fixed budget project you agree to do the project for this amount. If there are any overruns it is over budget.

This looks like a logical deal for the customer as he has a budget before hand but it has inherent problems in it due to which in most cases the project will go over budget. What are the problems with this method
  • The estimate is done very early in the project when many of the details of the project are not clear such as complete requirements, design of the task, level of testing and so on. It is like coming up with an estimate to build a house from a brief that is supplied to an architect for coming up with the drawings.
  • The right people are not doing the estimate. Many a time management does the estimate based on prior experience in projects that are similar to this. But not all projects are the same and so it is bound to fail.
  • If you ask developers to give an estimate they will not be able to give you one because they do not know the design of what needs to be developed and will ask you for time. But neither does the customer nor the management have the time as the budget needs to be approved.
  • Usually estimates become more and more accurate as the software development proceeds. But in many projects one is not allowed to change the estimate after the initial estimate is approved. Many customers do not agree for a phase based estimate. They expect the entire estimate up front.
So one might ask what do you do in such a situation. There are a few techniques that I have developed that have helped my improve my estimates in the last few projects
  • Develop a mock up on paper or using a tool such as Axure that will give a view of what you are going to build. Do not spend more than a day doing this.
  • Give this mock up with the brief given to you for the estimate to a senior developer and ask them to do a high level architecture on paper. Do not spend more than a day doing this.
  • At the same time the senior developer is doing the high level architecture give this mock up with the brief to a lead tester and ask them to come up with outline test cases - that is one line for each test case and what kind of testing will be performed. Do not spend more than a day doing this.
  • At the end of 2 schedule days you along with the lead developer and tester should be having enough information to come up with an initial task list and an estimate with the unknowns of the project clearly listed down.
  • Make a note in the initial estimate that as the unknowns gain clarity estimates may change and if there is a deviation of more than 10% then there has to be a discussion on the new estimate. This 10% is called the threshold value based on which renegotiation needs to take place. To learn more about when estimates might change read managing risk for better estimates.
Following this strategy along with a good design should negate most of the risks in the project when it comes to estimates.