Friday, December 28, 2007

Outsourcing ATM Maintenance - Next big business

This is one of my speculations - things I feel will be the next thing coming.

Of late all of the cell phone service providers have been hiving off the the setting up and management of the cell phone towers into separate business and some of them are even selling them off to third party tower management. What I think ultimately will happen is that the tower companies will put up the towers and manage them and they will lease out space on the towers to cell phone service providers to put their equipment on them. This has a a lot of benefits

- The same tower can be used by multiple cell phone vendors thus sharing the cost of ownership
- Takes away the management of towers away from cell phone service providers thus helping them to concentrate on their core business
- Ensures someone is looking after setting up new towers and also managing them thus giving better performance.

On a similar note there has been quite a bit of news lately about RBI wanting banks to allow customers to use any ATM to withdraw money with no extra charges (Right now if you use an ATM of another bank the charges can vary from nothing to Rs. 50). As a consumer this is a wonderful idea and banks that have few ATMs (HSBC, Kothak Mahindra Bank, etc) love this move and are all for it since they get a wider ATM network for free and on the other hand banks that have a large ATM network (SBI, ICICI, etc) suddenly lose their edge of having a wide ATM network.

What I feel will happen is that banks will do something similar to what cell phone service providers are doing and will hive off their business of setting up and managing ATM networks into a separate business and ultimately sell it off to third party vendors. That way the company that owns the ATM network can charge various banks on the transactions done on the ATM. I think the same benefits the cell phone service providers get from selling off their tower businesses will be applicable to the banks doing this. This way it benefits the bank and the consumer and the RBI gets what it wanted.

Lets see if this is what will happen.

Monday, December 17, 2007

He sure can "break" anyone

I was driving the other day and I noticed this truck filled with sand in front of me and a couple of things caught my eye.
  1. The spelling of power "break" (should have been brake) and I thought to myself if this guy even nicks my car I will for sure be broken - so it is quite appropriate.

  2. Notice the guy sleeping on top and relaxing - this is a moving truck and he looks like he is sun bathing on top
Well thats India for you - you never know what you are going to see next. So when in India always keep your eyes open and your camera shutter off :).

Thursday, December 13, 2007

Not so frequent posting

For the next two weeks life is going to be a bit too busy to post everyday - the reason being that ourspace.in is having its annual christmas sale and I am helping out there. I am sorry about this and I thank all my regular readers for coming back each day and checking if there is something new that I have posted.

Please use the new features that I have added to the blog and that is to be notified by email or subscribe to the RSS feed. That way you don't have to come everyday to the website. In case you have any queries in using either of these features do let me know by mailing me at sudeep.dsouza (at) gmail.com.

I thank all the readers who come to my blog for giving me an average viewership that is out of the single digits for a complete month now. This is for the first time I have achieved this since I started writin my blog almost 3 years ago.

Tuesday, December 11, 2007

How wrong can Sunil Gavaskar get ?

Being a bit busy with life and work and not getting much time to follow the cricket match - I was intently reading the sports section of today's paper and saw that India pretty much lost all hope of winning the match on Day 3. So I started to read some of the columns to understand what happened when I came across a column by Sunil Gavaskar that said "Ishant not yet ready for Test cricket".
And then this is what I read at the end of Day 4 - Ishant takes a 5er. Congratulations Ishant and I hope you continue to defy all your critics.


The point to note here is that commentators and columnists have to be careful about what they say and write. Ishant is just starting his career and something like this from someone as experienced as Gavaskar is totally out of line.

This is not the first time that this has happened and if you have noticed they never apologize or accept that they made a mistake which makes them look bad to the public.

The Christmas Sale is back

For the second year running we are conducting the annual Christmas sale at St. Theresa's Church at Erragadda, Hyderabad. This year we are back with a lot more variety. We have also been able to get Crib sets which was requested by a lot of buyers last year.

So if you are in and around Hyderabad please do visit our sale. Also spread the news among your family and friends about the sale. Check out the Christmas Sale website that we have put up.

Monday, December 10, 2007

Funny name for a training institute

I really wonder what they would have named their institute if they were teaching "hardware" !!!

Saturday, December 08, 2007

Managing teams is like managing simultaneous equations

As a follow up to my article on Life is an equation you balance all the time I will talk about imagining the management of teams to be similar to managing or solving simultaneous equations. So if you have not read the first article please do so before continuing.

In the first article I looking at managing oneself as similar to managing an equation with multiple variables and coefficients and having a constant on the right hand side. Now when you associate multiple individuals together each one of them having their own little equation to manage it starts to get a bit complex. Teamwork is being able to manage the equations in such a way that everyone in the team has similar goals (variables) and these responsibilities have similar priorities (coefficients) since the constant on the right hand side is always going to be the same. If everyone in the team have differing goals and priorities then you will never be able to solve the simultaneous equation and that is when the team work just does not work.

External pressures and individual goals always tend to distort the equation, it is not possible to eliminate these so a balance needs to be brought about between the variables that represent the team goals and the individual goals. If this balance was not there then due to the one person that did not manage these coefficients the equation may never be solved and team work gets hit.

It gets a lot more complex for individuals since they will always work in multiple teams - Family can be one team, you may be involved in multiple teams in the office, society and so on. So each individual is part of multiple simultaneous equations at the same time. So one needs to not only manage each individual equation but also manage the number of simultaneous equations one gets in to - since the more you get into the more complex it gets.

So the key in making a team work together successfully is
  • Make sure everyone is aware of the goals - so that you are dealing with similar variables in all your equations.
  • There should be a balance in the individual equations between personal goals and team goals.
  • Be a part of few teams and make quality contributions rather than being a part of a lot of teams.

Friday, December 07, 2007

A walk down SAP Street

