Managers and Supervisors who did not understand that what they were asking for was a lot more than they anticipated. Happened to me as a researcher. Super would request x, y, and z with 10 hours assigned to it, when task x ALONE would take 25 hours, and putting it together to work with y and z would be even more time and resources that were not available and would not be requisitioned.
Just higher ups pushing for shit they know nothing about.
This is normal. Personal anecdote time!
At my current job, there was one incident when I'd been there maybe about a month and a half, where I was asked to write my code to allow ANY combination of answers that were considered 'valid' for a given set of math problems. Doesn't seem like too much a big deal on the surface, right?
Well, let's look at the tool students are using in this particular step of the problem first:
- It has two areas. One with a number of circles, and another area with eight containers that circles can be dragged into.
- Circles in the first area can be chopped up into fractions of a whole (halves, thirds, fourths, etc; all the way up to eighths for this tool).
- The containers in the second area each have two slots, which can hold a whole circle each - so a total of 16 wholes can be moved over.
Simple enough so far, right? Okay, here's where it got stupid.
- Each of the sixteen slots has an ID number, between 0 and 15.
- For each of these slots, in order to check the value of the contents, you have to check the numerator and the denominator of the wedges (or whole) put into that slot. Yes, separately. No, you can't just put in a numeric value (say, 0.5) and check the slot. You have to check that the numerator is 1 (or 2, or 3, etc.) and the denominator is at the same time 2 (or 4, or 6, etc.).
- You can't do this for pairs of slots (ie, the containers). Only per individual slot.
Okay. It's long-winded code, but it works... Until you have to take into account alternate answers.
The question I was using as an example for this was 6 divided by 4 - for this step, students were told to "split six wholes evenly between four containers". We were expecting the answer of a whole and two fourths, but we were also going to accept one half instead of the two fourths. This wouldn't be a problem, really, except for how answers had to be validated.
So when you're letting the student answer the question by putting either 1 1/2 or 1 2/4 into ANY four of eight containers... you end up with a lot of permutations.
1120, to be precise:
- 70 combinations (8 choose 4) of 4 containers, times
- 4 decisions per combination, one per container, whether to use 1 1/2 or 1 2/4 for that container, times
- 4 decisions per combination, one per container, whether to put the fraction or the whole into the first slot
When checking a single slot looks like "fs.circle1numerator=2 & fs.circle1denominator=4"... you can imagine how long this would get. I did the math in my head, and told my supervisor it would take several
hours per problem, in a lesson of about 70 problems (each of which was different), assuming I didn't completely destroy the authoring software in the process. I was told, "do it anyway".
So I did, for one problem, just to prove my point. Turned out my estimate of "several hours" turned out to be hopelessly optimistic: it took me the
entire work day, all of 7 hours (since I didn't start until after our morning scrum), to write the single if statement to validate these answers. You can actually see the code
here. It's over 92,000 characters long, and takes up 19 sheets of paper when printed.
When I finished, I called my supervisor over to let her see the code working when I put it into the software. She looked at the code (before I pasted it in) and could not believe that was what the code was going to look like. I put it into the tool, and broke the system in the process. Text stopped rendering properly (the line the if statement was on basically looked like a smudge of charcoal on paper), and I couldn't save the problem, or run it.
At this point she
finally stopped fighting me on it and said it would be better to assign an engineer to come up with a solution rather than have me waste two months working on a single lesson.
Gee, no shit, I could have told you that this morni--oh, wait. I DID.Fast forward a month, we finally get the fix from the engineers.
Know what that if statement looks like now? This:
If: fs.containerFillSet===(3/2,3/2,3/2,3/2) then "Correct"(It's 99.96% smaller than the original version, by the way - and fixing those lessons to use that took all of an hour.)
tl;dr: People in charge rarely know what the fuck they're talking about when it comes to actual development/putting-things-together work, especially time involved. Unfortunately, words alone will not get that through to them - you'll still have to waste hours and hours of your time just to prove that their expectations are unreasonable.