Posts

Showing posts with the label Quality

You are not a machine

Image
This is an interesting illustration that resonated with a discussion I was having recently about doing ones best. It perfectly encapsulates how you need to give your best each day, but the outcome is not always better than the last.  Some days the outcome is amazing, a high that you need to cherish and the next day as you give your best, the outcome might not be as good or better than the last. This should not lead to disappointment and dejection. It is to be expected as we are not machines, and we have our good days and our bad. We are also influenced heavily by the environment around us and circumstances each day that may not be in our control that will not allow the same.  Enjoying what one does makes it easier to give ones best. When you do not enjoy what you do it is hard to commit yourself to it whole heartedly. So find what is it you enjoy doing and then master that and deliver your best to get the best outcomes. 

Having heart in what you do

13 years ago I wrote about how " Having pride is key to quality " and this was written in the context of the software services industry. But having worked since then mostly in the services industry, I have come to realize more and more that one needs to have "heart" in their work to give their best.  What do I mean by putting your heart in what you do? It essentially means you care. You care about how the service is delivered, you care about the quality of the service, the timeliness of the delivery, you care about the happiness of the customer.  When one cares, automatically every detail is addressed. This ensures a high quality of delivery, the customer experience is great and you end up with a happy customer.  Happy customers end up giving you more business.  Putting ones heart in what they do, has to come from within each one. It cannot be thrust upon or commanded. So find the job that you want to put your "heart" into what you do and excel at what you...

Customer Service in the Digital Age

Image
Customer Service is defined as " the assistance provided by a company to those people who buy or use its products or services. ". In the digital age we live in Customer Service goes much beyond how we greet and serve our customers. It also includes how and where we serve them. 1. Go to your customer No longer do customers have to come to you to buy a product or a service, technology enables us to go to the customer and provide them with the product or service they require. At the very least, its important to have a good technology platform both on the web and mobile where customers can get their service or product at the click of a button.  2. Provide services in a predictable standardized manner  From the colors used on the website/app to the navigation to each service, its important to be standardized and at the same time the company needs to be very predictable in how the service is delivered. This is where automation plays a big part, reducing human intervention in the pr...

Composing a Masterpiece

Image
In an orchestra there are many individual great and very accomplished players of various instruments. Yet when they all play to the same composition together they bring out something special that they could never bring out when they play individually. And if they all play their own tune it never sounds great. Sounds more like noise. Its the same with any team or a startup, there are many accomplished members of the staff but unless they all play to the same composition they will not produce the music of success. And if they all play their own music it never sounds good and it feels like the team is pulling in different directions. That's where a composer plays a very crucial role, to write the music the way they envision it and then get everyone on the team to play to that composition. This needs to be fine tuned everyday so that the orchestra plays in tune and is able to adjust to the everyday changes that are bound to occur. Who is the composer in your team? Who writes...

Who best fits the QA Role ?

For those of you who are not too familiar with these terms I would advise you to read my first article - Quality Assurance Vs Quality Control where I have spoken about my understanding of the two terms and it kind of leads into this article. I have been asked this a few times by professionals who do QC (essentially testers although testing != QC) - "How do I move into a QA role?" and I have also read in a few websites and newsgroups for QA and QC where one looks at moving from a QC role to a QA role like a natural progression in ones careers. Since I have played the QA role I would first talk about some of the things that helped me perform this role. Since the QA role expects the person to have a holistic view of the process of software development it is important to have a bit of experience in all the facets of software development right from requirements to design to development to deployment. Its only when one understands all of these elements in software developmen...

Beware of net4.in

Image
For those of you new to websites - there are two parts to any website going live one is to buy a domain name (i.e. Domain Registration) and the other is to host the website content (i.e. Hosting Services) and this can be done with the same service provider or two different service providers. If you host the content on one service provider and buy the domain name from a different service provider then you have to go and tell the Domain registrar (the service provider you bought the website name from) the server address of where your website is hosted (you can get this from the hosting provider) and this is called changing of the name servers. Net4.in is a service provider in India that provides all these services and many more and I have been developing some websites for a client that had registered their domains with net4.in . About a couple of days ago the client realised that his site was down and was not able to understand why it had suddenly stopped working so...

Before moving to DTH enquire about after sales

