Just Because It Works Doesn’t Mean It’s Right.

When I was in college, Computer Science was a Major in Math with a concentration in Computer Science. There were two introductory, lower-division computer science classes. After that, everything else was a 4000-level “Topics” class. They offered the standard fare for these days: compiler design, operating system design, system development methodologies, programming languages, etc.
The first one of these classes I took was (effectively) a class in Pascal, the popular teaching language of the day. The assignments were pretty simple, and often mathematical. I remember doing a fibonacci series, numerical integration, input processing, etc. One of the early programs the professor graded came back with some surprising grades for some of the students. They raised their hands. “Professor,” they said, “I got the same answer you did, but you gave me a C- on the program. The program works, how come I got a C?”
I then got one of the best lessons of my IT career. The professor sat down on the desk and looked slowly across the class. “Here’s something you need to learn now,” he said. “Just because it works doesn’t mean it’s right!”
In IT, we should have more significant standards than just working. Is it maintainable? Is it simple? Is it profitable? Does it make sense? Is it stable? Is it scalable if it needs to be?
Too many solutions I see today just “work.” We need to get past that to get real benefit from our IT.