Home

Advertisement

Customize

Previous 20

Jan. 2nd, 2009

Think Big. Or, Go Home

Season's Greetings.

A large number of us would be making resolutions for 2009. A significant number of those resolutions will not last beyond January. A smaller number would get revisited and with faint hope of achieving them, will get pared down. A much smaller number would actually get done. These are the ones that would make us happy. And, look forward to 2010 for another round of the same.

This year why not do something different ? Have a single motto - "Think Big. Or, Go Home".

Catchy isn't it ? Or, is it more along the lines of inducing fear ? Or, even worse, feels naive ?

Either way, you cannot ignore it. All rational beings will tell you to think small, chunk your goals into minute and manage-able pieces. And, here we are talking about "Big Hairy Audacious Goals".

Adrenaline. That's what we are talking about. That is the stuff that makes you want to leap out of your staid existence and put blood and sweat on the mat. Face it, this is a single life-time for you. Do you want to be a run-of-the-mill person ? Or, do you want to be a hero to the person you see in the mirror ?

Forget your friends, your wife, your family and your peers for a moment. Think "me". Don't you want to be different for yourself ? For your own sake ?

Thinking Big helps you gets juices flowing. Makes you want to measure everything you do, every step you take against that life-churning goal that you have. You can't save the planet in one life-time. But, no one said that you can't try to make a difference trying to save it.

This isn't about the world. This is about YOU, Go on and make it happen.

Oct. 8th, 2008

Paying attention

A large part of our day is spent in being awake. And yet, we don't pay attention.

We read. We listen. We drive. We work.

We love. But we don't pay attention.

Paying attention is as important as being on time is. And the very next thing would be learning how to say sorry. More on that some other day. Today, we talk about attention.

A reason that we don't pay attention is because we are self focused. There is nothing wrong being self focused. The bad part comes in with being self obsessed. Too much introspection makes us blind. And, we forget that we have the requirement to look outside of ourselves and listen to voices besides our own.

Paying attention is not a natural habit. The untrained mind tends to wander over various objects in the field of vision and flit from here to there. It is required to train the mind to focus on a particular issue and learn to grasp the finer details of it. Appreciation, appraisal and solution for the issue comes much later. The first step is to focus on comprehending the aspects of the issue.

There are many tips and tricks that teach people how to pay attention. The best trick however, is to learn how to listen. If you can listen well, you can comprehend better. And, if you begin to comprehend, you will notice that you are paying attention far better than average people.

As in software development, so in life, issues and communications are not out-of-context. They are intertwined, contextual and deeply overloaded with meaning. It is very important to acquire the skill to attentively listen to the issues at hand and then on figure out the way forward.

So, go ahead. Start Listening and Stop Talking.

Sep. 1st, 2008

Learning how to boil an egg

What does learning how to boil an egg matter ? Especially with software development.

If looked at the task in the proper perspective it does matter a lot.

Boiling an egg is a small set of well organized tasks which need to be undertaken with discipline if the exact quality is to be obtained. And, it is a task perceived to be of inconsequential proportions and hence most likely to be done in a rush.

Does it resonate with the way you do work ? You bet it does.

The point is no task is too small to merit less attention. We don't go through life that way and so there is no reason to do that in development. Developing software is an intensely personal activity and yet at the same time there is a strong element of team play. Balancing the two themes require presence of mind and an ability to learn quickly along side applying the learning.

So, we come back to the same theme - 'learning'. Learning is an important part of a software lifecycle and the learning never does stop. There are innumerable places to begin learning and one just needs to have an uncluttered mind.

It is easy to overlook the learning in boiling an egg. But that is the catch.

Aug. 25th, 2008

People, Process and Productivity

Sometimes people tend to be productive 'in spite of' rather than 'as a result of' processes.

In fact, we can replace sometimes by most of the times.

If an organization has processes that tend to overrun people, the obvious result is a workforce that does not think. It is a manager's role to catch on to such a change on the floor and work towards a solution.

A manager is not supposed to be a super-human software developer or a genius. A manager is ideally someone who knows how to tweak the processes and the workflows so that his associates gets the best of what is on offer and can get to work much more better.

Productivity is never about 'velocity' or about 'lines of code'. Textbooks would advise that, but in real life productivity is a function of creativity. The more creative a team is, the greater is the entropy in thought processes. Newer ideas emerge only when ideas are tossed around.

Higher productivity has a direct relation with stream-lined and transparent processes rather than jumping through hoops of multiple tools and infrastructure.

Aug. 17th, 2008

Know your job

There is a more than fair chance that when asked about your job you would end up either talking about the 'tasks' that you undertake or, provide a summary of the job description.

That's not what your job is. In fact that isn't your job at all.

Surprising isn't it ? Yet, it is very common to fall into that trap.

'Knowing' your job means not stopping at a task list. It means going beyond the dry prose of a job description and into comprehending how you fit into a team. What is that you bring that is valuable for the team ? How do you incubate innovation ? When do you encourage talent ?

That isn't a 'manager's job'. That is a responsibility shared by every team member. Until the time an individual contributor can have a solid grasp of how the pieces of the puzzle fit together - the person doesn't know his or her job. Such understanding also includes the energy and the enthusiasm to undertake a bit more than what may be a 'fair' share of the load.

To 'know' the job means to study the business of the company, to analyze the activities of the competitors and to research on technologies that are yet to hit the daily life. An individual contributor is impacted by how the company sees and absorbs things around it. And hence, it is important to be an aware individual contributor.

It isn't hard to do if you are part of a team that does this. Spend at the least 2 hours a week discussing about the 'job'. Don't indulge in gossip-fest. Discuss the job and sooner you'll be a much more responsible employee. All this without waiting for your manager or your HR to point you.

The bottom-line is that you'd have ended up with disciplined habits of research and analysis that any company would be glad to have. You'll have made yourself a much more valuable employee and a better team player.

May. 25th, 2008

What do you want to learn today ?

A lot of companies put emphasis on continuous learning and development programs for their employees.

These are good companies who want to make good things happen on their workfloor. Their actions are well meant. However, they forget to take a look around to see if the environment is friendly for learners.

A large percentage of why babies have the willingness to read, learn comes from parents. Children see their parents reading and copy their actions which sooner or later, if cultivated would become a learning habit.

Before dropping good money on "learning initiatives", a company should introspect from the individual employee upwards to executive management if a culture that rewards learning and more importantly allows the learning to be shared is in place.

Such a culture begins with ensuring that a diverse range of reading material is at hand for the employees. And, there is a quiet nook somewhere which can be used by them to read up books, journals.

Once these small things are in place, the next step is to ensure that there is sharing of the learning. Informal gatherings where quick discussions are held about issues that are of interest is a surest way to generate a culture of discussion and debate.

It is also a good way to spot talent.

So, if your company says that it wants to put in place a culture of learning, ask about simple amenities before you ask for infrastructure of coupons to bookstores.

And then only can you figure out what you would want to learn today.

Apr. 19th, 2008

Helping to hire right

An important aspect of a software engineer's role is to help in hiring.

Help can mean facilitate, influence, refer or, interview and qualify.

Whatever form help takes, the decision has to be taken carefully. It is always more expensive to go back and correct things than to attempt to get it right the first time.

The easiest thing to judge, qualify and quantify when hiring is the technical challenges for the role. The job description does specifically mention the skills and proficiency and simple tests to measure them suffice. What are incrementally difficult to test and measure are programming habits and programming sub-culture.

Does the individual do code check-ins on regular basis ? Is the potential candidate enthusiastic about code reviews ? Did the previous employment include regular technical sessions with teams local and virtual ?

The factors that do become more important are - thinking ability. Can the engineer think and rationalize the choices between various similar technologies ? Can he / she use the existing skills to solve problems and at the same time learn new skills, cultural nuances and team skills ?

Finally, look for the candidate that asks a lot of questions about the inexact open ended questions that are put across. That candidate has a better chance of adding value than one who does not ask questions.

Learn the skills to help hire correctly. Since each member would be adding value to the organization.

Apr. 4th, 2008

Habit 3: Be informed

Be informed.

Stay up to date with the technologies and process that concern your work.

Be informed.

With whatever is going on internal to the company that can impact your work.

It is a well known cliche that "Information is wealth". If it is wealth, then you should not squander it meaninglessly. And you should go out of your way to accrue more of it.

A team member who is informed is a tremendous asset to the management. He / she can be relied upon to provide insights or analysis on issues across a wider range of technical and non technical areas.

Such a team member is also aware of fast moving trends in the company and external to the company which allow any team to grow. The growth of a team is not the duty of a single team leader. The growth is a collective effort from informed team members who take time out to understand and propose what is good for the team and the company.

Being informed is of paramount importance. Practise the art of information gathering.

Mar. 14th, 2008

Manage and Lead

Management is often seen as a skill for optimization.

Leadership is often perceived as the ability to look beyond the now.

Both are true. And, both can combine to form a complete person.

Every software developer, team member in a software engineering division can become a leader and a manager. There's no secret recipe that makes this an OR relationship and not an AND.

