CS Philosophy (Can be double counted for both majors)

I would love to know your deep CS philosophical questions. Here’s one we debated in the office today:

At what percentage of affected users is an edge case no longer an edge case?

I think a hard set percentage would be arbitrary, and most likely wrong for many scenarios. But I think this can affected by a couple of things. If there are many use cases of your software, and serving as many of them as possible is critical, then the percentage will probably be low. Software related to insurance payments, saving lives, public sector (think Healthcare.gov) etc, must have all their grounds covered in order to serve the people it was intended to serve. So a small percentage of problems is an edge case.

For something less critical, or for an edge case that isnt serious, then the percentage of affected users could be high, maybe even 100%. If a game has a small bug for all of its users, then its no longer an edge case. But I think “edge case” in this scenario also relates to how serious a problem is. Whether you fix the bugs because of edge cases is partially dependent on how serious the issues are.

Relevant at hackathons:

  • At what point do you call a project finished?

This is something that I struggled with while I was a hacker because I typically finished the bare minimums of a project, but never had the motivation to keep adding onto it. If adding more features becomes more tedious and repetitive and doesn’t encourage learning, do I keep adding onto it? :thinking: