I Think I Need To Service My Car

An organisation can be compared with a machine which takes inputs and produces output, to monitor this there are various reports. Whether you as a developer or a manger if you always have more than required resources and you just care about the result no matter how that is achieved then this article might not be relevant to you. I know for most of you it not the case.

As we all look for the best results, so the internal working of the system matters for us. Results matter but should not be at the cost of quality or stability of the system. We optimise our code so that the application will consume less bandwidth, low memory and less CPU cycles, similar kind of optimisation is required in management as well so that results can be achieved with optimum way in terms of time, resources and satisfaction.

Reports in the system are the abstracted view of the system which an organisation needs when it is growing from a start-up to a big company of the market. Sometime report says considering input and output everything is good and improving. For example we are delivering our work on time or as per the high level parameters reports are saying system is doing good. But these parameter are just like parameter shown on car dashboard like fuel, temperature, speed, kilometers. Can you predict when you car will face a breakdown. No, that will appear on the dashboard when it is already happened. The better way to predict the breakdown is to open the bonnet and check the engine closely.

It all seems we are doing good and growing as per the statistics we have on high level about the company i.e. as per the the abstracted view of the whole system. I also agree on the same. Comparing the organisation with car, seeing my car dashboard, yes we have covered a long distance and we have enough fuel to go head as well and engine temperature is within limit. But what is engine really in good condition or require maintenance as car might need maintenance after travelling some distance. To analyse the same I conducted a survey with the grass root level employees or you can say on the engine of the car. Out of my total finding, my one finding was fuel supply is not good to engine and we have to run on highway ahead. So far we couldn’t recognise the supply on our dashboard as we were travelling through the streets and never tried high speed to travel. Let me bring back you to the context, the analogy here is, fuel is requirements gathered from the client and engine is team developing application including developers, testers, project coordinators  and leads. I found the information flow in the system need to fixed as the information is not flowing in the team through correct channel which may put us in trouble in future when we’ll get some challenging project. The important thing to note here is this problem was no where depicted in any management meeting or any report.

You can also compare the car dashboard with the management meetings and the survey I conducted as open bonnet. Both matters so both should be considered while creating the plans and processes. I would like to end this article with the conclusion “We should service our car and do not just rely on the meters there on dashboard before a new journey”……..;)

 

Advertisements

It doesn’t taste good.

When a start-up oraganisation starts it has a bunch of people working in it. At that time they work with huge freedom in terms of timing of work, knowledge exchange etc. But along with time gradudally when such oranisation grows, the amount of work get increased and to get that done more people get introduced in the system.

To keep a control on the work organisation goes towards the processes and tools. But this seems against the human nature as “Nobody likes rules and everybody wants to live free”. People usually opts easy way out which many times goes against the processes or tools. But in the whole story there is an interesting fact some of the processes and tools get adopted by people very easily. So it becomes very necessary to understand why people go biased towards some processes or tools.

In the organisation I am working the same I saw so I started thinking of this. In our organisation we are using two tools to manage the work and collaborate on the project, one project management tool(PMT) and another version control system(VCS) for source code. Management introduced version control system that developers started using and without hassle got digested in the system. Without specific monitoring everybody is using that religiously. But when it comes to project management tool people feel that an overhead and results nothing to them. In management prespective project management tool is very important tool to track the project progress without involving in it very closely and quickly. But in employees prespective version control ststem really helps as with that they can better manage the code and collaborate with team but project management tools is not something which heplps that that much.

The situation is like a mother who is saying eat green vegitables to her kid. As she knows vegitable are good for health. But kid doesn’t like that and he thinks it doesn’t taste good. So kid always tries to avoid that. In such a situation mother has two clear ways either she will giveup and would not ask kid to eat vegetables or will forcefully ask him to eat them.

In business the processes and tools cannot be abondened as those are the need for the future. In such cases the situation takes a wrong turn, organisations start forcing the processes and tools on the employees. Consequently it leads two bad feeling and tense environment just like the kid feels when he is asked to eat the vegetables. In such situation the employees cram processes and tools in their work just like the kid does with vegitables.