The true currency of leadership is empathy. When a person can have the skills and the insight to see how each member of the team reacts to changes, develops towards becoming a better individual, then a person is a good leader.

Leaders are extroverts. There have been leaders who are introverts, but the best ones reach out and communicate. To be able speak precisely, honestly and transparently is another aspect of a leadership role.

The true value of a manager is ensuring that positive chaos that encourages development and growth is present. A good manager can anticipate problems and act towards solving them before they raise their heads. A good manager is a listener.

The act of listening is not merely nodding the head when someone else is talking. It is about asking questions that probe deeper into the cause of unhappiness. Working within the organization framework to address such causes of unhappiness is what a manager is expected to achieve.

Be it a leader or a manager - both are expected to understand where the company is going, where it wants to be and how their teams can be part of such goals. Both of them should take steps to remove lack of clarity in terms of goals, roles and responsibilities for every single individual team member. So, both the roles require an intricate comprehension of the working of the company across the organizational units.

While the engineers and developers work towards making the software possible, leaders / managers work towards making the human-ware happy. And in that effort, nothing but the best would be enough.

Feb. 17th, 2008

Habit 2: Be honest

Be honest.

In every action that you do on the work floor.

Be honest.

To your upbringing. To your ethics. To yourself. And to your work.

Your parents always taught you to have a rigid moral compass. They knew what was best for you. And they were right. There is no room for dishonesty if one wishes to work in a team.

An honest team member not only is an asset for every team manager - he/she is the most valuable contribution that team can make for the company. A team is made out of individuals who work together in tandem.

In any orchestra the one instrument that is out of synchronisation is easily found out. Pretenders have no place on any team. A best case scenario is that they keep quiet and steal credit. At worst, they are a disruptive influence.

Being honest also allows one to not get distracted with the constant nagging notion of being found out. Of being caught. Of being not up to the mark. Being honest means one can perform to one's fullest capacity and competence and produce work of surprisingly high quality.

It is a sad fact that not many companies actually put honest team work as one of the important aspect of their "mission statement". And a natural consequence of such an act is that sometimes those who just glide by seem to get all the goodies. That's a bad thing to happen for a team.

Honesty is the only policy. In work, in speech, in quality of work and of course as a way of life.

Habit 1: Be curious

It is fairly easy to become an important member of the team. Just two words - be curious.

Not that one should feel important, but the team should become more aware of the contributions.

Being curious is a good quality to have. A curious team member is one asset every team requires. This particular quality enables one to seek out and retrieve information that would come of use sometime.

There are two ways to information search - seek it when it is required or, start on an individual journey through understanding the trends on the projects the team is working on. Being curious also means that one embarks on a journey of self paced learning. This would also come of help if the another important question can be answered - what do you want to be ?

Realizing the goal for self is an important part towards becoming a valuable team member. Any team lead / manager values a team member who is curious enough to find more about existing knowledge base or processes and suggest improvements. In the current days of various practices like CMM, ISO, Agile, Scrum - the best thing that can happen is a team member who suggests small tweaks to existing system that can make it perform more cohesively and optimally.

Be curious. Cultivate the habit of reading voraciously but more importantly, learn to "learn" from your readings and then propose applications of that knowledge into your existing team activities.

Feb. 11th, 2008

See yourself as a responsible member of a community

Learn to own. To possess. To cherish.

Learn to be responsible.

As much as it is the duty of the team leader / project manager to ensure that conditions are such that the collective effort of the team produces stellar results, it is also the honor bound obligation of each of the individual members to be possessive about their work.

Taking the work seriously and oneself less so requires some bit of skill and detachment. This generally gets created from taking pride in one's work. One will always provide a better quality of work if one learns to possess. Possession is linked with sharing and collaboration. Once the joy of possessing is over, each one of us is hard wired to ensure that others to feel that joy and happiness.

This generally follows when the individual members become more responsive towards contribution and collaboration. They begin to take up responsibilities of nurturing their own worlds of goodness and reach out to those who need help. And slowly there is a flourishing community of give-n-take. Silent to begin with but building up enough momentum to ensure that a healthy and innovative work environment is in place.

If you are an individual team member - learn to own and be responsible. Happiness is sure to follow.

Feb. 6th, 2008

Don't let it get you down ?

Every job gets boring once in a while. That is very normal.

The trick is to not let that happen. And as much as that is the focus of the manager, it is the duty of every single team member to work towards thinking deeply about their projects.

To be able to begin thinking about the project and various pieces around it one needs to fall in love with it. Falling in love is related to being dedicated and disciplined.

Each team member has the duty towards figuring out the weasels among the team and weeding them out.

