Showing posts with label quality attitude. Show all posts
Showing posts with label quality attitude. Show all posts

Monday, July 11, 2011

A Naked thought

The ways are plenty to build an efficient team, run a successful project and form an inspiring organisation. I am not an expert to discuss all of those ways, since there is a long way to climb to that height, however I am sure that there are few core values which needs to be practiced religiously to make a successful project, team and an organisation. I am here to share my views on one such value.

In a recent 1-to-1 meeting I had with my colleague, he asked "Are we not risking the attrition & business by letting the employees interact with our clients directly? Should we not deploy an interface in the middle to cover the risk?"

The question did not surprise me, since this is a standard practice in many organisations. However, having this layer only makes things worse than what you fear of. Removing this layer will let every member in the team to focus on the core task and core task only. This will eliminate issues with communication, productivity, morale, scale-up, quality etc.

One of my earlier organisation has outsourced a module in their key project to a company in down south India. Being few weeks in the project, they found that the resource was not performing well, which caused lots of issues with quality. Even though they had a good rapport with the client, they hesitated to inform this to the client thinking that it will spoil their reputation and continued with the non-performing resource to show the progress until they find a good replacement. The client found out the issues in the code at the time of the release and the code has to be completely re-written at the cost of an organisation.

Communicating the right status in a right way to the client would have made them understand the situation and the motive to do the right thing, which would have made the client to support them in finding the right replacement which would have avoided from adding junk to the product. By not communicating the facts at the right time, we are only making things worse by hiding the correct information and paving the way for an issue to bite us back at a later stage.

One of my colleague was working on few critical tasks, but he had to be @ home for a week due to some personal demands. He committed to complete those tasks by working from home. Upon checking the status after 2 days, we heard that the task is completed and the code check-in is on the way; We waited, waited & waited; The code check-in never happened. There were many reasons given for the same, but it was not really helping the project. At the end, we had to become independent of him and wrote the code in our own to meet the deadline.

The productivity is not expected to be the same as the normal working days when working from home, especially when there are personal demands. However, if something is committed, it has to be honored or at the least the fact has to be communicated clearly to the relevant people, so that an alternative plan can be made to get those tasks done. By not doing so, the consequences will only spoil the morale of the team and the reputation of an organisation.

One of our employee was very dull and lowzy. He was very unusual and not as normal as the other days. When asked about it, he pretended that there were no issues. However, as the days progressed, we found that he was distracted, not productive and failed in his commitments. Later we found that he was going through some personal issues.

Now a days, having a personal issue is as common as we comb our hair every day, but if you have any serious personal issue and you think that you need time to recover from the same, it is quiet important that you let the right people @ work know about it. It will only help them to understand why you are not 100% @ work and you will get their support on the work front, so you can focus more on resolving your personal issues and get back to normal soon.

After too many delays, finally the project was about to be delivered in a week. The developers knew that the deadline cannot be met, but they did not communicate the real status to their manager thinking that they can put some additional effort to make it happen. They pushed themsleves hard to deliver it on time, but things did not work out. On the day of the delivery, the manager found out that they need 4 more days to complete the task. Doh!

Informing about the delay to the client on the day of the delivery is the last thing the client wants. Also, rushing up the delivery will not help in ensuring quality. No one can get the estimations right, hence missing the deadline is fine, but not communicating the real status at a right time is a serious issue. It will only cause surprises and cripple the system. Keeping the right people informed about the right status of the project @ the right time would only enable the organisation to help teams perform better and to plan things well without hurting anyone involved in the project.

If you have observed, there is one common thing missing in all of the above incidents, it is an attitude of being open, yes a value called Transparency. Most of us have a nature of hiding things without our knowledge in our defense, where that practice needs to be sent to grave if we want to keep Transparency alive in us.

"Helping the team and an organisation to plan things better to deliver quality by communicating the right fact at the right time on the progress, issues, risks, availability and other impacts regardless of the personal consequences is called Transparency. It is a value, it is a commitment from every individual to share and it has to become a core habit of every team member."

So, what blocks people from being transparent?

Over confidence: Confidence is good, a bit over will just poison your mind. Many think that the task assigned can be easily achieved without analysing it well. So, they commit to something initially and work to honor that commitment, but when they find out that they made a mistake by committing too early & their commitment is in stake, they will be pushed to cover things up in their defense.

