20 years ago I walked into my college with the arrogance of a teenager who knows a lot of things, with the thinking that know-how of knowledge and intelligence is enough to win anything thrown at me. Looking back I realise that I had barely memories of about 10-12 years but had the attitude of know it all.

College life is called head fake, it is not much about the course you have taken to learn, instead it prepares you for the unstructured life ahead. Randy Pausch talks about this in his last lecture which I realised that my entire college life was a head fake preparing me to be ready for the world with collaboration and social skills. Life as an individual is not enough, you have to learn to live together. Here are somethings that I learnt during college and later years which helped in the longer run.

Friendships – I thought friendships last a lifetime, but it is very situational. Barring a handful, most of them will not care to keep in touch. It is fruitless going out of the way to help people, the bad memories for people often carry a huge weightage compared to the good things that happened. We just should not be a jerk, good friendships will just happen over time.

Politics – Not taking sides is a best way to stay neutral and not get involved in politics; but the moment you take a stand on what is right, you are already neck deep into politics. Politics is every where as long as humans are involved, just pick your battles wisely else everyday goes into fighting pointless things.

Learning never stops – There is so much to learn, the more you learn the more you become aware that you have learnt less than what is out there. My magnitude of learning increased multifold only after I started doing internships, knowing how to write calculator program was just enough to give you that 80% in classroom. Solving real world problems involved intensive learning and unlearning, often there was only one shot at solving the problems thrown at you so you have to be ready to face new problems not structured predictable textbook problems.

Managing money – Managing small sums of money that comes as pocket money prepares you well ahead for the monthly salaried life. Planning for a month seems to be hard at first, you start learning only after you spend the entire pocket money within 10 days and then have to borrow from friends, lose some friendships over money before learning to save and spread spending over time.

College is the last stage of a structured life for most of us, the unstructured life just flies by and we will be sitting on a couch on a holiday and wonder how the last 20 years flew by.

During summer holiday in school days, we cousins used to play around with water a lot. We used to get toy water guns, water filled balloons and use a water hose as our weapons. It was always and almost the person with the water hose hits the targets all the time. All the rest were having scarce resources and tracing the trajectory with guns and balloons was hard to hit moving targets.

Why am I talking about this, because it is the same in software development. The team with the water hose wins, this means whichever team is equipped to deliver any commit to production at will, is the one that will be able to deliver desired results and beat other teams.

So much has been talked about agile development but I have not seen it practiced in true spirit. It is usually about sprints, backlogs and masters; instead of building high performing, long running, well equipped teams.

Signs of teams that will meet business goals often and with precision

  • The managers let work happen by setting direction, instead of managing work and allocation
  • The teams know the financial & business impact and is able to take decisions that can help achieve it instead of decisions being top down
  • Tests are first class citizens, there are safety nets at all levels from units to systems to overall, no compromise on tests
  • 1, 2 & Automation. Automation is at all levels, removing any scope for repeated laborious tasks
  • Power and ability to operate the production environment by the team themselves
  • Well staffed and sustainable working schedule
  • Equal respect for one another, no heroes or heroines.

When you are not able to lift weights at a gym, what do you do? Typically people go back, take rest, find what makes them stronger and eat that food; reduce the weights and slowly work their way up. In short people will nurture and train themselves to be better and stronger. They will not cane their hands and legs for not lifting those weights to expect a better performance.

Yet so many SDMs (Software delivery managers) prefer to use coercive power to try to make their teams perform well instead of nurturing and building a strong team. The reason being, many people treat their teams as a resource to be exploited than a team of individuals trying to solve a creative problem.

One solution to this problem is to remove the power the SDMs carry.

  • Make them mere facilitators and deal makers instead of the power to review, promote and reward people.
  • Distribute the powers within the team itself and keep the teams small enough to have meaningful connections and identify non-performers very quickly.
  • Decision making should ultimately rely on technical abilities and feasibilities than pure ego
  • Do not hire SDMs who claim that they can code but they prefer management, these are the know-all people who ruin everyone and everything!