To ensure this happening management just like mother will have to monitor it very closely to ensure this to happen. In organisation it is done with several reportings. In this way the reporting becomes for monitoring people not work.

But clever moms do not force their kids to eat vegitable. Instead they do a little mulling over it and make their kids to eat that through some tasty dishes. If one dish doesn’t work out tries for another. In whole this one thing is intersting mom is not asking kid to try to search for dishes or try something else. Instead thinking and working on this by her own.

I think same is applicable to the organisation, management should try and opt for alternates. It’s a place to think on by management. If mom is not able to make her kid eat the vegitable its her failure. Before ending my post I would like to conclude this with “In order to make the people follow processes and tools they should be made feel that those are actually benifical to them and how that would happen we need to think of as management”.

What Is More Important Than Processes?

Every organisation wants to make their productivity more predictable and efficient. In order to do this many processes are created to monitor the productivity, foresee the problems and ultimately bringing quality in the work. And that is an important thing to grow for an organisation. Every company put a huge effort in making the processes run smoothly. But sometimes processes become obstacles in work. And unfortunately the real picture get different from ideal.
process_and_team
In order to ensure the processes work organisation creates more processes to manage and monitor processes. But the story remains the same.

This problem is not with the processes instead with the human factor associated with the processes. Lets try to understand this problem with more interesting example. Suppose I constituted a football team. In my team in order make the game more cleaner and defined I defined the role of each player. I asked defenders not to try to goal and forwarders will only make the goal. The team followed the instructions very sincerely. During the gameplay a situation came when none of players of the rival team was near to the goalpost and one of our defender was having the ball very close to goalpost, there was high probability of goal. As he was instructed not to try for a goal he didn’t tried for goal and passed ball to other players. Ultimately team couldn’t win the match as both teams were having the same score. So what was the problem when everyone was playing his role appropriately. Here the problem was everything situation cannot be predicted and ultimately rules/processes cannot be defined for those situations. If it could be possible to predict the all aspects of human behaviour and situations we can program the whole system. Every rule will get programed and robots will perform all the tasks and there will not be any need of human. And the tasks would be done how it is done on assembly line of a automobile manufacturing company. Then the future will be similar to what is depicted in Terminator movie series.

Fortunately or unfortunately we cannot predicts each and everything. There will always be human factor associated with work always. So we should respect the nature and we should make ourself flexible enough to adapt according to the situation to get the results in our favour. And there the human creativity comes in, we should be creative to figure out new ways to cop up with new situation.

Processes not only become the obstacles in unpredictable situations but also become a tools for poisonous people in the system to defend themselves. Let’s continue with previous example, If someone is a corrupted and is not giving his best no process cannot assess that until game is over and scorecard is in front of you but human eyes can see this.

You might be thinking I am against the processes but I am not.  What I want to say is humans are not machines. Humans are natural creature so should be managed in more natural way. The way I think is collaboration. Collaboration can solve all those those problems which process cannot. That is why in each sport, team spirit is always kept on top, as sports are very unpredictable.

That is why I think the processes should be kept below collaboration. Every time if you are going to build a new process keep in mind two things.

  1. Processes should be created for defining the game(work flow) not for roles. Which means player should be allowed to kick the ball depending on the situation. where is the goalpost should be define.
  2. If process is affecting the collaboration negatively, just abandon it and either look for new process or try to resolve the problem without process by collaboration. If you can see someone is not playing fairly do not wait for the scorecard to prove that. Act accordingly!

Path To Become A Leader In A Software Development Team

It’s been almost five years since I started my first job as a software development trainee. Since than till now a lot has been changed in my career. Now I am managing a team of twelve.

I started with a mindset of developer. At that time I was a nerd and used to think only about the coding. I was more interested in learning different technologies to prove myself as a good developer. The vision was absolutely clear and path was well defined. And most importantly I was responsible for my tasks only. That means I was having full control over my work.