Fear of failure: Failure is not a bad thing, but not learning from it is an issue. Not all of us see failure in this way. People want to succeed, but if they face otherwise, they try to escape from the situation fearing the embarassment and wash their hands of it thinking that it might affect their career.

Fear of blame: People's real values are tested only when they are in crisis. When the progression of the task is not going well as planned, you might think that communicating the same might upset your manager/lead and instead of providing a solution/support, they might blame you for the issues caused by you. Yet again, you have to make up for the situation.

Lack of planning: There is a saying, "Planning is bringing the future into the present, so that you can do something about it now". Many think that Software Engineering is just about coding, but it is also about understanding, analysing, estimating, communicating, risk handling, deploying, maintaining and much more, very importantly PLANNING. Lack of planning will lead to failure, many are not comfortable facing the same, hence the information is hidden.

Lack of Visibility: When employees do not have a visibility on what/when/why things have to be done, they do not know the purpose of their tasks, which leads to assumptions and assumptions are bad. This hurts the organisation very badly all across, since the team is left in the dark and it creates all sorts of moral issues and never encourages the team to come forward and speak about any issues or anything else for that matter.

Closed attitude: Sometimes it is to do with the culture, the way people are brought up or the environment they grew up. Personally it might be alright, but it does not work well in the profession.

Not sure about the role of transparency in other areas, but it is quite critical in the area of team building and project management. Saying that, it is simply unfair to expect just the employees to be transparent while the organisation is not. Transparency has to be practiced all across the team, and an organisation should create an environment/platform where Transparency performs well. The organisation should practice their values in everything they do, literally in everything (Marketing, Sales, Recruitment, Training, SDLC, Events, Policies, Awards, even in maintaining a toilet), not only in the speech OR in a big banner at the office reception. Transparency is one of the core value which needs to be practiced and promoted in every organisation to see great results in all departments. If not, everyone in the organisation are expected to shoot in the dark and still hit the target, the only way this can be achieved is by being lucky. If so, it is better to be in a Casino rolling dies than being in the business.

In one of the organisations I have worked, the structure and the process was defined in such a way that it focuses only on the revenue and hardly promotes or reflects any of the values they marketed to the industry or employees. They are big, but at the same time, very innefficient. Their structure and the process promoted a closed culture and the employees are never encouraged to question or suggest. Most of the communications are hidden and not spread across the team. The employees did not have a view on where the organisation is running towards and what is their focus, similarly the organisation did not have an idea on whether the employees are aligned with their goals.

If an organisation wants to deliver quality, they have to make their vision and goals visible to the team and need to nurture the team with the right values to make them understand on what the team is doing and more importantly, why they are doing it. This will enable the team to understand the purpose of every task they do, will make them feel more involved and add more value to the delivery. This helps the organisation to run unbelievably faster towards their goals.

Ofcourse every organisation needs support from their employees to promote a transparent environment @ work. To facilitate the same, an organisation has to let the right people enter into their doors, yes, hiring the person with the right attitude and values is key. When hiring employees, organisations focus more on hard skills, but forget to put their soft skills to test. Skills can be learnt, but attitude?... hmmm, doubtful. Mostly changing the attitude is hard. Possible, but hard. Underestimating this would affect the team and the business very badly in a long run.

The minimum an organisation can do...

- Make the vision/goals/values public and nurture the team in the same.
- Practice the values, do not just speak about it.
- Values should be reflected in every policy devised.
- Hire people with the right attitude.
- Instead of just saying what has to be done, always say why it has to be done?
- Encourage questions, opinions & suggestions. Simply, provide an environment to be open.

The minimum an employee can do...

- Understand the vision/goals/values of an organisation, align yours with it.
- Focus on the quality of the delivery and delivery only, ignore the politics.
- Never underestimate any task, Resepect everything coming in your way.
- Be open, communicate the right facts to relevant people as soon as you know it, register your opinion.
- Planning is like completing half of the task, always plan.
- Mistakes happen. Admit the mistake, learn from it and share the same.

