05 February 2009

Supporting Ego :-( Vs Respecting Opinions :-)

Being an egoistic and sensitive person (and the fact that I am trying to change myself), for the past few months, I have been learning on "Leadership". Much of the credits should obviously go to my team. In my case, I somehow have a feeling that my team is making me a good leader. I also have feeling and doubting my teammates whether they are leadership coach (Tip: Leadership coach is a very costly affair. They charge around 200-3000 dollars. And the news is that it is for one hour). I feel that my teammates are adding "so much" value to me than the value I add to them. I have been waiting so long time to register by understanding on leadership. After leading a team for almost a year, I want to write something based on my experience to share my views and at the same time get it validated. This is the first one. Here it goes.

Each human being will have opinions that are biased based on their moods, emotions, experience and knowledge. It is quite reasonable to say, there are at least "N" opinions for a problem. Sometimes problems overwhelm us and sometimes solutions overwhelms us. Whether it is good or not-so-good solution, the team needs to respect the opinions of the others. It is easier said than done. If you find a team where the people are mutually respecting each other, please remember that the team has worked really hard. A leader has a great deal to play in building the environment which foster mutual respect. Based on the personal traits, if a leader tends to support the ego, it backfires sometimes immediately and sometimes after two months with great intensity.

In many instances, when something was discussed in our meeting, the team was open to share their opinions. The team never supported or objected other's ego. When an idea or solution was put on the table, based on their expertise, the team would share the opinions. The person, whose ideas/solutions get reviewed, gets a feeling that he is in fact getting honest opinions. If the idea involves a team work, he is also confident that he will get team's support. The team not only gives respect in words but also on emotional level.

If you do not give deserved treatment (of course with respect) and simply support the views to support the ego, over a period of time, the team will certainly know that you are playing and the results will be devastating. The team will no longer have high regards for your praise neither for your reprimand. Irrespective of the experience, when you respect the team, it percolates to each team member and on one fine day, you will see a team who has a lot of fun, who takes the challenges positively and there will be perfect synergy.

So, supporting ego may yield some results in short term and often works in suck-up environment (Suck-up environment is an environment when sub-ordinates suck-up so nicely and the supervisor supports the ego. Generally, they do not see the merits of the opinions). But in longer term mutual respect wins. It makes sense to create an environment for mutual respect not because it works well in longer term but because each human being deserve equal respect in this society. Mutual respect and professionalism is such a wonderful thing. Once you do that, the rest will be history.

Catch you in later

02 February 2009

Open Source Solution Series

When I was a schoolboy, we used to buy fruits from a lady almost for 10 years. Over a period of time, she won the confidence of many families and become loyal to each and every family. She used to sell fruits, some times vegetables, chillies, groundnuts and many other things. Most of the families in the campus bought things from her not only because she was loyal but also because of open business models. Whenever, she brought things to sell, she would give the specimen and only then would disclose the price. She had a simple and successful business model of making things open. She did not give something as free to sell her goods, she also thought that it was buyer's right to buy right and good things. There is no question on why this business model as successful. You can find similar business people in your life too.

This makes me to think and correlate with Open Source and the success of Open Source business models. When you are selling a software, how can you ensure that the software is good. And secondly, how will you convince your customer that you are infact giving them something good not crap. At a very surface level, you can do this by exposing your bug backlog, the bug trend, the reports from your dev/test team. However, this does not give enough information to your customers. This question is not about the confidence you have on your product. It is about the confidence of the customer you win. When make we the software open, we can see it in at least two perspectives - any can view/modify the source code and secondly we are open for comments.

By being open for receiving feedbacks gives us opportunity to correct something which is not good. The customers will be getting better things. The success of open source is not "free of cost" but "open for improvement". This should give confidence to the users that there is a community of developers who are working on making things better.

