Yesterday I finally remembered. I was talking to the professor a few days ago and thought there was a third point that I forgot, and indeed, there was a third point that I forgot.
So here it is: We keep talking about agile, but agile values “working code.” And one way people doing agile keep their code working was to use TDD (test driven development) or BDD (behaviour driven development) techniques. They iterate quickly, but they don’t iterate in a vaccuum. Before they code, they write the test first. (Or at least that’s my understanding after taking that Coursera course.) To do agile, we have to first have our success criteria—a fluid set that changes over time, of course—set down.
Success criteria, however, are sorely missing in our case: We just don’t have them. We know something is wrong, but we haven’t really defined what we mean by right. So no matter how short our iterations are, we still can’t be doing agile; if there’s a word for what we’re trying to do, we can probably call it hacking.
And yes, this came out of that project too.