If the mind of an employee is shy and covers its thoughts in the name of the culture, then his mind is not naked enough to practice Transparency in his value system OR if an employee refuses to undress his mind for any mentoring, he does not qualify to be in an organisation. Equally, if an organisation refuses to be naked in its thoughts and not practicing or promoting Transparency as part of their culture, it is not the right place to be in for any professional.

Tuesday, November 2, 2010

I am DONE

Last month we were debating hard about Honoring the commitment in one of our Team Talk session. Since we felt that many of us struggle with the same when it comes to action. Honoring the commitment, ha? while it is easy to commit anything to anyone, it is hard to honor the same, since it requires a disciplined and determined effort to achieve it. One of the major part in honoring the commitment is, to know when we are actually DONE with our commitment. Without that we will never know if we have honored our commitment or not.

We have been suffering a lot recently with an off-shore development company to whom we have sub-contracted our Flash development work. The struggle was when they say the tasks are DONE, and reviewing their "so called DONE" tasks always surprises us with the half-done and half-tested code. We have shed our blood to mentor them on what to do. As a result, they added an extra care and effort, only to defend that the 60% completed is equal to 100% completed. Cool ha? Realistically, they did not know the meaning of DONE.



Many used to say, This issue is RESOLVED, but need to check the impacted areas; This code is 100% DONE, but it has to be tested; FINISHED the user story, but UI is pending; I have COMPLETED the task, but...; and much more to convey that they have finished the assigned task. Verifying this would only let you taste the surprise since you will witness the half-baked solutions or deliveries which are extremely useless (ie, 'done' followed by 'but' = incomplete). This has become a common habit now in the industry and dilutes the real meaning of DONE. In other words, DONE has simply lost it's identity.

It is quite interesting to know, why we do this. The reasons maybe,

Lack of experience (Thinking that the task has been completed, without knowing what is left).
Lack of planning (Skipping the checklist to finish the tasks due to the time pressure).
Showing off (To prove that they can finish faster).
Lack of confidence (Taking short cuts to keep the job).
Over confidence (as time flies, the steps are skipped in the process).
Ill attitude (No passion, doing work for a sake, does not care about what is being delivered).
or Simply they have no clue on what they are doing.

Whatever maybe the reason, as a result, we end up delivering a half-understood, half-coded, half-tested and half-documented solution which will only question the reason for our existence as a professional. Hence, before saying "I am DONE" it is important to know whether you are really eligible to say it or not. So, what DONE really means?

There were times, we used to release software to production in the middle of the week and wait to fire fight the issues over the weekend. If no issues are reported for a week, we call it as a successful release. Is this known as DONE? or feeling confident about the release even before it was released. Is this called DONE? or does it mean when...

All code has been reviewed and checked in? All ATs have been validated, bugs found and reported? The client has approved the features? The product is LIVE? All features are documented?

Actually, DONE simply means that at the end of any task it has been completed with no leftovers, no dependencies and simply the task will never come back to us or we do not have to work on that again. The task could be anything like requirement gathering, development, testing, R & D, communication, prototyping, deployment, documentation or even writing an email. There are different roles and responsibilities in an organization. DONE at every level will mean differently.

When a Developer says that a feature is DONE, he mostly means, that all the features are implemented and the feature is ready for further enhancement, refactoring and thorough testing.

When a QA tells that it is DONE, he means, that the features have been tested, bugs reported in bugtracker, tested the resolved bugs, handed over to UAT.

When a Customer/Manager hears DONE, he mostly expects that the product is ready to be released to production.

So, it is obvious that the meaning of DONE varies on a case by case basis and at a different level. Not only at a role level, also varies at an organisation level. Every professional is unique, they have different experiences and see the software development from different angles. This diversity can lead to have a half-tested, half-documented, half-optimized and eventually half-ready components for the release. Which results in a poor quality in the end product. Hence, there is a real necessary to define what DONE really means to the whole organisation with a checklist to follow. Say for example,

Developers should consider things DONE only when...
requirements are understood; analysed; suggested options to implement the best and improved usability; doubts clarified; tasks split in detail; estimated; unit tests written; coded; integrated; migration done; required languages supported; code reviewed; cross browser supported; unit tested; reviewed all the acceptance criteria for all scenarios; installation/uninstallation scripts written; checked everything into repository;