After two years of development suddenly things got changed when I was handed over with a team. As I became responsible for others work(the work of my team members) the control of work was not completely in hands. In such a situation managing work became difficult as each member in the team used to think different, work differently and had different level of skills. Creating a balance in all these things is not well defined in any book unlike programming language where everything is clearly defined. All this management is contextual. It all depends on you conscience how you manage this.

The first and biggest challenge anyone ever face in management is when he is lifted a level up from his peers and he has to prove himself as a leader among his peers. When you are given a team it doesn’t mean that you are a leader. You need to prove yourself as a leader in your team otherwise team might reject you as a leader. Creating such space in team is a difficult job you need to have a lot of patience for this as it takes time. But patience is not the only thing which can make this happen you need to prove yourself in skills(communication, social, technical) also.

People think leadership is all about dominance. But this is completely wrong thought. In today’s software world the team work in collaborative fashion and leader is not the only one who decides the things himself instead he works as a servant leader. Todays role of leader in a software development team is more of a facilitator than dictator. Leader is responsible for foreseeing the things in the path of the development and anticipating the problems but decision making on the solutions is done by the team.

Some people think being technically dominating in a group can make them a successful leader. It is again a myth. This is just one side of the coin you need need be socially acceptable by the team. You make the team get out the problem or you are driving the team technically can make you dominating but cannot build a team spirit. In such a team the project can be accomplished but in team context the team cannot grow as you are limiting its growth. Moreover the moral value of the team will be low. Dependency in such a team would be high and you will be overworked all the time.

To make a really strong team it is very necessary to focus of team spirit and team development. This always starts from the leader itself. Making team more involved and more valued help in this.

Who should be blamed for the failure of democracy?

Today many states of India including Delhi are conducting General Election 2014. For the last one month the whole society was submerged in election talks. Election Commision of India is doing huge effort by making citizens of India aware of the value of their votes. Media is playing a crucial role in the same. Facebook, FM radio channel, Twitter, news channels, newspapers etc every aspect of social media has been used for these inititives. Moreover this is brining a positive attitude in the society towards the voting. Definity this is a good sign for a democary that citizens are showing interest in the election to choose most appropriate candidate of their choice.

But the questions still remain the same “How the social problem like curruption would be handled?” or “Would the pepole we are going to elect run this democracy honestly?”. If we ask these questions from any citizen of India no one has answer to these questions. Every year if we see union budget of the India we are under many thousands dollers deficit. That means we still do not have knowledge of why our democracy is failing?

Let’s look back into the history of India. For many centuries there was monarchy and was quite sucessfully. But it’s been only 66 years since Indian independence and we are facing lot of system problems in running a democarcy. Let’s try to figure out why. I think in monarchy king used to be the owner of his empire and that was his birth right. The prince used to be prince from birth. No one was there to remove him from his postion. On the other side any political leader has the thought “I am not a king of this courntry. I am here for defintely interval of time.”. I know the above comparison will bring many questions to your mind like everyone would not get equal rights in monarchy. Well that’s right. But that is another topic for debate. What I want to highlight would be clear form another example, suppose someone is a head of a family he will put his best to make his family prosperous and happy irrespective of his personal profit or loss. But if he is working in a company he will definity think personally first then for the company. The reason behind this is he is not owing the company.

According to the definition of democracy (A political system in which the supreme power lies in a body of citizens who can elect people to represent them.) who is owning the democarcy is its citizens and political leaders are eleted to get work done for the citizens. That means we the citizens(owner) are assigning some work to our political leader (employee). Now if suppose I am the owner of company I have hired an employee and I have given full power to him to run my company. And I am not asking from him what he was supposed to be done whether he is doing that or not or how he is spending my money. Do you think my employee would work in my favor when he is not accountable for anything and have rights to access all my resources? Most of you will answer “No, definitly not”. So in this case problem is with me not with my employee.

Actually our political leaders are not problem. We should not question their loyality. That is human nature. Where the change is required is in citizens. Being citizens(owner) we should account our political leaders(employees) for their work. I think we should work towards the accountibility of political leader’s work instead of blaming. But the question is how. I don’t have much understanding of politics but I know there are some tools in our constitution with which we can achieve this, for example RTI (Right to information). Similar kind of tools are need to be created to make political leaders accountable. Instead of punishing the corrupted we should focus on making them accountable. I think this is the only positive way to achive a healthy democracy.

