|
|
|
|
|
by Chris_Newton
4554 days ago
|
|
Probably my favourite open-ended interview topic for programmers is asking them to rank various properties code might have in order of importance, and explain why they chose the order they did. For example, one possible list of properties might be conciseness, correctness, documentation, efficiency, maintainability, portability, readability, and testability. Often, I can learn a great deal about what sort of person I’m talking to just by watching them define their terms, decide what assumptions they think are necessary, and then reason through the resulting dependencies. I get the feeling that the parent posters (hercynium and catnaroek) might argue for quite different orders, but both with good reasons. |
|
A program that does not do what it's supposed to is of little value. This is a relative metric however, a program can do many valuable things right, yet have a few bugs.
But once a program does what we want, what else do we want from it? We want the ability to change it easily, so it can do even more things for us.
Maintainability is also a relative metric, and even harder to quantify than "correctness". However when looking at two ways of writing a specific part of a program, it is often easy to say which produces a more maintainable solution.