QA should consider things DONE only when...
requirements are understood; analysed; suggested options to implement the best and improved usability; doubts clarified; written acceptance criteria; smoke tested the features in QA; acceptance criteria checked; boundary values checked; impacted areas checked; usability checked; translation checked; security checked; performance checked; cross browser compatibility checked; reported bugs in bugtracker; verified the resolved issues; demo is done; handed over to UAT;

Managers should consider things DONE only when...
objectives set for sprints; priorities set; analysed; designed; coded; integrated; built; installation tested; code/data migrated; features tested; change requests logged, communicated and recorded; communicated delays; risks analysed; contingency planned; issues fixed; ensured quality and value addition; reviewed by stakeholders; accepted by the customer; harvested the sprints/project; features and future enhancements documented;

Like the above example, every professional must have a checklist to tick it off before they say it is DONE. It should be a built in quality in every professional. Even if any one of the items in that checklist is not ticked, the task is considered incomplete. You might come across few missing items in the checklist during the project execution, it is recommended to add that to the relevant checklist as you go by, so the next time it will be taken care.

Partially finished features results in hidden costs to the company with an enormous and unpredictable amount of work. This screws up the release planning efforts and prevents from honoring our commitments. Partially done work often becomes outdated before it's finished, it always gets in the way of other work.

How many times you have hacked (temporary fix) the code and never visited again to fix it for good? How much time you had spent in reviewing and cleaning up your code before submitting to the client? How many times you have worked all the night and in the weekends to complete something and still not satisfied with the delivery? How many times you felt ashamed when the client finds out an obvious issue in your delivery? How many times you had to lie and be dishonest to yourself and the client about your awful planning and delivery? These are the questions that tells us how wasteful partially done work can be.

So to qualify ourselves as a professional, we must always ensure that when we say or consider that something is DONE, mean it and ensure that the checklist defined by us or an organisation has been taken care of, nothing is left over and ensure that the completed task will never come back to us again. After all, we want to deliver quality software to add value to the customer.

Sunday, February 15, 2009

Dance like nobody's watching

Dhoni is a young and enthusiastic chap, sincere, committed & talented. He was admired by our team for his energetic attitude. He influences our team without a doubt when he is in action. However, he had a habit of updating his team lead often, very often about his work, even when it was not necessary or not asked for. Yes, on what is done, what is left, how quick he can finish the work etc. When his team lead ignored his updates, he started updating his lead's boss.

Yuvraj, who always answers "Yes, I know", "Yes, It's already done", "Yes, I've already tried this", "I just thought about it, you said it" etc. He always pretends that he knows the solution for all the problems. There were even times, where he answered "Yes, I know" to my question and went and googled for the answer later.

..and there was Zaheer, who always says "Yes, I agree" to whatever his boss or his favorite colleague says. The answer from him would be the quite opposite if the same point was mentioned by others. Zaheer also pretends that he is listening to others, but actually he will be in his own world. When he comes back asking for the same information, the team will be puzzled.

Then there was Nehra, who always toggles the window when people walk around his desk. He wastes most of the time in observing who is watching him or who is talking about him.

Do you know Dhoni, Yuvraj, Zaheer and Nehra? I can see you nodding. You're right, we can find them in us and around us very often. Deeply thinking about what is common between these behaviors, it is their motive, which pushes them to practice these habits, which makes them as slaves and diseased... at the end which spoils their career and themselves before they even realise. Yes, the motive of trying to do things to please someone or prove something to someone.

Many people believe that progressing in their career or life will happen by just pleasing someone or by always trying to prove something to someone, however by doing that they fail to realise the fact that,

they are only fulfilling others wish than their own;
they only spend time and get stressed in thinking about others than themselves;
they mostly do things only to dodge from others words or views;
they arrest the freedom, individuality and creativity;
they don't add value either to the organization nor to themselves;
they work for the boss, not for the organization;
Simply, they are slaves to the people who they are trying to please;


The above mentioned facts are not the qualities of the people who are on a mission to achieve their own vision. Visionarypeople need a clear head and cannot afford to waste even a minute in doing some unnecessary stuff, because just 24 hours a day is not enough for them. Actually, it is a lot of effort to do things to please someone, which will stress you out and blocks your progress in career and life.