In this blog, I am planning to share my experience on Open Source Software, particularly quality enterprise class software which are much better than any proprietary software. I am also hopeful that in down the line, we will be discussing solutions from Open Source solving particular problem rather than software. This will give you a good picture about Open Source and its quality and innovation. This journey will also give me a learning by trying some open source solution which I never tried.

Hoping for the best

29 January 2009

Technological Innovation - How simple is it?

This is the time, when so many companies are sharply cutting back, the creative thinkers and innovation managers talk about continuous investment in innovation. They argue that the companies should look for opportunity to cut back on operations but not on innovation. Their concern seems to be valid. While many companies are giving a bleak outlook, there are very few companies growing even in the tough times. Are those companies well managed or do they happen to delight the investors just by mere coincidence? Whatever it is. The innovation is going to be a key differentiating factor. Many companies say that they are "most innovative company". But the real fact is that they aren't. No one other than the company says that they are innovative. They speak "Greek and Latin". Without understand what is innovation and simple way to move forward, most of the companies are going to be in no man's land. Is there are simple way to identify where the market is going? It is simple to say "Stay Abreast".

Innovation is doing things in a way that no one has done before. Innovation has clear business results both for the producer and consumer. For example, consider the case of Edison. He had so many inventions and he marketed all the inventions.  He produced so many products and sold them (obviously for a profit) and the inventions changed the quality of life of the consumers. Business results are key to innovation. All innovations must have Win-Win proposition.

Innovation can be classified into two types - blue ocean and red ocean. In the case of red ocean, you primarily focus on improving or redefining existing things and few of your competitors are doing the same. Blue Ocean is all about creating new markets. In the current climate, it is difficult to create new markets in realistic terms. However, you can be the first to swim in a red ocean.  

Innovation is catching up with the trend and moving along with trend. The nature spawns so many species but only very few species survive. The same is the case for innovation. When there are so many technologies, the fittest one survives. However, for someone who is innovating, the probability of identifying the right one is very low and hence there has to be a portfolio in innovation. One should try so many things and only then he/she can innovate few things (Darwinian law). But one can increase the probability of innovation just by observing the developments consistently. Who believed that "Web 2.0" would be a big success. But the companies who had Web 2.0 in their portfolio where successful.

How to spot on the developments? Simple. Just subscribe to lot of newsletter services and do a data mining at a simple level every month. At the end of few months, you can see where the world is going. Once you see the trend in a specific direction, maximize your energy and focus on high traction area. When you do this, the probability of uncovering something new and solid (with tangible business results) is more. Innovation needs a lot of hard work and never comes that easy.

Are you asking me, did you try it? My honest answer is "No". However, I wanted to try this approach towards innovation and get my idea reviewed by you :).

28 January 2009

Copyleft and Disclaimer for Tutorials

This is an attempt to document my experiences on technology, programming languages and operating system (on software in a much sensible/broader term). I offer this tutorial to those who are seeking the knowledge. I strongly believe in "Freedom" in the spirit of Open Source. While, I have taken efforts to verify the steps, methods and code, I cannot be held responsible for losses of any form. Please be aware that these tutorials come to you without any warranties. Until, I find a suitable Open Source license (more open for being open and less open for keeping it closed), the readers are advised not to modify. If you modify, you have host the modified and full version of the tutorial for free to all your readers. Bare minimum, maintain a copy of the modified tutorial via a website which is accessible publicly. Spread the goodness to the world like Open Source. We deserve Freedom and so is the entire world.

I would like to dedicate this work (and the series of works) to those teachers who constantly spread the knowledge to fellow beings generations to generations.

What is Creational Pattern?

As name suggests, the creational patterns are used in object creation. Any object oriented programming language will give you an infrastructure to create objects and perform whole lot of operations. One of the important and primary operations in any application is creating object. For example, in Java, you can create objects of any concrete types using "new" operator. However, the Java compiler or JVM do not know, are you creating objects in right way.  The way we choose to create objects decides many aspects such as reusability, maintainability and flexibility. Though we create objects in an application, we will creating objects for so many reasons. For instance, in the case of Singleton it enforces creating only one object for a class (type). As the purpose and scope of the objects vary, the way in which they are created should also vary to reap full benefits of Object Oriented Programming. There cannot be single solution for whole a lot of problems.

