Which is how many times the programming results are correct. This depends on the theoretical accuracy of the algorithms, and the minimization of program errors such as errors in resource management (eg cache overflows) and logical errors.
Extent to which programming anticipates problems due to errors (not bugs). This includes situations such as incorrect, inappropriate, or corrupted data, unavailability of needed resources such as memory, operating system services, network connections, user error, and unexpected power outages.
The ease with which the programming can be used for its intended purpose or even in some cases for unexpected purposes. This includes a wide range of textual, graphic and sometimes hardware elements that improve and complete the user interface of the program.
Ease of programming modification by its current or future developers in order to make improvements, customizations, fix bugs and security holes, or adapt it to new environments.
Measure the system resources that programming consumes (processor time, memory space, slow devices such as disks, network bandwidth, and even user interaction to some extent) the less the better. This also includes careful resource management eg cleaning temporary files and eliminating memory leaks.