Image
For all those that are thinking of moving from regular cable to DTH be sure to ask about the after sales service and how much they charge for it. I bought the Tata Sky DTH service about two years ago and it worked without  any issues till now. With the rains and the wear and tear on the dish the wire connecting to the dish came lose and I was getting a problem with the reception. Not understanding what the problem is I called up the Tata Sky help desk and they asked me to do a bunch of things with the set top box that did not help. The problem was still there, all it would say was "Unable to receive signal". So I asked them to send a technician over to take a look and the first thing they told me was that it would cost me Rs. 350 for the technician to just visit my place even if he did not do anything. This I think is ridiculous for equipment that has external wiring and is bound to go through wear and tear. Some examples of similar equipment is the internet connection, tel...

Using video screen capture in testing

We had a very interesting issue in a project where the client was reporting an error in a screen that had hundreds of input fields but the client was not able to give us reproducible steps for the error. All that the client said was that the error was coming when a certain subset of values were selected in the input fields and the subset did not remain the same each time. In this case without reproducible steps it was virtually impossible to solve the problem. After a bit of thought, what we decided to do was to use Snagit video screen capture and record the screens of a group of developers using the screen causing the error extensively. Once we had this video we played it back and identified the points where the error was occurring and we could then rewind and take a snapshot of the screen just before the error occurred and also write down the steps that led to the data that caused the error. With this information we were able to identify a pattern that was causing the error and solv...

Defect Fixing : Biggest Project Risk

I was working on some estimates for a project by first estimating the size of the project and then estimating the effort by looking at some historical data on similar sized applications done in the past. What we realised that in all our projects we were pretty much on track with the estimated efforts until we reached the validation testing phase. In this phase we realised that we were spending anywhere between the initial estimated effort and three times the initial estimated effort. I then tried to analyse why we had such a vast variation in the estimates for this phase and I found that the prime reason for this is because there are defects slipping through all the other phases into the testing phase and thus skewing the entire estimate. If there is no control on the other phases of the project then this phase is pretty much a mess and usually it is so late in the project that it is very hard to recover from the mistakes made in the other phases. So if you see the project team can nev...

Disconnect between Management and Programmers

Image
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 ...

Estimates are dangerous

Image
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. Wha...

Good Design Vs Good Coding

Image
Do you do the design document before or after the coding cycle? Logically everyone would say that you have to do it before the coding cycle but the fact of the matter is that many people do it after the coding cycle. They finish the code and then feed the code into a tool that will draw a design diagram for them based on the code that was submitted to it. They then take that design diagram and write the design document based on that diagram. Now if we compare this to the real world it would be like constructing your house by a bunch of brilliant architects each having his own idea of what he wants to do with the house and after each one of them says they are done you draw up the design based on what you see. Can you imagine what you would get? Thats exactly what happens in the software that is designed after it is built its just that everything is virtual and it is not as apparent as it is in a building but its pretty much the same. Hence having brilliant programmers does not help to c...

Timing of New Tools and Techniques

Image
Timing the introduction of new tools and techniques has to be done very carefully in a project or an organization. Introducing a new tool or technique into a project or organization and expecting magical results almost never happens. In fact almost in all cases there is an initial loss of productivity or quality. The reason for this loss is due to the following There is always a learning curve for the new tool or technique to be adopted. Almost always the initial use of the tool or the technique is never the most optimised or best way to use it. Sometimes a technique requires a mindset change and this mindset change takes time. There will always be skeptics to anything new that is introduced and these skeptics can always bring the others down. Does this mean that no new tools or techniques need to be introduced? Absolutely NOT. There is always a better way to do things and one should be continuously improving by introducing new and better tools and techniques but some precautions shoul...

Managing risk for better estimates

Image
Everyone who has given an estimate for a task knows that they are giving the estimate based on everything happening "normally". Normal means that there are no unplanned or unknown difficulties that arise. If one expects to be able to make a plan that takes into account all of these unplanned or unknown difficulties then it is impossible at the beginning or during the project to make an estimate that is accurate. This is possible only after the project is over and that is too late. So what does one do when faced with a situation such as this and needs to give an estimate with a reasonable level of accuracy. The most important thing is to make a plan. Any plan. So when you start off the project you make the best possible plan that you can at that point of time. Once you make that plan ask yourself - "What are the items in this plan that can cause my estimate to go wrong?" Once you ask yourself this question you will be given some answers such as We are doing this desi...

Offshoring to India