Let us consider a real world example. Assume that a car manufacture is planning to manufacture new brand (assume Swift by Maruti). While designing the car, the designers will focus on individual aspects of the car. There will also be a mechcanism to customize any model or to add features to the car. The extra fittings or specific model (Vxi, Zxi) will have its own assembling mechanisms. The dealers or the customers do not need to worry about how the car is made. They just give which model they want and the car is delivered to them. Internally, Maruti will have its own processes and standards to manufacture car hiding all the manufacturing details. It may choose to manufacture the parts or procure it from a different vendor. It is all internal Maruthi and the user does not need to know too much of details. It is all about exposing needed level of abstraction to the clients - not more and not less.

Also, as a developer, it does not make sense to fill your code with lot of "new" operator. By using "new" operator in lot of places makes the code to break maintainability and flexibility. When few more classes are added to the package or namespace, the developer will face a nightmare maintaining the code and quality of the code is also degrades.

So, the creational patterns helps to create objects in a better way rather than using "new" operator. When you use creational patterns (or any design pattern), you will be programming to an interface and not to the implementation. When you program to interface, your code becomes flexible and maintainable. In the next series of posts, we will be discussing creational patterns one-by-one.

26 January 2009

Design Pattern Tutorial


Design Patterns (Work in Progress)
Creational Pattern


19 January 2009

Core Values - Why is it needed?

What I was
"I am an ordinary software engineer and whatever I am going to speak is not going to have a bigger impact on my company and mankind. Also, I don't think the outcome of the events will vary greatly if I am not going to have certain core values. I feel that the outcomes, irrespective of whether I have core values or not, is not going to vary. However, I feel that I am undergoing a lot of churn in strictly following core values when compared a person who is loosely following certain values and certain people who just do the lip service. Given this scenario, is it possible to convince the person of this nature and make him a better and soulful human being." I was this kind of person, trying to have core values half-heartedly, trying to live and yet at the same time slowly dying. I also understand that if I do not have core values or if I live as I wish, I am doing a sin not to the world or nature but to my soul. Though, I may enjoy the deviation from core values in short term, my conscience is going to keep coming at me. Either should I settle for short term or long term happiness? The answer for this question will help me to decide whether to stick with core values or deviate from my core values. As a human being, one's brain always prefers long term benefits. So it is right to have core values thinking about long term benefits. Is this reasoning right?

What I am
I feel that you are going to keep up core values because of some benefits, there is a some business between you and core values. But, the core values, are something to do with souland not with the physical and emotional body. When you have core values, it is similar to that of realizing your soul and talking to your soul and ultimately talking to God. There will be a resonance between you and your soul. You and your soul become synonymous. This is the reason why you are getting long term benefits when you have core values. The resonance creates so much energy in oneself. Also, the energy is coherent and intense like a LASER beam. Only the other kind of people who have this energy is "a Child". The child always talks to his/her soul but he/she never understands verbally/emotionally that it is soul.

The Creator (or the nature) is quite aware of this and that is why HE has hidden soul from physical body. If you have found the existence of your soul, you will end up having core values and will be placed high on par with Rama, Krishna, Jesus, Allah. Like me, if you have identified that there is some connect between core values and other thing (which you cannot explain), I believe, you are right on track. Explore further and enjoy the bliss.

To sum up, some time back, I decided to explore the interconnectedness between soul and core values. What about you?

18 January 2009

Touch and Transform Lives - Build India