We have started taking first step by voting. Let’s move forward.

I vs We

Few days are left for Indian general elections 2014. The whole country is submerged in political turbulence. Everyday we get to know about a new turn in political arena. Well, I am not here to discuss the politics as I am not a fan of politics. But still there are few interesting things happening in politics which are directly or indirectly related to every individual from us.

It’s very natural phenomenon that new people join any corporation, social group, a team or even a family and be that part of that or get rejected. Some of them have a different vision to look towards the things. But out of those few get accepted by the group forever and other get accepted initially and then rejected even when they have same target as that of the group they join.

Well I am talking about Mr. Kejriwal who started a movement to eradicate corruption and got a huge support from the people. Then suddenly what wrong happened after he became the chief minister of New Delhi. The equations are getting changed day by day for him. He is losing his value, his people are leaving him. Well, you might be thinking I am a supporter of Kejriwal or any other political party but I am not. I am just trying to figure out what really went wrong because this is not Kejriwal’s story. This is mine or yours story as well. Similar to when we debut in our career or we get married. We starts a new inning very optimistically and soon things get complicated day by day. In all the cases one thing is common which is “I turns into we”.

“We” seems simple but it is very complicated word. Lets first talk about “I”. “I” denotes me. If it is me I have a single vision with limited power which might not we enough to accomplish big goal. And there “we” comes in. Let me explain you this with an example. Edison invented electric bulb but was he enough to make world illuminated? Definitely the answer would we “No”. “I” can start a new vision or can bring a new idea but this is “we” which can make it effective for a mass(society, group, team, corporation etc.).

Sometimes we feel I can achieve anything I have the skills and I have the right vision. This works perfect for small tasks where you are the only who is working. Keeping such though while working in a group this doesn’t works, either you will be overworked and will be doing others tasks or you will not be accepted by group and ultimately people in group will start leaving group. The same happened with Kejriwal. He had a very good vision but his “I” was dominating “we”.

Lets take another example from Indian general elections. We all are voters who decides who will be our leader. Today’s morning I was watching last episode of “Satyamev Jayate season 2” a TV show by Amir Khan. In that it was shown how voters get affected by “I-We” factor. Voters vote for a candidate for just a few hundred rupees, some gifts like phone, sarees etc or a bottle of wine or on the basis of cast, religion. When we see the same from bird eye view voters are more concerned about their personal interests so are the leaders. In that “We” is failing because of “I”, whether it is voters “I” or leaders “I”.

That means “we” is all about thinking together and drawing solution of the problem and achieving big goal which will benefit the whole group. Remember those days when our elders, parents, or teachers used to say “stay together” or “unity is power”. Even we have heard many stories on this in our childhood. We are all aware about this fact but the question is “HOW?”. You might be thinking I will conclude this article with some solution. But unfortunately it is not a black and white this is a grey area. There is not clear defined way to achieve positive togetherness. I leave this on you to think over this. Still I have some thoughts, a constructive group can be created with honest contribution for the group goals by each member. It doesn’t matter whether you are valued or not just honestly contribute if you deserve you will be valued.

BulletPhysics(Physics Engine) Android Port – Demo App using OpenGL

In my last post I discussed about the BulletPhysics port on android. Now in this post I am going to elaborate how to use it with OpenGL graphics to visualize the the BulletPhysics. In my last post I ported BulletPhysics the using NDK build system for Android. This time I have extended that port to bind the graphics with that. I wrote the drawing logic of the object in OpenGL. I have created a very simple scene in which four balls fall and moves according to the physics laws. The transformation in the balls positions and orientations is handled by the bullet.


Hope you would find this interesting. For more detailed documentation you can refer http://bulletphysics.org/ for Bullet and http://opengl.org/for OpenGL.

Checkout code: https://github.com/manoj-chauhan/AndroBullet