D'oh
Evidently the notion of A/B testing had not been taught...
Well, neither did they teach elementary change management principles...
Welcome once again, dear reader, to the sanctuary we call Who, Me? in which Register readers can safely share their burdens and tell the tales of technical not-quite-expertise. Take this week's story, for instance, in which a reader we'll call "Jeff" made a very simple error – the kind of error any one of us could have made. …
I think anyone who's ever done any length stint in IT probably needs a pint or several to again repress all the memories of the myriad of tortured use cases Excel has been forced to serve.
Compositional petroleum reservoir simulation (using several linked spreadsheets plus custom add-ins). Yikes!
"myriad of tortured use cases Excel has been forced to serve. -------->"
Many years ago, I had a job to build something called a beamformer. Lots of transmitters (could be radio, sound, any waveform really) arranged in irregular 3 dimensional space. When they all transmit, the superposition of the waves creates beams in certain directions. Control the phasing of the individual waves and within certain constraints, you can form any beam shape in any direction you like. If anyone reading this cares, the beampattern is the Fourier transform of the array and vice versa, in as many dimensions as you are working in.
New in my role, I was waiting for the new software development environment to arrive, so I was twiddling my thumbs wanting to make a start. The only software I had to start creating the model was ... Excel! So before long I had a fully functional 3 dimensional beamformer running in Excel! Admittedly out was only narrowband but the process of squeezing it into Excel taught me a lot about the maths behind it and what shortcuts and optimisations you could make. The final version (written in C++) was a lot better (more efficient) than it would have been had I not done all that early Excel tinkering.
Which is where the "tortured" comes into play.
On a related note, I was once on a project that was tasked with developing a mock-up of a new system for demonstration. They did such a good job the customer expected them to finish the remaining 3+ years of development in 2 months because "well, you've almost finished!"
Which is fine, if you know what you're doing.
Reminds me I once had a job in a university where some students had noticed their transcripts and final degree class didn't align, and I got asked to figure out why. Turns out someone had been truncating instead of rounding, in an Excel/Access mashup.
"Exactly. Playing around with an idea is all fine and well, the problem comes when that quick and dirty prototype someone bashed out ends up becoming the official solution."
Seen that as well. Came across a spreadsheet that someone once put together as a quick and dirty prototype. Before long it was full of complex cross references and a set of instructions telling you how to select the data you wanted in the graph that was then copied in a regular customer report every quarter (it was so complex it was no longer obvious or intuitive). This spreadsheet had become THE definitive reference for the quarterly customer report. Only problem was that it had become so complicated that it was hard to trust that the data you got was the data you wanted and of course there was zero test documentation to support it.
Tortured uses for Excel?
Allow me.
I had to input several database points, several times per day, with repeated entries. Like the guy that made it could have a drop-down choice menu for me. No.
Well, the machine had a barcode reader gun. The whole math to generate barcodes is throughly described on wikipedia. There is a font for windows that generates barcodes out of strings as well.
Bob's your uncle a spreadsheet later, I got an Excel spreadsheet that makes and prints barcodes, of any size, including what they mean, labeled underneath.
Never had to type a boring long ling of strings repeatedly, again. Any new entry got added to the A4 paper sheet I got on my desk.
"Thankfully when it was all done the owner was very forgiving, though it had cost an afternoon's online sales. And he did dock Jeff's pay for the cost of relisting everything."
That should focus Jeff's mind.
"A while later he moved to a larger concern in the manufacturing industry, where he was able to make more industrial scale errors."
Guess it didn't.
Thankfully when it was all done the owner was very forgiving, though it had cost an afternoon's online sales. And he did dock Jeff's pay for the cost of relisting everything.
Riiiiiiight.
Are all these stories made up now, or just part of them? You can't dock the pay of an employee for an innocent mistake.
On the other hand, you really should not be blaming someone for a mistake when a freshly minted grad is dropped in to not only do everything IT related but still do the shelf stacking and order fulfilment he was originally hired for. That's just asking for trouble. But, small business and a boss who probably thinks "IT" is a job title and of course a new grad will "know it all" :-)
Because only there would an employee even consider calling an employer "very forgiving" when they've just docked your pay for an innocent mistake (especially if you're fresh out of school and thus presumably cheap)
(I suspect btw it's pretty easy to dock the pay - especially for an hourly wage employee - just tell them not to book the hours or they're fired.)
This post has been deleted by its author
Many moons ago, I used to work in a restaurant in England that would (illegally) dock the pay of the waiter/resses for things like broken glasses or customers doing a runner.
In the end one of the waitresses had a dad who owned a company, pointed out to her that it was illegal and he also kicked up a fuss...
"the pay of the waiter/resses for things like broken glasses or customers doing a runner."
I'm not sure about the broken glasses things, but the server at your table does have to pick up the tab for runners", theres also (to me) a complex system of cross tipping between the staff in North America.
A friend of mine in the US, owns & runs a family restaurant, last year they had a group of teens come in & skip the bill, leaving the waitress having to cover them & finished her shift "In the hole" for the tab.
Fortunately one of the departing teens had left behind her nice new shiny iphone 12, the local cops who ate at this restaurant had turned up for lunch promptly took interest & the owner was able to get into it to make a emergency call explain the situation to a extremely embarrassed parent. Who promised to send the teen concerned only to be told that was a no dice situation & that the whole party had to turn up.
The party duly turned up embarrassed & shamefaced, the consequences of their actions & the impact for the single mother server hammered into them before:
They settled the bill with a hefty 35% tip.
They had to give their names, vehicle registrations & addresses, then barred from returning to the restaurant.
Informed that said details would be circulated to every restaurant in the area, who would also likely refuse them entry in future.
a group of teens come in & skip the bill, leaving the waitress having to cover them & finished her shift "In the hole" for the tab.
It's outrageous and ridiculous that any waitress should have to make up the shortfall. Same too for anyone who is punished for things they aren't responsible for, shouldn't be expected to be responsible for.
America could learn a lot from how civilised countries do things.
'Murrica is the land of the free.
You're free to starve, work for negative pay, be exploited, rely on the generosity of your employer's clients to make up your wages with tips and many other such 3rd world practices designed to feed greed.
And never forget, you can't be living the American dream if you're not grinding the faces of those less fortunate into the dirt because anything else would be socialism.
It's also helpful to realise nightmares are dreams too.
I can assure you that in most (all ?) states, docking someone's pay like this is illegal. The problem is whether you will have a job after you raise a fuss.
Many years ago I had a situation where an employer tried to dock my pay, and I ended up filing a complaint with the state labor commission. They actually acted fairly quickly, and I got a phone call from my employer saying that the would be sending me a check right away.
Granted, I was already leaving the company anyway. Would I have files the complaint if I intended to keep working there, maybe? That is how companies get away with this kind of stuff, regardless of what the law says.
@davidnash
"How can it make any sense that the waiter/ess would be responsible? Are they buying the food and selling it on to the customers? That's the business stealing from the employee, irrespective of whether a customer stole from the business"
They apply a twisted logic, that the serving staff should have kept an eye on the table and been on top of the situation.
It's not right, it's not fair and it's illegal in civilised countries (but it doesn't stop it happening, have a chat with the staff at your local petrol station and ask what happens if they get a drive off if you're in the UK)
It's not right, it's not fair and it's illegal in civilised countries (but it doesn't stop it happening, have a chat with the staff at your local petrol station and ask what happens if they get a drive off if you're in the UK)
It seems some cunts will want cashiers to cover the loss but decent people would consider those cunts as the cunts they are.
If it's a case of the driver coming in to pay, buying something else, and the cashier charging for that and forgetting about charging for fuel, it is more of a grey area, but even so, I would say a driver taking advantage of that is as guilty of a crime as deliberately driving off without attempting to pay.
Fundamentally no employee should be responsible for compensating employers for crimes committed by third-parties.
These "favourite" chains would be originally from the US as well would they? Whilst they will probably get away in the UK as our current government looks across the pond in admiration of everything from consumer rights (much less than us) to healthcare (which they don't have), they wouldn't in more civilised places like France or Germany!. The fact that our employees are supposed to have rights is an error that they have spent the last 13 years trying to fix.
"complex system of cross tipping between the staff in North America."
I didn't realise that on one of my early visits to the US. We didn't leave a tip on the bill for our waiter, intending to just leave cash when we left. Waiter got all concerned and wondered what was wrong for us to leave no tip. We explained how we wanted our tip to go to him and him only rather than going through the till (where we assumed some if it would get creamed off by the business). The waiter explained how it works and all was well, we all parted happy, a bit wiser and still thinking that the other's system was just weird - just how foreign travel should be.
So basically they were blackmailed into a bribe over and above the bill to keep them out of prison, then their personal details were collected and circulated to many unrelated companies. This would be highly illegal in a lot of the civilized world (not to say they wouldn't do it)
At a large energy supplier in the south of the UK, we often had overnight software deployments that would encompass 3 or more disparate teams. Some team's managers would allow their members who were involved overnight to book the entire change window off as OT even if their tasks were two brief periods of 15-20 minutes, one at the start, and one afterwards.
Other team's managers would only allow the staff to book OT for the periods that they worked, so in some cases 4 seperate periods, consisting of an hour or 2 during the night, would be rounded down into 3 - 4 hours.
Yeah, guess which team I was in... :-(
I would have complained. LOUDLY.
If you are required to be "ready to work" during an 8 hour window, but you only actually work 2 hours of that time with the rest of it waiting on others to complete their tasks, you have worked 8 hours. No one would question this if you are sitting at your desk in an office for 8 hours twiddling your thumbs waiting on others, but somehow if you are home (which I assume was the case for an overnight deployment) some think they can get away with crap like this.
Now if there was a good 5-6 hour gap between because you had the first and the last task maybe that's kind of reasonable because you could (hopefully) sleep and have them call you when you're next task is ready. But for four separate tasks it won't be possible to sleep - at least not for people like me who have trouble falling asleep and definitely could not sleep three separate short periods between tasks. Plus I'm guessing they want everyone on some big conference call or IM session so they're ready to go instantly, not having to call people who have elected to sleep and waiting 10-15 minutes for those who live on coffee (fortunately not me!) to get it in their veins.
I've always billed this way for my consulting gigs and I've never once had anyone question my hours. There were times I would be called into some big conference call about an outage and I was not involved in the call at all because it had already been determined to be about something I had nothing to do with like a Windows issue. But unless they said I could go I would stay on the call in case it was one of those one problem hiding another problem type of situations. And I would bill them for sitting silently for six hours, listening to people talk about stuff I didn't care about while I surfed the web or whatever to pass the timel
At a previous job I if you worked beyond 11pm
One of my contracts (deploying new OS/2 [1] machines) had to be done overnight so as to not disturb the busy department where we were doing it. Rather than have a permie have to associate themselves with us contract scum for 10 hours a night, they decided to pay us for 10 hours, regardless of how long things took.
As it was, we developed a smooth workflow between us that usually let us finish by 11pm (starting at 5pm) - at which point we would adjourn to one of the many fine curry houses in the locale.
Good contract that one - unfortunately, they went seriously over budget [2] and drastically reduced the contractor headcount. Including me :-(
[1] Remember that? I still have my OS/2 Warp t-shirt, blagged off the IBM stand at one of the computer fairs where they were doing release events (if you bought a copy, you got a free SB16 sound card - and I managed to get them to throw in a t-shirt as well). T-shirt is looking a bit tatty but it's in better condition than the OS/2 market nowadays.
[2] For a finance company their project management accounting style was distinctly slapdash.
I wondered why one customer's CAD models came in looking like they were done in crayon.......
Or maybe he was the guy who wired up a HP pump backwards, then 'adjusted' the wiring in the cabinet to cope.
Worked really well until we happened to have a HP pump go down and we swapped it with that one.
Icon gives some idea of what happened>>>>>
Many years ago I managed to mess up the logic in processing discount codes on our site that for one bank holiday weekend* anybody using a one that had being promoted through social media etc. ended up paying 20% more, rather than less, for their order.
It was surprising how many people didn't notice...
It might not be a matter of checking the spreadsheet, if you aren't clear about the format. He might have triple checked it and thought it was correct when it wasn't. If for example there were x columns expected for the upload but he had x-1 columns. The software on the other end could give a helpful error message telling him that a column was missing, or an unhelpful one like "invalid format" or it could accept the input anyway substituting 0 for the missing column. And if the last column was price....oops!
What he could have done with almost no additional effort was submit a handful of price changes, then login to the site to verify the prices had been reset as desired before sending the rest.
This kind of thing wouldn't surprise me, especially as a lot of software that accepts spreadsheets as input have lots of available columns. If they were importing something structured, like XML, JSON, or SQL of some sort, then those fields would have names they could check against. I've seen spreadsheets that looked like this:
<itemname>, 0, 0, 0, 0, 0, 29.99
With all the zero columns being for fields that you weren't using. When there are already columns like that, one more doesn't stand out too much. This is one of the things that caused me as a child to stop using spreadsheets to store information when it got too big and use a format that wasn't as prone to user error, although that also taught me a long-lasting fear of nulls which don't always mean the same thing.
I remember dealing with one client who insisted on just uploading the Excel spreadsheet to the website and expected customers to download it and read the price list. He could not be convinced that not all of his business customers would have Excel, let alone the very latest version he was using and private customers at home even less likely to have Excel at all. This was back in the days when importing data into a non-native spreadsheet was unlikely to succeed unless you'd already made that assumption and designed for that eventuality. We didn't get the job to re-build his website, thankfully.
And of course, lets remember the ways that Excel will mangle your data - even if you are really careful.
Maany years ago, and several work hats, one of my jobs involved generating files of product information from our main system so that customers could upload them into their systems. Sometimes they "requested" specific formats, but if not I would default to creating a flat text file as that's the simplest and most reliable file to handle - for the many customers who weren't pulling it into Excel. A few customers would complain about the data being corrupted - which it wasn't. But you try explaining to people that no, Excel does not have sensible defaults to import most files if you just click "do it" without telling it what any of the fields are (some of our barcodes were UPC12 expressed as EAN13, i.e. with a leading zero which Excel would helpfully automatically strip for you).
Gawd, the hoops I've had to jump through to code CSV exporters that protect the data against Excel mangling it. Protect in quotes. Nope, if the thing specified as a string looks like a number, it will be treated as a number. Specify it as a *formula* that specifies the data is a string. That's caught everything so far. But in order to prevent the exported file being humungous, the protection was only applied for known "Excel is a bastard" cases. Which worked fine until a serial number advanced from 1D999 to 1E000 and suddenly everything was numbers, 1*10^0, 1*10^1, 1*10^2, 1*10^3, etc.
I remember at the college where I taught, one of the professors moved a column vertically in a spread sheet and excel helpfully tracked all of the cell bindings to their new location.
When I did grading with a spread sheet I always added a perfect student. If this student didn't get 100% after all of the formula crunching I knew something was wrong.
With all the alerts happening because the prices of items had been drastically lowered!
He's lucky that prices set to 0 were interpreted as deleting the item, rather than having some overly clever software on the other end knowing that prices can't be zero thus having everything listed for 0.01 dollars for a few hours!
Not a spreadsheet, but I worked for Blockbuster when I was a student.
After the shop closed, we had to take the computer through an end of day procedure, where we had to respond to various prompts, then at the end, the computer would lock any terminals attached (two, in our store), then sit there processing for about 2 or 3 hours, printing out reports showing various things, like the day's cashflow, and tapes rented/returned etc, along with any late returns..
It printed out a *lot* a reports, which meant the printer (a dot matrix) was going for pretty much the whole time. Thankfully, we didn't have to wait around, so usually went home while it did this.
I was covering a shift in a branch I didn't normally work in the next morning. Normally, when working the morning shift, we checked the printouts for any thing due. We would check the drop box (in case stuff was returned overnight) and cross off any items that had been returned. We'd then start to phone the people who were late returning stuff, and go through the other figures.
My heart sank, when I saw that the cashflow report was showing the store was £2,000 down. Panicking a bit, I called my manager. It looked like the £2k had been stolen, even though the stores never had that much cash in the tills. Thankfully, he came to the store quickly, and we checked the figures again. What had happened is that someone had issued a credit for £2k on the system. The manager voided that credit and presumably had a word with the guy who had been working the previous day. Thankfully, that guy admitted he meant to enter £20.00, but missed the full stop. He had only given £20 to the customer.