Far from reality

[tweetmeme source=”snarayan” only_single=false]

This is about programming. Well, about programming as I’ve seen it..

I’ve always believed in being motivated by the problem that I’m trying to solve. You have to relate to the problem to solve it in the best possible way. Without that, the solution is not convincing enough.

The problem as I mention is the GOAL. The final objective. The ultimate destination. Goal. What are we trying to achieve?

Sadly, in our software industry(especially outsourcing..), it seems to be lacking that.

There are so many layers in organizations and clients that the developers don’t seem to have even a sniff of the ultimate goal they are working for. They’re well trained to work on the least amount of information that is provided to them, which may or may not have any relevance to the final objective. Well, but our developer don’t know that. They’re completely ignorant of how his current work is aligned with the objectives of the project/product.

The issues that arise from this are lack of motivation, poor quality, bureaucracy, lack of innovation and continuous degradation of working culture.

In one of my previous posts, I mentioned about a developer‘s responsibilities and how he’s not doing a good job if he doesn’t know the overall business objective. Well, sadly about 90% of our industry would fall into that category. And, wait a minute before pointing your fingers at the management. Wait a minute. How many developers have shown that interest to understand and explore the business objectives?

I truly believe once you’re far from the reality, by reality I mean the real objectives of the project/product, you’re working on, you’re not providing the best solution for the situation.

Some of the ways you solve it are:

1. Enable better client-developer communication. Mandatory. (i.e.) direct access to the problem given to the solution provider.

2. Determine goal of the project and align all activities towards it. So each task would be related to the goal and would provide the necessary motivation.

3. Discuss and focus on objectives/goal whenever you face a roadblock.

Once you manage to achieve that state where every person on project relates to the ultimate goal, you’d get the desired synergy and quality required.

This is one of the reasons why Outsourcing is still considered only a cost-benefit and not actually a value-addition in true senses. Most of the projects we get are not first-class projects.

By first-class I mean, real innovative ones. New range products, High end systems, etc.

This may be ok for the outsourcing business, but it taking us nowhere close to the potential that our generation is capable of. It instills a sub-standard notion into the society and would harm us in the times to come.

What we need to do:

1. Get closer to the problems. Go to the source. Start your solutions from there.

2. Do not execute tasks that you’re not aligned with. Just don’t.

3. Once you’re closer to the problem, find your own unique ways to solve it. Thats the way we grow.

That is the approach we need to adopt and we need to adopt it sooner than later. This would be in benefit of our industry, generation and the whole nation.

Requisites of a modern Leader

[tweetmeme source=”snarayan” only_single=false]

As always, the roles and requirements of a leader keep changing with time. Let me put forth the requirements of a leader in the current decade.

These are primarily meant (but not restricted) to the software industry.

Broadly they’re classified into 3 categories.

1. Traits and Skills

2. Behavioural approaches

3. Interaction approaches

Traits and Skills

Traits-wise Adaptability, self-confidence and persistence top the list of characteristics that one would like to see in a leader.

Skill-wise Intelligence, creativity and knowledge of the group are most important.

Some of the other useful characteristics demonstrated by highly efficient leaders are mental toughness, courage, ability to manage stress, ability to rebound from adversity and ability to seek out newer approaches (than being rooted in the past).

Behavioral approaches

Being good at both Consideration and Initiating processes.

Consideration reflects the relationships between the leader and followers to involve factors such as friendship, mutual trust, warmth, building rapport and communication.

Initiating is based upon the establishment of rules & regulations and systems that are designed to move a team towards pre-established goals.

Interaction approaches

The utmost importance of flexibility.

A leader just cannot follow the same style of leadership for every team and for all times. The styles have to change and adapt to people and situations. This is an extremely important aspect of leadership.

It is important for the leader to understand the nature of the team and to base his style based on the preferences of the team. Once he exhibits that flexibility to understand and adapt to a particular team member, that member responds with an increase in performance from his side due to the sheer respect.

Having said all this, it is noted that “Defining a leader is not an easy job”.  Success of a team is determined by many other factors too.

Also there have been successful leaders who haven’t demonstrated all these traits.

But examining these theories gives you a better chance to formulate a view of an effective leader.

Football and Software teams.. How different are they?

[tweetmeme source=”snarayan” only_single=false]

Since there is so much going about football nowadays, I thought I’d also add a few things on my own..

I wrote about Teams and Leadership, last year, where I shared my fascination with the way football teams are organized and led.

Let me try to explain the organization style followed in typical Premier League Football teams:

They have a manager who’s responsible for everything that goes into the team. Success and failure, team’s culture, players, coaches, everything.

Then they have designated coaches for specific sections like team coach, goalkeeper coach, fitness coach, psychiatrist, etc. An example of this can be seen from Arsenal team’s staffing. In certain cases, I’ve also seen teams have a defence coach and an offence coach for backs and forwards..

Finally, they have a captain who is responsible for the team on the field. Along with the coach, he decides the various strategies for the team.

Football, being an interdependent team, requires this style of leadership structure where decisions are taken at different levels. Opinions of each members are important for the decision-making process.

In the right team, the three roles work in good co-ordination with each other. There are times when one of them is weakened, there other roles compensate for the lack of direction.

The nature of software teams are fairly similar to football teams. However, I’ve not witnessed this distribution anywhere in the teams that I’ve worked in.

There are reasons why this could be difficult with software teams:

1. Needs autonomy : Historically organizations have been averse to the idea of autonomy at different levels.

2. Specialization : With makeshift arrangements, its difficult to have that specialization and the right mix of the team.

However, I feel there is a special difference with respect to Indian Offshore Software development firms.

That difference is the “goal”. Most of the times, the playing team doesn’t have a view of the goal itself. This has been a major cause of concern of mine. The quality and contribution of the team is highly affected by the vision of the goal, which is missing with the offshoring business.

You probably shouldn’t vote!!!

You probably shouldn’t vote!!!

1. Voting means taking time out of your precious schedule.
2. Voting means you don’t really know if your vote will be majority.
3. Voting means going standing in line (in this heat)
4. Voting means leaving your comfort of the home.
5. Voting means you are one of the many (not special)
6. Voting doesn’t bring you any recognition.
7. Voting probably doesn’t give you any satisfaction.
8. Voting gets your finger dirty (the mark stay for few days)
9. Voting means feeling embarassed that you’re not cool.
10.Voting makes you look embarassingly mature. (Being young and mature is so not cool..)
11.Voting means you actually care about other people. (Not the roadies way.. they don’t care about anything/anyone)

Voting is for people who..

1. Believe they can make a difference to the society.
2. Respect other individuals and believe in accepting their opinion.
3. are responsible about their duties to their country.
4. are matured.
5. love their family.
6. want India to be the best country in the world.
7. want everything around them to be world class.
8. want peace and prosperity around themselves and throughout the country.
9. really believe in the country and its heritage.
10. really believe in humanity.

You.. Yes you.. shouldn’t be voting. be cool.

Just have a look at some insane people.. What are they doing? LOL Voting..