Excel: where agile goes to die
To the casual onlooker all I have done is help with a formula in Excel. In-house things are different. We know: this is life changing. Spreadsheets are faster. Reports are smarter. Truth is nearer.
This is part of who I am: the Excel Guru. Every office has one because every office needs one. This is inevitable. Here’s why:
Every office uses Excel, every Excel User writes formulae. These formulae are often designed for repeat interrogation. The Excel User might be blissfully unaware of it, but this is programming. The Excel User is (for them mercifully) not a programmer therefore they inevitably reach the point of their programming incompetence. At this point the Excel Guru gets called. This has to happen.
Before I go on, I should state that it is in no way my intention to denigrate the Excel User, the quality of a spreadsheet is in the vision, not the formulae. Indeed, most serious Excel Users are good enough to create all but the most taxing of formulae. This results in two curious side-effects:
- The call for Excel Guru is usually not planned (because the Excel User can create nearly all of the formulae they need)
- The Excel Guru is an entirely ephemeral being: they exist from the moment they are called to the moment they return to their desk.
To my desk is where I go next. The finance team chink their tea-cups to the sound of my name. I re-join the development team to rapturous applause. I garner envious glances from the other desks. They want to be me. I suppress a grin, try to look humble. This is tough to do for – at this exact moment in time – I am glory.
This glory fades fast. Yes, I helped, yes, it made me feel good about myself, and, yes, I got the job done. I always get the job done. For this reason the euphoria dissipates to be replaced by a distinct nausea. I have been here before. For all the plaudits I know what I have truly done. Nausea itself dissipates and all I feel is a sense of deep foreboding, of impending doom. This is not far-fetched, I develop software and this means I know what I’ve done, or, more to the point, what I haven’t.
The first thing I haven’t done is planned for the project (this is rendered impossible by 1 above). Instead I have jumped straight into the live code. At the Excel User’s behest I have made changes there and then. This is my second problem: if I were planning the project I would have to consider all of the potential users, not just this one, but the nature of desk side support negates this. My third omission is at the point of release. I code in haste say something like “that okay?” and beat a hasty retreat. No alpha- let alone beta-testing. As for showcasing the “product”, well, without planning we have no definition, without definition the idea of a product is, erm, nebulous (indeed it is nebulous by definition!).
These three things, however, are trifling in comparison to the final omission: my code is live and editable. My lovingly-but-hastily-prepared code is out there, live, today. Not only that, it is infinitely changeable. I have not locked down my code, not been allowed to. The Excel User can just change it, just like that. Imagine! Something worse yet lies in wait: when this spreadsheet is finished it will be sent to others, in the same free-for-all format. They can do anything with it. “It” being my code!
To recap: no planning, no user story, no testing, the code raw and exposed. Foreboding. Doom.
Lured by the euphoria of using one’s knowledge to help others, the Excel Guru quickly and repeatedly descends into this pit of despair. The crack cocaine of development jobs. This is why Excel remains the most hardcore language for any programmer: we do it for the buzz not for the future.
PS If you really want to support your spreadsheets for life, introduce a wonderful macro.
(Frankly amazing Sonic in Excel from: http://gypzthequaker.deviantart.com/art/Excel-Sonic-297397979)