I was reading a post by Steve McConnell on his blog How to Scale Up Quickly and he commented Trying to startup quickly by outsourcing is a dead end as far as I'm concerned, especially to India where turnover is so high. Offshore captives can work, but minimum workable size seems to be about 100 people, and it probably takes 2-3 years of ramp up to get to financial break even. There are some points here that I agree with and some that I don't. I agree with the fact that there is high turnover is true in a lot of organizations and yes it does effect a lot of projects. An industry average of 15-20% attrition is quite startling for the west to grapple with. Making a project succeed with this kind of turnover is also hard. Searching in Google will give you enough proof to substantiate this high figure. In order to complete a project it is important to have a consistent team right through the project. I do not agree with the fact that you need a minimum workable size of about 100 p...

Tata sky fixes at a cost

After my earlier rant about Tata Sky which I forwarded to their customer care and publicity email ids that I got from the Internet I got a call from their customer care telling me that they can fix my problem at a cost. I was told that I would be refunded all my money but I had to pay the refund charges which worked out to about 2.5% of the refunded amount and then I can buy the new package by paying once again. Having no energy to argue with them anymore and the fact that I still save money at the end of the transaction I agreed to it. The fact that I have to pay money for no mistake of mine but a lack of a process capability on their side is something that still leaves a distaste in my mouth. Anyway for all those planning on getting Tata Sky - their service is good compared to a lot of other service providers that I have used in India. They are professional and prompt. This is the first time I have something to complain about them.

Offshore Development Challenges : Requirements

Anyone who has done a reasonable amount of development will tell you that in order for a project to succeed getting the requirements right is the most important ingredient of the success. Communicating a requirement is another challenge due to the fact that along with the idea the intent should also be conveyed and doing this over a non visual communication medium over thousands of miles can be a challenge. Good requirements development is even more crucial in an off-shore project due to the following reasons When the requirement is not clear valuable time can be lost as the clarifications can take time due to the time difference. Subject matter experts may not be available in the offshore team so the SMEs in the on site team have to explicitly explain each and everything - otherwise the development may not be done keeping the context of usage in mind. The on site team will not be able to see anything till the development is complete or at least a fair bit is done and this may be too c...

Tata Sky disappoints

Image
After forwarding this rant to the customer care and the publicity email ids of Tata Sky they fixed my problem at a cost . I have been using Tata Sky for close to a year now and have been extremely happy with their service. But then since you are paying a premium for the service when compared to cable TV operator you expect that from them. They have managed to disappoint me today. While recharging my Tata Sky account I noticed on their website the following offer " Pay for 10 months and enjoy 12 months of TV viewing ". Well this got me quite excited as it is quite a bit of saving. So I chose the option to do this and was directed to the screen like the one below that said " Note: The annual package is available only on recharging your account on My Tata Sky for a single transaction amount of Rs. 3000 for Annual Super Saver Pack ... ". Based on the above statement I topped up my Tata Sky account with Rs. 3000 to buy this package. Once I recharged my account I came bac...

Having pride is key to quality

What is it that brings about quality programming? Is it just having great processes? Lots of people have the ability and the knowledge. So what stops them from doing something great? There are a lot of good developers but the good developers become great developers when they start taking pride in what they do. If a developer writes a piece of code and he has the courage to display it to everyone else and say "I did that" then I can assure you that it will be something of quality. If the work is not one of quality then the person will not have the courage to put it out there and stand up to the scrutiny and criticism. I think it is for this same reason the quality of code that is in open source is a lot better than the quality of code that comes out of institutionalized development. The reason is because the developers write the code and put it out there for use and scrutiny and they have nothing to earn from it other than pride and popularity. So the question is - if you have...

Reproducing hard to find errors

Image
The key to resolving any error is to be able to reproduce the error. Ever had a situation where a client reports an error and there are no reproducible steps and the client is not able to recollect the reproducible steps or there has been an error reported and you are just not able to reproduce that error in the development environment because there are so many permutations and combinations. We have been in this situation a few times and the following method has helped us resolve these issues. Create an excel sheet with all the permutations and combinations possible in other words a list of all the test cases possible. Install snagit on your machine. Get someone to execute all the test cases in the excel sheet and capture the screen as video. Choose the options as shown in the screen shot below. Once you reproduce the error playback the video file and check the actions that were done to get the error and there you have your reproducible steps.