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!

In the last few years I see an overall increase in the busyness of people around in all professions. Everyone keeps telling about how busy they are; always behind tight deadlines and impossible to pursue goals yet they are able to somehow get things done. Managements usually set difficult to achieve deadlines, tightly control budgets, non negotiable scope of work and leave quality as the only leverage for the ground level people.

Dirty fixes and ill fitting designs are the norm

So people end up kludging together things to make ends meet. One of the dictionary meanings of ‘kludge’ is ‘a machine, system, or program that has been badly put together, especially a clumsy but temporarily effective solution to a particular fault or problem.’ I came across this term when reading this article. Kludge appears everywhere and it looks like a clever hack.

Sending that boolean variable named ‘donotTouchThisFlag’ through multiple layers of code and systems to bring up a new feature effectively cuts the time down by several hours that should have been spent in redesign. An engineer doing this for an aeroplane is beginning to get away from these blatant engineering blunders and instead gets praised for quick delivery of features and leave the headache to the technical support team to handle.

People have no other option than to succumb to this vicious cycle of too much pressure and low quality work. If they don’t fit in, they get kicked out. What is the leverage then? It is very hard to find leverage when people are bossing around in multiple layers, I kind of miss the unions of the yesteryears in many disciplines who demanded the right conditions, pay and working hours.

Good design and quality work can never come from pressure, if an output comes out of extremely forced timeline and budget then chances are high that failure follows suit. Sadly the manager gets rewarded for timely delivery and the engineer gets the stick for poor quality.