This morning I walked down the famous "SAP" Street (that's what it is called by most locals) in Ameerpet, Hyderabad. Below is a map of the path that I took.


This is where the software industry first started off in Hyderabad - but now it is quite infamous for all the stuff that happens here. The streets are filled with banners proclaiming to teach anyone anything from any ERP application, data warehousing, languages, testing practices, testing tools and the list goes on. Name it and you can find the training here for it. Now one may say that this is not that bad a thing to have - you are training people in technologies that will be useful to them. But that is not the case - There is no real quality training happening. These institutes also play on the minds of the impressionable - they hook them into one training course and then make them take a series of them promising them jobs and lucrative careers both in India and abroad. I have known a lot of people that have been cheated by these so called training centers.

I have heard that these training centers offer a lot more other than training. Some of the services that they offer that I have heard of are as given below.

When you are doing a course in MCA/BTech you need to do

projects - these institutes will give you complete source code with the documentation of the project.

Any certificate in showing that you are trained in anything under the sun is possible. Pay the course fee and you will get what ever you want.

If you want an experience certificate some of these training institutes have single desk organizations with a complete website that provide you experience certificates complete with background verification.

They can send you to pretty much any part of the world - just ask for it.

I have personally had two experiences with these institutes that were not too pleasant - one was where I was trained by a so called "faculty" from one of these institutes and she knew nothing about the subject that was being taught. And the second experience was where we needed to hire some developers very quickly so we thought that we can check out if any of these institutes had quality people that were being trained and hire them. You can read more about that experience here.

Wednesday, December 05, 2007

How do i tell my readers I have posted on my blog?

Continuing on my series of posts on blogging in this second part (The first part was How do i start blogging) I talk about the problem where I used to post pretty infrequently and there was no way for me to tell my readers that I had posted something new. That's when I searched around for a service that could notify them that something new got posted and I discovered the joys of RSS. To quote wikipedia "RSS makes it possible for people to keep up with their favorite web sites in an automated manner that's easier than checking them manually."

So the next question is how do I make my blog available on RSS - after a bit of searching around I found feedburner. There are a couple of things in Feedburner which I think are must haves on your blog - one is to make your website RSS friendly and the second is to add a widget that allows your readers to give their email address and whenever there is an update to your blog they will get a mail.

Now this may reduce the number of people coming to your site to check for updates but what happens is that if there are no posts for a while then the readers tend to get put off and stop coming and then there is no way of informing them that there is an update on the website. It is better to have a visitor coming occasionally when there are updates rather than stop coming at all. And if you want them to come more often then you have to post more often - it is as simple as that.

Like all google products (I know google bought it - but then its now googles) it is easy to setup and use. So there is nothing really stopping you from using it and it will only enhance your blog or website. So go ahead and use Feedburner to burn your site and make your readers happier. I will continue posting articles on blogging as and when I gain experience in developing my blog.

Monday, November 26, 2007

Life is an equation you balance all the time

I had an interesting thought the other day - why can't we look at life like an equation that needed to be balanced all the time. On the left hand side of the equation the coefficients represent the priorities and the variables represent the commitments that exist. On the right hand side of the equation you can either use the constant for 24 hours for a day, 7 days for a week, 30/31 days for a month, 365 days for a year - but it is always a constant. The equation may look something like this

3x + 4y + 7z + 2a + 4b + 5c + ... = 24

The commitments never really go away they keep going down in priority and come up again and so the variables always stay in the equation its just that the priorities of the commitments keep changing and so the coefficients keep moving themselves up and down. Life is all about balancing this equation. The key is to never get any one coefficient so high that it gets out of hand. You need to always manage all the coefficients within manageable levels as they keep getting higher and lower based on the situation.

The problem with us humans is that we never keep the equation simple - we always like adding new variables into the equation without understanding what the new variable would do to the fragile balance that exists already. Its like any system as soon as you add something new there is always a period of uncertainty and instability which has to be dealt with. So the key is to have control over the variables being added to the equation. There is a constant on the right hand side that is not going to move - so giving priority to one variable will always guarantee that something else does not get the attention needed which usually happens when we add something new to the equation.

Another thing that we need to do but never really do is remove variables from the equation - this can be done in 2 ways - finish the commitment and take the variable out. We always tend to leave things half done that keeps the variable there all the time or we never really accept that we can't take care of the commitment even though we accepted it. We need to learn to say no or tell the person as soon as possible that it won't be possible as i have a 100 other variables that need to be taken care of. If we say this early enough I am sure most people will understand and appreciate it.

Another funny thing about this equation is that you do not have control over the coefficients in the equation. They are dependent on the other parties involved in the commitment. So the more control you have over the numbers the easier it would be to manage the equation. But this is much harder to accomplish.

Imagine what would happen if you did not even have control over the variables (commitments) being added to the equation. Adding it yourself causes instability - if someone else adds it - sure shot way to chaos. So do not give up this power to anyone else at any cost.

It is always necessary to know what are all the variables in the equation since you do not want to ignore a variable so long that it gets out of control. People do this through task lists or reminders. But it is important to always be aware of all the variables.

So the bottom line is
- Always know your variables
- Add new variables carefully
- Complete the ones that are already there
- Remove the ones that you feel you can not close out
- Try controlling the numbers
- Do not let others add variables to your equation

Do this and take control of your life.

Thursday, November 22, 2007

An organization’s journey to CMM Level 3

This is an article I wrote more than 4 years ago to describe the journey of an organization to become CMM Level 3 compliant – I was part of the team working on it and this is my view of all that happened.



It all started around September 2001 when it was decided that the organization would look at implementing the Capability Maturity Model (CMM). A formal Software Engineering Process Group (SEPG) was formed to achieve this. The SEPG conducted a Gap Analysis of the templates and guidelines in the Quality Management System that existed at that point of time, and updated them so that they complied with the CMM Level 2 Key Process Areas (KPA). There were then training sessions conducted for the members who were Project Leads and above on the QMS. The first audits were conducted on the projects to assess their compliance with the newly defined standards.

Once we were comfortable that the projects were following the standards defined the team set a goal of reaching Level 3 by December 2002 and also used the services of an external Consultant.

In the last week of June 2002, the external consultant conducted a Gap Analysis called CMM Based Abridged Assessment. This assessment is an abridged version of a regular assessment where the members of the organization were interviewed, and the gaps in the process that is followed by the organization and the CMM framework were identified. As part of this exercise, he interviewed 60 members in 9 group sessions. Altogether, about 40 weaknesses were identified. Subsequent to this, the SEPG, along with the external consultant, came up with an action plan for closing these weaknesses.

It was at this point of time that new members were added to the SEPG group. All the members of the SEPG underwent a full day training course on Process Writing, where the finer aspects of defining a process were explained at length. In the next couple of months, i.e. July and August, the entire QMS was revamped to be compliant with Level 3. At the end of August, the external consultant did a review of the QMS and identified the gaps that were still there with respect to the CMM Framework. In September, all these gaps were closed. This QMS was subsequently published in the QMS web site as QMS 1.0.

Simultaneously, the SEPG was also preparing the training material on the QMS. Every technical member of the organization had to be trained in the process. In order to accomplish this, SEPG delivered a total of 52 hours of training in 11 sessions and trained 215 members of the organization. Once the training was completed, all the projects were asked to start implementing the process and to come up with their respective Software Development Plans. It was during this time that the Software Quality Assurance (SQA) team was formed.

The objective of the SQA team was to help the projects in documenting their process and plans and to then audit the projects to ensure that they were following the process that was defined by the projects. The SQA team consisted of practicing Project Leads from the organization. The SQA team underwent training by the external consultant. Every project in the organization was allocated an SQA Representative who would perform the SQA activities of the project. The SQA Group worked according to a published calendar and performed the audits approximately once in 3 weeks. Since its inception in November 2002, the SQA group has conducted 163 audits in 8 rounds.

At the end of November, the SEPG, realizing that the quantum of work to be done was immense and the fact that we were already behind schedule, decided to go for the assessment in March 2003.

In January, the SEPG, along with the Training Group and other members of the organization, prepared a Peer Review Training Course and a Software Configuration Management Training course and trained all the technical members of the organization. In the Peer Review Training, a total of 181 members were trained in nine 4 hour long sessions. In the SCM training, 158 members were trained in eight 4 hour long sessions. With this, the mandatory training that every technical member of the organization had to receive was completed.

In February 2003, a team along with the external consultant conducted a pre assessment. A pre assessment is conducted just like an assessment but in an abridged manner in order to find out the readiness of the organization to go for the complete assessment. It also aims at finding out any gaps that exist so that they can be closed before the final assessment. The pre assessment consisted of the assessment team interviewing 55 members of the organization playing an assortment of technical and managerial roles from various levels in the organization. These members were interviewed in nine different sessions and they were asked questions on the processes that they were following on the various technical and managerial tasks that they were performing. At the end of the pre assessment, the assessment team came out with a Findings Report containing the strengths and the weaknesses of the organization, along with an action plan for the SEPG to strengthen the weaknesses that were identified. A total of 25 weaknesses were identified in this report.

Looking at the gaps that were identified in the pre assessment, it became apparent that we could not go for the final assessment in March 2003 and so the SEPG rescheduled the date for the final assessment to May 2003. This time it was final and the SEPG decided that it would go in for the assessment in May, irrespective of what the result was going to be.

Based on the action plan that was decided between the pre assessment team and the SEPG team, all the process gaps in the QMS were closed and the SEPG rolled out the last version of the QMS, Version 1.4 on the 28th of March 2003. The SEPG froze this version of the QMS as the final version that would be used in the assessment. The QMS went through four revisions in all, and the inputs for these changes came from sources other than the action plans of the CMM-based activities with the consultant. The SQA conducted the audits and, based on the feedback they were giving the SEPG, made changes to the QMS. There was also a QMS Request System created, and members of the organization were requested to post their queries and suggestions to it.

The following table illustrates the quantum of change that the QMS has undergone since being initially defined.

Type of Document Legacy QMSQMS 1.4
Procedures023
Standards and Guidelines1017
Templates1328
Checklists 119
Others 30
Documents 2787
Words 95113864
Pages 351 733


In the month of April 2003, the preparation for the final assessment began in earnest. The first task that was performed was to select 14 members of the organization from which a team of 6 would be chosen to be part of the final assessment team. Over a period of five and a half days, this team of 14 underwent a course in the CMM Framework and also the Assessment Team Member (ATM) training.. Once these training sessions were completed, the final assessment team was chosen with the external consultant being the Lead Assessor.

The assessment consisted of two phases: the pre-onsite activities and the onsite activities. The pre-onsite activities consisted of every project completing a questionnaire about the project. The SEPG also completed a questionnaire about the organization, detailing the number of people in the organization, the types of projects, the business goals the structure of the organization and other related information. Based on this information there were four projects that were selected which were a representative sample of the projects that were being done in the organization. The Project Managers of these projects were then requested to fill up a questionnaire called the Maturity Questionnaire that asked them questions on the process that was being followed in the projects. Using the results of the Maturity Questionnaire, and the review results of the QMS, the ATM team came up with the questions that they wished to ask in the interviews.

The onsite activities of the assessment consisted of the opening meeting where the Sponsor of the assessment the head of the organization and the Lead Assessor described the process and the activities of the assessment to the participants of the assessment. After this, there were a series of interviews conducted. First, the Senior Management was interviewed on the policies and the support and checks that they do for the smooth and efficient functioning of the projects. Next, the Project Manager and Project Lead of each of the short listed projects were interviewed in-depth on the process that was followed by them. Once these interviews were completed, there were about eight representatives from various functional areas that were selected and interviewed in groups. These functional areas were Project Leads, SEPG, SQA, Training and Support, SCM, Testers, Team Members.

On completion of all the interviews, the ATM team then consolidated all the data and presented the findings to the participants of the assessment and got their feedback. This feedback was then discussed and the necessary modifications and follow up verification took place. Once all the issues were discussed and resolved, the rating exercise commenced. Once the decision of the rating was taken, the ATM team prepared the Final Findings Presentation which was presented to the organization in May 2003 when the organization was assessed to be Level 3 compliant.

A better understanding of the Capability Maturity Model

Having been a programmer for the first few years of my career - I moved to quality assurance some years ago to get a better understanding of processes around building quality software products. My first assignment was to work with an external consultant and ensure that a 500+ member organization was assessed to be at Level 3 of the Capability Maturity Model (CMM). As a programmer my typical lifecycle was to get requirements over the phone, come up with my own design in my head, code it, unit test it and move it into system and integration testing. There was not much planning or process to the whole thing - just churn out as much as you could in the shortest amount of time and system and integration testing done by the client would tell you all your defects. So when I entered the world of quality assurance it was a whole new world.

One of the first things I learnt was the necessity of having a Quality Control (QC) Function and a Peer Review Activity to validate the fitness of the product being built but what I never figured out was why was the QC Function part of Level 2 and Peer Reviews part of Level 3. As part of that organization we really did not go through being assessed at level 2 before we went for level 3. We implemented all the process like Level 2 and Level 3 were all compressed into one big Level. So both the functions got implemented together and we found it very hard to actually get both working seamlessly.

Subsequent to the successful implementation of CMM for that organization I moved on to start a team of my own. We started to build products but they were getting killed at the User Acceptance Testing phase. So we built a sound requirements management practice and a testing (QC) practice and we ensured that what we delivered met the expectations of the clients. And these two practices happen to be Level 2 practices. Once we had this working very well we realised after that is that this is only one aspect of quality in software and that is the functional aspect of it. There was a completely different aspect and that was the quality of code and the QC practice was not able to address this need. It is at this point of time we started looking at peer reviews and ensuring that the code met certain benchmarks. We are now seeing our testing cycles come down and the code starting to perform better and thus improving the overall level of quality.

Another example was initially we did not have much historical data or experience in giving estimates or managing the project within the estimates and it was not unusual to go over the estimate many times over (Level 1). This forced us to come up with better estimation techniques and project management practices for individual projects (Level 2). Having done this for a couple of years we are now trying to consolidate all the good practices that we have gathered over time into a single place to implement in future projects so as to standardise the way we do things and to make it easy to implement projects (Level 3).

I am now realising that even though we are not implementing the CMM model we can actually relate our experiences to the various levels and the practices within the levels. It is very important to let one practice become institutionalized before the next practice is put in place and over time all of this comes very naturally. So I don't think agendas of a lot of organizations to achieve a certain level in short pre defined intervals of time is sustainable to actually see the benefits of it. It is important to allow the practice to develop and mature to become useful. The practitioners need to be enlightened about the usefulness of a practice and enlightenment takes time and effort - it does not happen over a training. But then will the economics behind getting CMM or CMM(I) assessed allow things to mature and take its time - I don't think so. So anyone wanting to get assessed to become CMM (I) should ask themselves are we getting assessed for marketing reasons or to actually improve things.

Monday, November 19, 2007

Are all services in India bad - Now its Hyundai

Based on my recent run-ins with various organizations for their services my experience seems to be going from bad to worse. Now its the turn of Hyundai when it came to servicing my car.

Here is what happened - I took my car for servicing about a couple of weeks ago and as always I dropped it off in the morning at about 9:30 AM and I was told to come and pick it up in the evening at 5:00 PM. So I gave them a call just before leaving to go and pick it up and was told that there was some part in the steering wheel that was spoilt and so they have to change it and my car won't be ready till 7:00 PM. So I leave to go and pick it up at around 6:30 PM and was made to wait till 8:30 PM before my car got done. I drive it home, all seems fine at first until I realise that the central locking is not working any more. Since it was not a very serious problem I decided that I will get it fixed if and only if I drove in the direction of the service center.

A couple of days later I got a call from the Hyundai Service station enquiring how the service was and if my car had any problems - so I told the lady on the line that my central locking was not working after the servicing. She said OK - so I said is there something you can do about it now that you asked me - she told me to drive the car to the service station or to call the mobile servicing van. So I asked her will I get charged for it and she says yes you will - that did it for me. I had just given my car for a full servicing and had spent close to Rs. 5000 on it and wasted almost half a day dropping and picking my car and when they call to find out if there is an issue and I tell them about it they point me in the direction of a paid service that I could have got even without her help.

So I asked her why did she call and she tells me she called to just get my feedback about the service and to note it. Looks like she did not note down my feedback as there was no response from Hyundai after I told them of my problem after the service. I think if the call did not help in solving my problem then it was a call that just wasted my time and this is not what I expected from Hyundai.

As I said earlier it looks like my frustration with a lot of companies is just going on and on - I hope we improve and show the world that we are really world class - right now we are not.

Friday, November 16, 2007

What is quality ?

I have realised that we use the word quality a lot in the software world but a lot of the software professionals do not understand the word when they use it. When one does not understand the word it is hard to deliver what it means. According to wikipedia quality means "non-inferiority, superiority or usefulness of something".

Let us step away from definitions for a moment and try and understand what we mean when we say - "This apple is of the highest quality". A lot of answers I have got just say - it means it is the best - but my question is best against what ? So there is a comparison - there is a comparison against a perception or an expectation. Everyone has expectations when they go to buy a service or product and when those expectations are met the person is satisfied with the product or service and that is when the product or service is deemed to be of quality.

Different people have different expectations of the same product. So each one of their perceptions of what is a quality product or service may be different. For example someone may want cheap apples that are not spoilt to make jam, another may want a sweet, crunchy, red apple to gift someone irrespective of the cost. So each one of their perceptions of quality is different. Hence it is important to understand the expectations of the person in order to provide them quality services and products.


In software the expectations of the customers need to be captured during the requirements definition phase. The better the expectations of the customer are captured the higher are the chances of satisfying the customer with a quality product.

Thursday, November 15, 2007

Retail Boom - customer service is the key

Everyone around the world is talking about the retail boom happening in India and the way it is going to explode and everyone who is anyone in the world retail space wants to be in India. Having said that things have changed quite a bit in terms of presentation and availability of products in India but what has not changed is the attitude of the sales staff and the way customers are treated in the stores. The feeling one gets is that the store is doing the customer a favour by existing and serving the customer and its not the other way around where the customer is king and you need to do all you can to delight the customer. Let me give you a few examples of my experiences in the last couple of weeks to illustrate this.

I visited Metro Cash and Carry (India) here in Hyderabad and I wanted to pick up some furniture. So I found what I wanted and was waiting for someone to help me find a packed piece. There were a couple of sales guys who were buying shirts (yes during store timings and wearing the metro yellow overall) so I approached them and asked them to help me - they made a phone call and I waited for 5 min (they continued buying their shirts that were going at 99 and 199 each). I then went to the front desk and I saw someone dressed like a manager I told him and he too made a call and I came back and waited for another 5 min - nothing happened. I then told a couple of more sales people who came and went but no one was able to help me - at last after nearly 25 min a sales person approached me telling me that he was the in charge for the furniture - only to tell me that they are out of stock.

I then continued on my shopping and bought a lot of stuff that was on discount due to the 83% clearance sale that they were having - I especially bought stuff from the Johnson Winter Care offer. I then approached billing and everything was going fine till I realised that none of the discounts were showing up on my bill. So a few more phone calls and about 10 min of waiting nothing happened so I approached the main cash desk and saw a lot of sales persons (including the one in charge of the furniture section) loitering and chit chatting there. So I asked them what is happening about my problem and they told me that they already informed the person in charge about it. So I waited for 5 min - nothing happened. So I approached them and asked for the manager - they told me that the manager is in a meeting and that he cannot be disturbed. The other weird thing is that the person who was to help me said - only the manager knows about the offer - but he is in a meeting. That's when I lost my cool since it was already more than 30 min that I was waiting and they were still not ready to bring the manager out. Anyway after a bit of my screaming the manager came out and told me that all the stuff that I bought was not on sale - I then opened the metro mail magazine and showed me the pictures of the products that were on sale and they matched the products that I had - but he insisted that none of them were on sale. This clearly shows that even though something is on sale in the magazine it need not be on sale the day you visit the store. I left all that I bought and walked out of the store having wasted enough time already.

My other bad experience was at Big Bazaar in Ameerpet. The store is a new store but it lacks the following - very bad traffic management, parking is still being constructed, construction material all over the place, water all over the place, very few and badly organized billing counters, very few sales people to get clarifications from and when you add the crowds into the equation it just ends up being such a bad shopping experience.

Of the two experiences - I will never go back to Big Bazaar but I will go back to Metro. Metro is a nice shopping experience, its a nice store will well laid out aisles and items. All it needs to improve is the customer service when customers have issues. Big bazaar is just the pits it leaves one being frustrated after you shop there.

There are a lot more stores on the smaller store front that have opened like Reliance Fresh, Fresh @, Ratnadeep, Trinetra, Subiksha and so on and things are changing - I have had good experiences in many of these stores. Things are improving but the stores have to realise that the key to their success is
  • Ample parking
  • Well stocked stores neatly arranged
  • Quick billing
  • Customer service help desk that can actually help

Monday, November 12, 2007

Building a website

I have been spending my last 4 weeks conceptualizing and building this website - http://www.dsouzaweb.com/. How did I go about doing it.

Collect the content

The first thing that one needs to do is to collect a reasonable amount of content to put up on the website. I have been collecting a lot of the information on this site for the last 3 years through the yahoo group. What is a reasonable amount of content is subjective but I would say at least enough content for about 10 web pages (at least that is what I think would make the website look like something worth visiting)

Blog or Content Website

A blog is a website that typically contains views of a person or a group of people. It is more like a diary of thoughts where content is displayed by date. On the other hand a content website is a collection of content on a particular subject where a blog is only one of the components. These content websites can be driven by static content or dynamic content that come from a database or it can be a combination of both. If you have static content it would be good to go for a content management system that most hosting solutions provide. If you have a data driven site then it is good to develop custom web pages using web technologies.

Finding a Hosting Site

There are 1ooo's of hosting sites available but the important thing to look for the following

  • Ease of use
  • Duration they have been in the business
  • Look for any feedback from others that have used the service
  • Features offered - important ones being database access, languages supported, administrative options given.

Do not worry about this too much since you can always change your hosting provider if you are not happy with it as long as you do not use any custom solution to build your website. So stick with open source solutions and all the hosting providers will be more than happy to host your website for a fee of course.

I have used 1&1 and DomainG8. Personally I like DomainG8 better than 1 and 1 in terms of ease of using the services and the customer support.

Check out the packages and select one that seems to suit your needs - if you don't know which one that is select the one which is the cheapest and you can always work upwards after that.

Build the website

Once you have a hosting solution you have to start building your website. If you are using a CMS (Content Management Solution) or a blog then your options for look and feel customization are limited to what is offered by that tool or website. On the other hand if you are building a custom website then you can let your imagination explode. To drive that imagination I have found a very good site for templates and that is Open Source web Design. Once you have the content - you have to choose the tool to build your site in - there are a lot of tools available out there from Microsoft Frontpage to Adobe Dreamweaver to a lot of other tools. Some free some more expensive, some powerful some not so powerful - so try out the trail versions and see what you are comfortable with.

I prefer building my site in php rather than html since I can make templates out of all the common content and have them included in the main page. I do not use any of the fancy tools available and prefer to code my websites by hand using Notepad++ - another free editor that is just wonderful.

Uploading the website

Once you have built your website you can upload it to the hosting server using free source FTP tools that are available. I personally use Filezilla and my experience has been wonderful with it.

Tracking visitors

I use a couple of tools to track the visitors coming to my website - Google Analytics and the other is ClustrMaps. Both are free to register and use. Google Analytics provides detailed reports on the profile of your visitors so that you can target them when you post something. I just like the way ClustrMaps looks on the website to tell visitors who is visiting your website. You can see clustrmaps in action on this website on the bottom right hand corner.

Conclusion

There is a lot more you can do on a website and as and when I discover them I will try and write about it. I am investigating how I can get my website high onto the search results of search engines and will leave that as another article. If you have any questions feel free to ask and I will try and find answers for you. This is by no means an exhaustive article on website development but its more a starters guide on how to build a website cheaply.

Friday, November 02, 2007

How do I start blogging ?

I have been asked these questions a number of times

  • How do I start blogging?
  • What do I blog about?
  • How often should I blog?
  • How do I get people to read my blog?
  • What happens if I do not blog everyday and readers come to my blog and don’t see anything and stop coming after that?

I have been blogging for close to 3 years now and I went through pretty much the same set of questions when I started to blog. Let me try and answer these questions based on my experiences.

How do I start blogging?


First you have to find a site to host your blog – there are a lot of them out there like Blogger and wordpress being the more famous of the ones out there. I found this comparison chart that can be a start to compare the features but it is outdated. You can use it to get an idea of the features offered by the various blog hosts. Microsoft and Yahoo have their own blog hosting software within their social networking applications. I have been using blogger for all the 3 years that I have been blogging and have just seen it improve over time to pretty much meet all my needs. If you get confused which to use – create a blog in each one of them and see what you are most comfortable to use. You can open a blog in almost no time at all on any of the hosts.


What do I blog about?


Once you have chosen a host for your blog its time to start blogging. Blogging is about writing anything that comes to your mind it is putting your thoughts down on paper – these thoughts may be about something that you are very passionate about or they may be about everything in life in general. So don’t wait to find out what topic you want to blog about – if you wait you will always be waiting and you will never start. So just start writing about anything – once you have a few blog posts written you can always categorize them under different categories which most of the blogging sites support now. So the key is to start blogging.


How often should I blog?


Once you have a few blog posts down you will realize that on some days you have a lot of thoughts and you have so much to blog about and on some days you have nothing to blog about – this is fine and normal. If you have a lot to blog about and your schedule permits it go ahead and blog multiple times a day and if you have nothing to blog about don’t blog at all – its perfectly fine. Do not try to force yourself to blog if you don’t have anything to blog about that day – you will write something that you will not like or will not be satisfied with.

How do I get people to read my blog?

This is one of the hardest things to do. It’s the same as marketing a product. So unless you have a product that someone is interested in reading people are not going to read it. So the first thing to do is to be able to get a sizable amount of content down. Once you have a few posts down circulate the URL of the blog among your friends and see what their response it – once you have done that put your URL in the footer of your mails – so a few more people would start getting to know about your blog. By this time the search engines should have processed your blog and it should start appearing in their search results so you will start getting more hits as the number of readers goes up. You can always put a status message in your yahoo, gtalk, skype messengers when ever you have put up a new post so that your online buddies can go and read your articles. Its kind of hard to do this initially but after you gain some confidence you will find it easier and easier to market your blog.

What happens if I do not blog everyday and readers come to my blog and don’t see anything and stop coming after that?

This is possible. So there are a lot of ways around this. You can always collect the email ids of your regular readers and send them a mail or an instant message whenever you blog. You can create an RSS feed and ask your regular readers to subscribe to the RSS feed so that they get notified when there is something new to read on the blog. If you have something good that they want to come back to they will come back. So concentrate on the content and the readers will come back.

Conclusion

The key thing is do not wait to get all the answers to your questions before you start blogging – Create a blog, start posting and if you have something good the readers will automatically come. Happy blogging and do let me know if you have any more questions and I will try to answer them based on my experiences.

Sunday, September 16, 2007

Another Disaster - Relief is just pathetic

Just about a week ago a bridge under construction came down in Hyderabad. I was at that point of time about 200 yards away from where it happened - I was stuck in a traffic jam. Its sinister to think that if it was not for that traffic jam I would have been very very close to the accident spot. What happened was that the scaffolding of the bridge gave way and the beams that the scaffolding was holding up came crashing down on the motorists on the busy road. 13 such beams each weighing 40 tons came down. Its Gods blessing that it was a sunday and it was raining that 2 people lost their lives.

Bad enough the accident happened but what was shocking is that the injured in the accident were able to get to a hospital barely a kilometer away from the accident spot only after 2 hours due to the traffic blocking the traffic. Why is that if a politician is coming on a road they can clear it in a matter of minutes but when it comes to clearing the roads for an ambulance does not evoke the same response. We need to learn how to manage disasters - it is not that the police can't do it, they just don't do it.

I have seen ambulances stuck in traffic for precious minutes - neither the cops manning the traffic junctions or the people in the way show any inclination to give way to the ambulance. The traffic was once stopped for a VVIP and there was an ambulance blaring in the stopped traffic and the cop who stopped the traffic just did not care about the ambulance he just made it wait till the VVIP passed. The public need to understand that one day it may be one of them in that situation losing precious minutes in an ambulance stuck in traffic.

Another thing that distressed me is seeing the hundreds and hundreds of people at the accident spot doing nothing but just standing around and gawking at the scene. As part of disaster management we should learn to clear out the effected area so that the people who can help can do their job efficiently and quickly. The politicians should learn that they visiting the spot soon after the accident does not help anyone. Neither do they have the specialization to deal with the situation and they also throw everything out of whack due to their own security and the hundreds of people that follow them everywhere. When will we learn and improve and understand that in an accident the most important people are the victims and we should be doing everything in our power to help them.

What I have realised is that we are not learning from incidents that have happened and improve on it. Every time we have a disaster its the same story.

Saturday, September 08, 2007

How do you calculate productivity?

Let me start off by defining productivity -

It is the ratio of the quantity and quality of units produced to the labor per unit of time.

As we all know productivity is the measure of units produced in unit of time. But as you see in the definition above there is also quality involved in the units that are produced. So we can never calculate productivity only using quantity without quality.

When we think of productivity in software everyone goes for the easiest measure - number of lines of code written in unit time usually a man day. This is a very very dangerous metric to use for the following reasons

  1. A lot of code is written by code generators and by copy pasting existing code and modifying it to suit ones needs. So there can be a large amount of code written in a very short span of time.

  2. A good design may cause a lot of code reuse - thus reducing the amount of code that is written but in turn improving performance and maintainability. Does this mean that the productivity has come down.

  3. Tough technical problems may have a lesser amount of code that is written than easier problems - but tough technical problems involve a lot of thinking and usually take longer to do. Does this mean that the ones working on the tougher problems are less productive.

Let me tell you typically what happens in a project that involves development of a business functionality.

  • The initial framework and prototypes are developed - usually takes sometime and there is not much code that is written.
  • Once the framework is proven junior developers are taught the framework and given the functionality to replicate using the framework - short phase when a large amount of code is written.
  • Parallel activities go on to do the parts of the framework that are plugged in on top of the functionality such as security, error handling and so on - does not result in a great amount of code but achieves a large part of the functionality. Usually done by the senior developers in the project.

If you look at the above scenario it will come out that the junior developers that worked on replicating the functionality using a similar kind of an architecture are more productive than the senior developers that worked on the tougher defining parts of the application. So as you can see above the traditional LOC/Man day definition never works. What is more flawed about this definition is that it does not even take into consideration of the quality of the code. One may write a lot of crappy code generating a large amount of code base but the stuff does not even work.


At the end of the writing software is different from manufacturing - productivity is a concept from manufacturing. It is easy to use productivity in manufacturing for the reason that it is the same article that is being produced again and again each and every time. Hence you can either go fast or slow in producing that article and productivity is an apt metric there. The same cannot be said of software. In software we are not producing the same functionality over and over again.


More dangerously productivity tends to be used to evaluate the performance of the person and I hope that by reading what is on top no one in their right mind would use it.


Let us hypothetically say that we want to calculate the productivity in software - how would you do it?


In order to calculate productivity we need a measure of size or quantity. This is the hardest thing to calculate in software the reason being the easiest measure Lines of Code (LOC) can be very misleading. There can be code that is never used or called in the program. They can be code that is absolutely messed up and should never have been written that way. There can be code that can be written on the same line but is written on multiple lines or the other way around. There are hundreds of such issues with using LOC as a size measure. Which brings us to the only other measure and that is trying to count the functionality that is implemented. For this FPA (Function Point Analysis) does a pretty decent job but the catch is that it is not easy to use by everyone. One needs to have experience using it.


Provided you have the FPA count of the project - then comes the next challenge of getting the time to divide it by. One should never add the full duration of the project and use it. This is a big mistake. Each phase of the project has its own challenges and the outputs are different out of each phase. Productivity should be calculated on items where the output is similar if not same. Hence one needs to count the productivity for each of the phases - planning, design, development, Testing and Release (provided we go with the waterfall life cycle) separately.


Now comes to the third measure and that is quality. Quality can be calculated by the amount of functionality that is working with no defects or defects accepted with a work around.


Hence I would say a decent productivity metric would be FPA count/Time in x phase where y% of the functionality is working.

Tuesday, September 04, 2007

Pictures from Pragati Resorts

We went for a picnic to Pragati Resorts in Hyderabad and these are some of the pictures that were taken there of the resort.

This is the entrance of the resort and on the right is the reception.



This is the walkway leading away from the reception. It has a lot of greenery and it is quite beautiful.



Swimming pool. It is not deep but there are a lot of slides. Careful if you are big made as you tend to roll over and your head hits the base of the pool.


A nice ground to play cricket. A must do if you are in a big enough group.


The portico around the swimming pool. Just cool to hang around. There are pool side rooms on top of this area but I can't seem to find the pictures. Will upload them as soon as I find them.


This is the outdoor restaurant. This place has 2 restaurants. One is indoor and the other outdoor. The indoor restaurant doubles up as a bar so is not very conducive to families having food there as it is smoke filled and noisy. The outdoor place tends to get very dark in the night. The restaurant overlooks a pond that have ducks in them and so it is quite a nice place to hang around.


This is the entrance to the restaurant and the conference rooms.

This is where you end up with once you enter the above place. Its a large sit out area.
This is the entrance to the children's park. There are quite a few things to do in this park.

Signs to make sure you don't get lost in the place.

Saturday, September 01, 2007

Lack of professionalism in support services

India's economy is booming. India is on a fast growth trajectory. We hear many such slogans these days describing the booming Indian economy. But the last few days have shown that even though we have the best of products available in India the service level commitments of these companies is absolutely atrocious. Let me give you a few examples

Kenstar
I had a kenstar washing machine and the spin on it stopped working so I called up the service center and was promptly given a complaint number. I did not have a technician come to my house for 48 hours and only after numerous telephone calls and a lot of frustration. He then told me that he had to take the washing machine to his workshop to repair it and it would be gone for a further week that's when I decided to buy a new washing machine since the machine was anyway getting spoilt every 8 months or so.

LG
So I went and bought a new washing machine. The machine was delivered promptly and efficiently. I then called up LG to set up a installation and demonstration and I was promised that someone would be here in 24 hours. Its been 72 hours now and all I have got is a call from the technician telling me that unless they get 2 or 3 installations in my area they are not going to come to my place. He then went on to tell me that since I had already waited for 2 whole days I should wait for another 2 days before they come. If this is the standard of service it looks like all that the company is bothered about is to sell the consumer the product and not care about after sales support. I have gone on to install the washing machine myself having got fed up waiting for them to come.

Another instance of their pathetic service was when I bought an LCD TV. I had the TV sit in a box for two days till I escalated it to their area manager and only then was the technician sent to do the installation. Unfortunately in this case I could not do the installation myself as I needed it to be wall mounted so that my DTH connection could be plugged into the TV.

Hathway
I have a broadband connection from Hathway. There are times when this connection just goes off and even if you call up the call center they have no idea when it is going to come back up even though the problem is at their end. The answer that they give is that what is your problem it is not working for anyone in your area. It will come when the problem is fixed but we dont know when it will be fixed. They have no sense of ETA's and care of the difficulties that the customer may be going through.

Companies should understand that to retain a loyal customer base selling a good product is not enough - they also need to ensure that the customer is happy using the product. They should give realistic estimates of when they can service a request. If companies do not take service level agreements seriously then they are only losing customers that they managed to get with their good product.

Professional servicing is a new concept in India and there are few companies with whom I have had good experiences such as Tata Sky and Eureka Forbes. But this needs to percolate to all the other companies.

Friday, August 31, 2007

Security flaw on Webex

I was starting a meeting the other day on webexone and to my shock and amazement as soon as I gave the name of the meeting and clicked on "Start Meeting Now", I looked at the URL and I found my password there for all to see. Being an administrator of the account anyone getting this password could have pretty much done anything with the account.


This is quite a serious security flaw in webex and I hope they fix it soon.

Thursday, August 30, 2007

Summer internship

We at Inforica had an interesting summer this year. Three students had to do a summer project and I had a project that needed to be done for a local church.


As a first step a senior developer along with myself sat down and decided what the requirements, design and scope of the project should be. We then interviewed these students and realised that they did not know C# but they had an aptitude to compute. So we first gave them some assignments in C# which they quickly learnt and completed. We then trained them on the design of the application and gave them a sample page that made use of the design. We then asked them to code all the pages similar to the sample. We then told them to code pages that were a little different from the sample and in the end we asked them to code completely new stuff.


What was interesting and a great learning experience was that how 3 students who did not know C# were able to develop a production application in 6 weeks. You can read their blog Summer at Inforica to understand a little more about what they went through. Some of the learning's we took away are
  • It is very important to have very clear requirements and scope defined for the project. We did the mock ups of the pages using an application called axure and we wrote the help for the application explaining the flows and the fields using Html Help Wizard from Microsoft which comes bundled with Visual Studio 2005. This ensured that the requirements and the scope of the project was very clearly documented.
  • The architecture, both application and database should be documented with a sample application to show that it works and meets all the requirements. We did a prototype using the architecture and we developed the database architecture and gave it to them. This set a clear direction in how things had to be done.
  • Take them one step at a time through the initial pages. We used to have one hour sessions with them where we used to show them how each feature needed to be developed and then they would go and work on it themselves thus ensuring that they clearly understood how and why things were done that way. As they progressed in the project
  • Constant interaction and mentoring is needed to ensure that they are going in the right direction. To ensure this we used to have a one hour technical meeting almost everyday that ironed out any technical issues and we used to ask them to blog about the status they made each day and the issues that they were facing so that we could address them and this seemed to have worked very well.

On the whole it was an excellent learning opportunity for all of us to try out new things. We have already incorporated a lot of these learning's in the projects that we are currently doing and we can already notice the improvements in quality and delivery. Kiran the senior developer has blogged some of his experiences in his blog.

Wednesday, August 29, 2007

Bomb blasts again !!!

I was sitting at home watching a movie when I got a call from one of my friends asking me if I had heard the news about the bomb blasts. I was shocked when I heard it since Lumbini park would have been the kind of place I might have visited on a saturday evening (had it not rained) to go for a boat ride or to just hang around.

What I don't understand is, what do these terrorists have in mind? I believe every action has an intended goal or perceived benefit, but in this case I see none of it. When you bomb a religious site you are targeting a community, when you bomb a financial center you want to bring down the economy and so on. But when you bomb a park that most probably the terrorists themselves will visit with their family I am not sure what message they are trying to send and to whom. If the goal is to dissuade investors - then I don't think this bomb blast would have achieved that since they did not hit at where the investment is happening.

It is sad what they have done, they have made everyone very nervous to go anywhere or do anything. I was driving to office yesterday morning and I was thinking at the traffic signal - for all I know there might be a bomb here. The reason for this paranoia is because of this mindless blast. All they achieved is to make every single individual nervous and ensured that everyone will think twice before they visit a place that they want to have fun at.

This is a wake up call to our police to get out of the "kuch bi chalta hai" attitude and get a little more serious about our security. It is sad to see that out of a police force of 70000, 30000 of them are used for the security of our politicians - 296 MLAs and 92 MLCs (i don't even know why we have the MLCs) and the rest are to protect the population from such attacks. It is high time that they seriously look at this lop sided approach to security. Terrorism is here to stay and we have to live with it but if the police force does not instill a sense a confidence in dealing with such incidents then in the long run there is a price to pay.

Another sad thing that I watched is how the injured were treated. Why don't people understand that by standing around and watching all that they are doing is obstructing the injured from getting timely help. Why can't people who are not involved or related to the incident just leave? Why can't the police just clear out the effected area and make sure the right people are given access? Our police force needs to become more professional at handling these situations. They should learn to get to the crime scene quickly and secure the area. I saw no evidence of this. It took them almost an hour to achieve this from what I read in the papers and this is absolutely pitiful as I am sure we would have lost a lot of evidence and the injured also would not have got timely help.

Another sad thing that I read is about a man whose head was totally destroyed in the blast was made to wait for 2 hours on oxygen before the doctors attended to him in Osmania General Hospital. Osmania is the premier state run hospital in Hyderabad and they should know that the first few minutes after any injury is the most crucial time. It was sad that this lack of attention caused the man to pay a big price - his life.

Do we take life for granted in India? Are there so many people in India that live in poverty and hunger and dying of disease each day made us so unconcerned about death? If this is the situation then its a sad situation as a life is a life as precious as your own.

I hope and pray the following will happen
  1. We catch the criminals that did this - more for answers and closure to the whole thing.
  2. The police take protecting the citizen as important as protecting the politicians and are trained to handle crime scenes in a better manner.
  3. Our hospitals wake up to the reality of dealing with mass emergencies and providing quality health care as soon as possible.

Am I hoping for too much. I hope not !

Sunday, July 22, 2007

A long time since I posted

I know it has been a long time since I have posted anything on my blog. But there was a lot happening in my life on the work front and I was trying out a lot of the blogger features moving back and forth between a lot of websites. Anyway I think I have now settled on this website address http://sudeepdsouza.blogspot.com and I hope to start blogging again. Thanks to all the readers who kept coming back to check my posts and I hope to have something for you'll to read soon.

Friday, March 16, 2007

Blog Roll

Digital Inspiration
Amit is a batch mate of mine from ADP in Hyderabad and it is amazing to see what he has done. In his blog he talks about various ideas and products related to the digital space that anyone can use.

Problogger
I wrote my first guest post for Problogger and it kind of gave me the break into the blogging world. There is a lot one can learn from this blog if you intend to take up blogging seriously. If you plan to make money out of blogging then you should devote a lot of time reading the articles in this blog.

Baby Accessories Opinions
Mona in this blog showcases all the baby products that are available in India. She talks about their cost and her experience in using the product.

Blogs of colleagues and Friends
Kiran Banda
The Live Web

Links to my blog
Aala Santhosh Reddy
TechBlues.com