20 March 2017

You Don't Need a Card for That

I have observed a behavior in some people that suggests that cannot act independently. That is, they need to be told what to do or nothing will happen. Simultaneously the very same people would complain loudly if that there was nothing to do if you didn't provide them some guidance. I've been trying to figure this out for some time as I've seen it happening for years in all corners of my life.

I don't think the people who do this are aware of how it is perceived. From the outside it make them look like order takers. They may be exceptionally competent at their jobs and technically proficient, but they lack an internal driving force to just get things done without being told to do so. Those people are exactly the people I don't really want to deal with. 

So in considering why these people act this way I've arrived at the following observations. Some of these people are looking for credit. They want to account for every second of their time if possible, so that when questioned they can say 'See my list of Cards, that is what I've been doing'. Some of these people fear retribution for not following a plan, there are trying to avoid hearing the question 'Why did you do that?' or the statement 'Stay on task'. Lastly, and very cynically, there are some who are not deeply engaged in what they are doing, they cannot remember from moment to moment what their purpose is or why they are driving to a goal; these people need the card so they can be reminded of what to do.

None of these approaches are overly effective. When developing software or delivering projects there is a fair amount of 'Doing the right thing' that needs to occur. We talk about the Boy Scout Principle with respect to code. Further, we claim to be 'Looking out for the customer's best interest'. Do we really? Or do we do what we're told and occasionally clean up when we make a mess.

I submit for your consideration that You Don't Need a Card for That applies more often than not. If you are given a bit of work to do and notice an issue like bad variable names, just clean them up, don't ask for a card. If you find a clunky implementation, just fix it while you are there. The administrative overhead of creating a card, scheduling the card, balancing the backlog, code review, acceptance process, and deployment greatly outweigh the value of just getting something done.

This, of course, leads to a different problem. How do I know if I should Just Do It, or create a card. Here is a simple metric. If you believe the work to deal with an issue is less than the time to run through the process of card creation to card delivery, just do it. If the change has a net benefit disproportionally greater than the effort and the same time as the process or maybe even a little more, just do it. Ultimately the goal of software development is delivering the product, not tracking the cards.