Anyone who uses Internet will understand its benefits and I agree with me if I say that Internet has wealth of Information. Not only we use Internet to connect with our closed ones, many educational institutions are started to change their learning methodologies. Internet has become a platform to deliver online classes and training. The advancements of video over Internet and video over mobile is going to take us much closer to our dream of classroom on the move. Your location is going to be immaterial, the classes will be delivered to you with Internet and mobile. This is looking from technological perspective and what is feasible with technology. Most of the things will apply to developed countries where these technologies are affordable or more rightly, the people have buying potential as their per capita income is high. The technological advancements will bring the next revolution in developed countries.

However, in countries like India where the majority of people do not have buying capacity, these technologies will take time to penetrate into Indian markets. Again these technological advancement, if not properly employed, is going to divide Indian society - the people who have access to these technologies and the people who do not have access. The main advantage of India is having people in working age compared to Europe, China and so many other countries where people are in retiring age. But, according to researchers, this is not going to be easier job for India as the policies are focussed on quantity but not quality. Certain reports question the quality of the graduates and claim that most of them are not immediately employable. Their claim is proven valid as we see a trend of increasing colleges and increasing rate in unemployment. Many corporates started to feel that heat and we will see a lot of churn post global economic downturn (In India, after economic recovery, I feel the training industry is going to boom. We will see many training companies that focus on imparting experiential knowledge). The corporates are breathing easy as demand matches with supply. However, after recovery, the demand will be more and the supply will be less. 

There is a heavy irony. Many of IT services company work on these technologies and take part in the Information revolution. But yet, we have so many Indians who have deprived of not these advanced technologies but even basic Information to get a job.

Many corporates fail to notice that they need to get people from the pool of available graduates. They have a blurred vision on elevating the average knowledge of college graduates/students. While corporates are focusing on profit margin, innovation and market positioning, they fail to see the important issue - "basic supply - human resources". Why the companies in India does not ask their employees to go back to some colleges and impart some useful training to students. Won't it help the students and corporates in a long run? Don't these companies have money to deliver classes to villages with the help of technological advancements.

One can look at this as CSR (Corporate Social Responsibility). At the same time, this is not purely a charity work, it is pure business. It is bread and butter for them as they heavily depend on the local workforce and its quality. If they fail to act now, they should be prepared to hire people and train them during the job which is very risky. So, either you have CSR or not, act right now.

Your CSR rating is not in the number of MoU you sign the colleges. It is directly proportional to the number of lives you touch and transform.

We strongly believe and want to bank on bright Indian brains. We have rolled out an initiative OpenGyan targeting colleges. We welcome you to join on the board. If you can't, at least spread a word to your friends and closed ones.

Linux Programming Tutortial Series

Having worked in Linux in my leisure time for the past four years, I would like write series of articles on programming in Linux. Though, there is no difference between Linux and any compliant systems as Linux is also POSIX compliant, it is worthwhile effort to learn Linux programming. POSIX is specification and by using POSIX interfaces one can write portable applications that work in any POSIX compliant systems. POSIX does not specify how a particular API (Application Programming Interface) has to be implemented. It is freedom given to operating systems. In this series of articles, we will be discussing, slowly but steadily, various POSIX standards, library functions, systems calls, sample programs and discuss how POSIX can be used. At the end of this long journey, we will understand most of the POSIX APIs and if we have will power, we will also learn the internal implementation.

As a usual disclaimer, I am not a subject matter expert but I do have four years of experience in writing Linux applications using POSIX. At the end of this journey, I strongly believe that my knowledge and understanding about Linux will be improved. I am planning to cover the following topics in coming months.

1. Process
2. Memory Management
3. Threads
4. Interprocess Communication
5. File I/O

Since this initiative is at a earlier stage, I am not sure about how often I will write but I am sure that I can write one post per week. I have also created a widget "Tutorials" and added "Linux Programming" make it easier for the readers to navigate directly to the tutorial.

Like me, if you are also serious about learning Linux, I would suggest the following
1. Get a PC with Linux installed. You need to work out at least 30 minutes to 1 hour, try solving exercises and examples. Trust, it is worth doing.
2. Get a book on C programming (you can find a lot of resources in Internet. Just google)
3. If you do not have a PC, at least I request you to think about exercise and write the programs in piece of paper and do the hand calculation. A Programmer does not need a computer to program :-)