While there are infinite things left to learn in this industry, one of the fact I came across is that the industry has played a considerable role in contributing to the people's attitude. One of the way the people have been brought up by the industry is by promoting the hierarchical culture which encourages the egoistic and self boasting attitude (few people are exception). Hence even the young professionals are cultivated with the same culture, which is a shame.

When you do the right thing, Your colleagues might rub their bad mouth on your back, your boss might watch you with his half visioned eye or even your friends might fire at you with a double barrel gun. All you have to do is...

Be honest and open, always stand up for the right thing;
Do not do things to please anyone or prove anything to anyone;
Be as you are, pour in your uniqueness in whatever you do;
Own the tasks as if it is yours, enjoy the ownership;
Treat everyone as the same in the team, including your boss;
Do the best you can to add value in whatever you do;



I won't say that nurturing this attitude and environment in the team helps you to achieve the following 100%, but at least to 70%...

More satisfied team members and an excellent work environment;
Improved product quality with suggestions and ideas;
Do the right thing and feel proud;
Focus only on the end-user, no one else;
Work with everyone, not for anyone;
Freedom, Individuality, Creativity promoted;


So guys, simply,

"Start the music, and get yourself moving, warm up and imagine you are hosting the party. Remember that you are not dancing to prove anything or please anyone, you are dancing because you feel so. It doesn't really matter if you are not a good dancer or if someone is watching you, all that matters is that you make an effort with the right attitude and have fun. On the dance floor, boss, sub-ordinate, peer, anyone and everyone is the same."

Monday, June 30, 2008

Version your vision

Recently I was talking to a young chap working in Saudi. He was quite interesting in many ways, one thing inspired me was his honesty, ego-less attitude and a fresh mind. Even though his English was not very good, he was speaking from his heart. While I was chatting with him, I asked about his vision, he answered "I have no vision until now".

I have seen only few (as the young chap above) who admitted that they do not have a vision. Honesty ha? Most of the time, I have seen people making out the vision instantly when asked, because they are paranoid of being judged inferior if they do not have a vision (yes, I was one among them 9 years ago ;-)).

Actually, as time went by, I realised that there is no need to be paranoid or nervous about the vision. Many will go in search for a vision only because they need to have one for the namesake. To be honest, it doesn't work in that way, vision is something which... (re-iterating again)

Pushes you constantly to achieve your goals.
Makes you personally satisfied.
Makes you happy in whatever you do.
Makes you to define your own meaning of life.
Never lets you to sit down and worry about the silly issues in life.

Having something for a sake does not resolve the purpose of a vision, or anything for that matter. One will only fail in achieving the same. Instead, it is better to be visionless.

There are few people in this world, who have a vision, but very shy to speak about it. Actually, if one cannot share their vision, they cannot share anything to the world. There is nothing to be ashamed or to feel shy about. There is no size or rate for the vision, for every individual their own vision is big and better. It cannot be or should not be compared with any other vision. Remember, if sharing stops, learning stops and evolution stops. Soon you will be a generation behind before you realise.

There are few people in this world, who will be searching for their vision, a vision which is defined once for all. In the process of finding an ultimate final vision, they end up finding none. Vision cannot be or should not be frozen. It has to evolve as you grow in your life and career and it is inevitable. It has to be reviewed, redefined or refined now and then. It is not a bad thing to redefine your vision periodically. However, at some point the frequency should be reduced.

Saying that, I have revised my vision several times whenever I review myself every year. The version 1.0 was very primitive (rudely saying 'immature'), but as the years progressed, it started to evolve and got better and better (if you think otherwise, please say). I am at version 5.4 now and still believe that there are more versions to come. However, every version of the vision is the best I could think of when defined at that period of time. Even though the versions change, the underlying foundation stood the same.

My vision (version 5.4):
"Living a happy and joyful life, with physical fitness and enough wealth to survive and support, in a like minded society which treats everyone as equal, where the real strengths are explored and encouraged, where sharing and learning is nurtured, patriotism felt, values not compromised, simply where the quality attitude is promoted".

Note: My vision is being refined every year only because of the learning from my friends, colleagues, mentors, relatives and neighbors. So, a BIG THANKS to them.