Have you ever walked into an office and saw a huge flat screen on the wall displaying a dashboard with pretty graphs, or some other nice visualization showing some important looking numbers? Back when people still frequented offices, many had them. But have you ever wondered, what are they for? No engineer is looking at them, because when you are looking at data you want to interact with the data, zoom, pan or apply some filter. And if the data requires immediate action, you would set an alert. So what is the dashboard for?
Dashboards are a classic managerial fad. They look good, but there is no logic or mental grounding behind them. They are a superstition, spread word-to-mouth in meetups and networking events. To be fair, engineers have many of these useless dashboards as well, pretty colorful visualizations of “Load Averages” and “free memory” which look cool but show no actional data. The thing is, if you don’t know what a graph is for, what questions it answers, you shouldn’t be making it. A graph is created with intent to help answer a question; it presupposes some model which relates the axes and quantities of the graph. Without a model, a graph is useless - you might as well plot random data, which sounds bad but is actually better than using a model that you don’t understand or is downright harmful. Like a burndown chart.
A burn down chart is a graphical representation of work left to do versus time.... It is useful for predicting when all of the work will be completed. It is often used in agile software development methodologies such as Scrum.
The burndown chart looks good. It gives a sense of progress, of accomplishment. Look how fast we’re burning down remaining work! But what what question does it answer? what is the model behind it?
predicting when all of the work will be completed
Have you ever completed all the work? have you even heard of a software company which “completed all the work”? no? not surprising, once you realize work is manufactured. In fact, there is someone at your company who is being payed to create more work - your product manager. The amount of work is arbitrary! So what is the use of predicting completion of arbitrary amount of work? does this prediction help you go faster? make your users happier? earn more money?
Then what is it good for? Ask a project manager, they’ll tell you. Likely a long speech about the importance of coordination between teams and making sure everything is going according to plan.
Which brings me to the hyped concept of “velocity”. Velocity is a metric of work per time unit, which means throughput. Yes, the units of work are somewhat arbitrary but it is a throughput metric nonetheless. I have no idea how “velocity” took such hold in the Agile world, nor do I care enough to investigate. But by optimizing for “velocity”, R&D managers everywhere are shooting themselves in the foot and making their companies less agile, sprint after sprint.
Beware of models you do not understand.