A good garden is characterised by flowers as well as the absence of weeds.

Feb. 4th, 2008

Unit, Core, God, Country

It takes time to learn to work together.

That is true in life and in software development. Team members must learn to give each other space and at the same time understand the way to work together.

A significant bit of human communication happens non verbally. Thus, the first thing a team needs to get used to is the cues provided by members. This begins through mutual respect. In a team respect is earned through merit. A team knows about who is going to be the last person standing and who is going to fall. This collective wisdom of the team makes it strong. And paradoxically, it is also the greatest weakness.

Most teams end up placing a larger than required emphasis on titles and designations. These are just tokens. The tokens are vested with authority, but if the person with the token is not accepted by the team, and does not earn its respect then nothing does come out of it.

A good team hunts in pack. The strengths and weaknesses are evenly balanced and the team is a fine tuned weapon that can tackle any problem within the limits of its skills.

A bad team is a stampede and a bubbling volcano of resentment.

It is a duty of each team member to ensure that they work well together. They need to ensure that they deserve the respect they expect from their peers. They need to take care that they are honest and think about the team.

Unit, Core, God, Country - that's what a winning team says.

Jan. 31st, 2008

Do you have green fingers ?

Don't let the pot of milk boil over.

Milk when spilled causes a lot of problems. You end up cleaning the stove, the cooking area and of course you need to ensure that the vessel has been well cleaned.

Managers should take great care to ensure that they don't let the good folks on their team get agitated. Resentment, if allowed to simmer causes rift. Rift leads to discontent. And more often than not discontent leads to employees leaving the company.

Letting the slackers go unpunished is one of the worst signals that can be provided to the team members. Given that teams work in close contact, it is easy for members to spot the slackers and the weasels. Allowing them to flourish is like letting weeds to overrun a garden.

Keeping a watchful eye over weeds that spoil the zen of a garden is what a manager is supposed to do.

Go ahead - learn gardening.

Jan. 30th, 2008

I have an apple, you have an apple

A lot of bad things happen if things go stale.

Similar is the case with information.

In any software development company meetings happen all the time. Sometimes it is a meeting with all the members, at other times it might be a meeting of the team leads and managers amongst themselves. It is important to ensure that gossip does not get created around meetings whose minutes do not get circulated.

Information which is not shared is information which is let go stale. Stale information creates a sense of mistrust and conspiracy. And a culture of conspiracy generally does more bad things than good.

It is not important or desirable to share all the details of the meetings. In fact it is well understood that details of meetings where not everybody was present is not supposed to be shared. It is the hallmark of a good lead / manager who manages to convey the essence of the meetings-in-secret without letting in on the finer details.

If there was one single reason why such information which is traditionally deemed CLASSIFIED requires to be shared is that the collective wisdom of the team might as well provide inputs. Additionally, involving the team at the outset provides a sense of inclusiveness - a feeling within the team that they are in charge of their destiny.

We do not like to be controlled or be treated as puppets bearing the designation FTE. We love to be asked our opinions and insights. Most of all we love to see some action being taken on the insights. So, it is of real importance to demonstrate that insights are appreciated and in some way put into action.

Taking "inclusion" from mere lip-service to a much more visible, tangible daily routine is a matter of discipline and personal involvement. It needs to be personal.

Jan. 29th, 2008

Tall tales and sweet stories

Do you like to tell stories ?

Not tales. Not anecdotes. Real stories that talk about feelings people have, how passionately they care for things.

All of us love to listen to stories. For us stories allow our imagination to fly. Stories also weave together the themes of magical heroism and beauty. And we love heroes.

Heroes are not folks who do things beyond the realm of human possibilities. Heroes are people who have empathy and just work their hardest to make things happen. Getting things done is what heroes do best.

And like the proverbial characters from DC Comics all of us at one point in time use the nearest telephone booth, stairwell or the anonymity of internet presence to become heroes. It doesn't take much to be a hero and become part of someone's stories.

It takes words. Simple, honest words. Words which you mean when you say and words which say what you mean. It means being able to choose to exert the best possible capacity to perform and turn in work that will make you happy. It means being satisfied with nothing short of the best.

A team that has too much words floating around is a team that is unhappy. And even though each unhappy team is uniquely unhappy as are unhappy families - there are certain characteristics that define them. Unhappy teams are unscrupulous and lack discipline.

It is a sure sign of spreading contagion when team members start taking liberties with existing processes and try to cover their excesses with words. Much like too much sauce over bad fish, it should be a warning lamp for any team leader/manager.

Happy teams have a buzz around them. Unhappy teams have the crumbling remains of integrity and the bitterness of good work gone unappreciated.

