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”……..;)



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.
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.