The first time I heard the term sandbagging, a senior architect used the term in a derogatory manner to describe what the way that a project manager was running the team I was on. At that moment the team I was on focused on the sunset maintenance of a webapp, not really exciting and not the sort of thing you want to throw more resources at; it got so bad that team members were clawing at story points before being told to figure out how to split a simple story. In the instance of providing bug fixes on an application that has a looming end-of-life date sandbagging can either provide crucial stability or unneeded bloat, it is often political when the latter occurs. For some the sandbagging might be the only tool the developer may have to push back with. In this post I am going to discuss the concept of sandbagging; what sandbagging is, when it can be an extremely useful tool in the process of writing software, how it can be used to reduce stress when working on large projects, why sandbagging can be good or bad for the politics of the situation.
The majority of software-related definitions of sandbagging in the tech industry agreeing on the definition as basically being the art of padding estimates to better align with reality. There are a variety of articles out there about sandbagging and how it relates to estimates, this article seems to do the best job at explaining it. What it boils down to is the fact that non-technical folks do not and will not ever understand the intricacies and challenges that arise. To mitigate the risk of not delivering on time, estimates should be padded to account for the unknowns that may/will arise. Sandbagging can be used to better manage expectations; such as meeting an organizations goal of all estimates needing to be within 3% of the actual work. The only way to meet that goal is to pad estimates.
What I would like to further expand on how sandbagging can be an efficient tool not only for estimates, but also as a best practice when needing to manage the expectations of others. In the instance described above, the sandbagging was not being used as a way to reasonably protect estimates but rather as a way to make it appear as if there was more work than needed. This is where the Urban Dictionary slang definition of sandbagging begins to seem more relevant. http://www.urbandictionary.com/define.php?term=sandbagging
When a player in any game chooses (on purpose) to not play their best. Normally this is because they are too superior, they want to hustle you, or they are too lazy to play their best with nothing on the line. To me the Urban Dictionary definition is exactly on point, where the last condition can be substituted with “… or they have become extremely complacent in their paycheck providing position.” When someone has become complacent it means that they have set the bar low and have trouble rising to the occasion.
Now I would like to redefine the term Sandbagging, so that when I use it the term “just sandbag them” this is what I am communicating:
Sandbagging should protect the code, not slow it down
Sandbagging is used to communicate to business folks
Sandbagging is a tool that helps requirements surface
Sandbagging can help establish realistic expectations
Sandbagging provides a mental framework to managing sanity