At the end of it all it is a happy team that makes a company or a unit worth working for. A manager has to ensure that there are more happy teams on the floor.

Love, Truth and Life

Software Development is a lot like life.

There are happy days and there are "down in the dumps" days.

What remains constant is that both are a search for truth driven by love.

It is very important to know two things - being passionate is required to work efficiently and no one knows the whole truth.

Any software development process spends enormous amounts of nurturing communications because the act of talking leads to a collaborative search for truth. Truth is not the answer to the question of everything in life. Truth, is the concept that is linked with beauty. In our deepest thoughts we worship aesthetic pleasures and so we try to attain that by finding our own way to the truth.

Passion helps keep the flame alive and motivates us to work. Passion is required to keep the love going.

It is very easy to fall into the trap of using artifacts to communicate - there are lots of tools which claim to archive information and enable collaboration. They don't work. If there is a team which does not talk with each other, sit at the same table and discuss things in an ego-less fashion, all the tools in the world would come of no use.

Ego is a negative influence on love and hence passion and thus the exploration of truth. Ego comes in the way of logical reasoning. A person with an ego does not feel the need to see perspectives other than his or her own. This means that channels of communication stop. No communication is generally a root cause of stale thought.

Thoughts which are not fresh would start to have a tell-tale smell. No team requires a smell in their midst. If not taken care of quickly, the rot would spread and thus sooner or later the team leader/manager has a handful of people who recycle ideas without applying their brain.

Software development is like life. One cannot be happy in life if the thoughts are full of self content grand concepts. Good software cannot be produced if the team is made up of people who do not listen to stories.

Jan. 28th, 2008

Do you know about pollination ?

So how did you treat your team members today ?

As enabled knowledge workers or statistical blips ?

Most software development processes tend to look at team members as resources. That's because it helps them do calculations which result in pretty looking but meaningless charts.

Project Managers dig charts. They help obfuscating information and hide errors. It does not require a mathematical genius to take a collective unit of work and divide by the yardstick of performance to arrive at what might be the "individual velocity". Other than being only a collection of numbers which can be put on to graphs (of progress) these numbers mean nothing.

Enabled knowledge workers are self managed. They believe in what they are doing and why it is important. They trust their managers to come up with rational lists of features and priorities. And they communicate with each other to come up with a firmly bound unit delivery stellar quality work.

Self management is a scary aspect. Managers end up distrusting team members and put in place checks, balances and controls to keep a metrics based eye on who is doing what. Too many controls don't help creativity. Innovation is driven through trust and a discussion about what is important.

It is a myth that developers don't get the full picture. A developer is a human being and hence a developer is well aware that a shoddily developed product is not going to drive sales numbers. A developer does desire to produce a product of sufficient high quality that would help keep the company afloat and at the same time allow space for innovation.

Having enabled knowledge workers helps because they act in a fashion similar to birds for pollination. Diverse ideas mesh together to create a beautiful pattern on the fabric of the team. Any team would love to have such cross pollinators.

Jan. 26th, 2008

Why not the best ?

The anecdote is famous - the lessons aren't.

Giving the best each time one is asked to step up to the plate requires personal courage and conviction. It requires belief in oneself and trust in the team.

Managers need to step up to the plate and deliver each working day. They need a team around them which can deliver and whom they can trust.

The team needs a manager who speaks their voice, understands their nuances and appreciates the diversity that the team brings. Diversity is one way of approaching innovation. Trust and communication are the two other means of ensuring that creativity flourishes.

Employees are morally responsible for delivering their best. In fact, appraisals and reviews should asking the searing question: "Why not the best ?" If, for our personal happiness and life we settle for nothing but the best, why should we accept and reward mediocrity ?

There is not much art to management as much there is science. The idea is to ensure that one selects and enlists a diverse bunch of superior talent and then let them come up with ideas which, when pooled together would be better than their individual ideas. The good manager is one who gets ideas going. The great manager is someone who can visualize the sum to be far greater than the parts and bring about a cohesion.

Encouraging talent that is not up to the mark seeds indiscipline. It is the genesis of a sense of being lax and "everything goes". From then on it is but a short step down to losing the spark of creativity.

Managers are not super humans - they are individuals. They have their good and bad days, their own prejudices and likes. What they need to learn is creating their own playbooks whereby the team can perform in any fluid situation.

Software development is becoming a harder game with each passing day. There are far too many demands on "walking the line", on process and on delivery quantity. It would be the duty of the manager and his team to sit down and talk about how to ensure that quality does not slip.

It would require each team member to ask - "Why Not The Best ?"

Previous 20

Advertisement

Customize