Happy Learning

17 January 2009

Don't be perceived as sucker

I was reading bunch of articles in HBR. The interesting reads started with a good case study which was powerful, helped me to validate some of my ideas and gave new insights. The core theme of case study is how to deal with people or boss-subordinate relationship to be precise. It is quite usual and reasonable for your subordinate to think you as sucker if you really suck (from his perspective). You cannot just cover up. Get your basics right and update your knowledge.

While the global economy is in a see-saw, the companies are preparing to improve productivity and come out with a distruptive innovation to transform their capabilities, market share, growth and bottom line. If you are in knowledge-based industry where the productivity is in the hands of human resources, your ability to connect with people and understanding your team plays a key role for your organization's success. Period.

Today, the world is seeing a transformation in learning. The people, apart from reading books, they started to learn from their work. Some of the old tools and management styles will not excite the next generation. It is time for the old generation to understand the expectations of the new generation and channelize them. The new generation see their managers as not managers but as coach. They do not see their work only as work but also as case study.

So, it is quite natural to have differences of opinion among people of different generations as both the generations have blurred vision about the other. It is high time for the managers not only to know about individual behavioral patterns of their teams, it is worth spending the time on understanding the generation gap and leverage it to the team's advantage. As you move up, you will come across people of many generations. So, learn it now else it will be too late to learn. Jim Collins used to say about himself as life long student. It is an evergreen word and it perfectly fits now.

16 January 2009

Be prepared to execute - Don't let money to overburden you

The recent economic crunch has imposed serious implications on the profitability of some companies, the growth of some companies and bombarded the morale of the people. Yet there few good companies out there who do not believe in mass layoffs. Though, laying off people may help you in short term, laying off people in large numbers will have adverse effects on the companies' long term growth strategy. If you are going to layoff people just to cook up your balance sheets thinking that you can aggressively recruit people when economy recovers, you can proven wrong. It is natural law that when you go for a shopping on "Black Friday" all the offers are over. You will end up grabbing very few or none at all. These are just knee jerk reactions that could potentially cost your growth and market position. Rather, be aggressive internally to improve productivity and let your people know that productivity matters a lot. The productivity will manifest if you have focus and the focus will bubble up if you have interest and the interest is culmination of your passion, the burning desire.

Try to make people loyal to you, may it be your teammates or the customers. The character is something which you show up when you are in difficult times. When you connect with your existing customers and understand their concerns and address them, they will become loyal to you and evangelize your delivery capability. Similarly, when you show kindness, openness and warmness to your teammates, they will turn loyal to you. The loyalty does not know anything about economies. People will be there with you when you badly them. Tell your teammates who are low performers on how much they affect the team. Try to mold them, mentor them and coach them. Put the team ahead of your career growth. Make them feel that they are in the safest pair of hands and they are not risking their career being with you. Great leaders do this (and of course I got to learn from those people).

If you are an employee working for some company, try to read the vision of your company at least now. While I accept that "old is gold", some times "old is rust". Get rid of old ways of doing things such as practices in human resources, engineering, quality, project management. Now, the internet has become a huge database. Employ "sensible data mining" to leverage the huge database which does not cost you much (in most of the cases). Today, you can be happy to know about Web 2.0 and probably before we recover from the short nap, the world would be having Web 3.0. The entire world might be doing some sort of distributed computing with mobiles/personal computers. Be prepared for a change and most importantly "be spontaneous in acting for the change". Once you do that, you should be seeing yourself taller and in elite club.

Do not let money in multiple forms balance sheets, stock prices, CTC, bonuses and fringe benefits to take control of you. Allow the paddy to ripe and then do the harvest simply not because it is one of ways harvesting, but because it is right way of harvesting.