The following properties  highlights some features which makes a quality computer program regardless of what development approach is used in its design and implementation.


Efficiency of a program can be measured by the amount of resources that it consumes,  for example  the size of memory it requires in order to function properly , the time it takes to complete its various operations or the network bandwidth it requires . An efficient programs tends to use less memory proportional to the level of task it accomplishes. Efficient programs are easy to extend and maintain in the long-term .


Reliability of a program is the measure of how  likely it is that the program will  produce correct results. This largely depends on the underlying algorithms that has been used in it's implementations. A program can be made more reliable by using the most appropriate set of data structures during it's development and minimizing programming and logic errors. Rigorous testing can also help a big deal  in ensuring that the program is reliable and will not crash or produce inappropriate results for all possible inputs.


Readability is the ease with which a human reader can comprehend the purpose, control flow and the operation of the source code. A program should be written  with future readers and maintainers in mind including the programmer(s).

A legible program is easy to maintain and debug in future, it also helps solve most problems which might be encountered in future. A program can be made legible by using comments as necessary and documenting  the program including it's various parts  such as functions and classes. One should also use descriptive identifiers and avoid short ones such as those which contains only one letter.

There is a saying in programming, i don't know whether to call it a joke , which goes like

At the time of writing , anyone present can understand a non-documented program.

After 3 months only God and the programmer can.

After 6 months only God can.

Write programs with your future self in mind!


This is the ease with which a program can be modified e.g adding new features ,removing existing features, fixing bugs etc  without crashing it or  impairing its  functionality. Good initial practices such as documenting and commenting alongside an appropriate development approach can help a big deal in program's maintenance. 


This is how well a program can anticipate and catch exceptions. Exceptions are  unexpected errors which might happen in the program due to external factors such as power outages, user errors , network connection errors and trying to interact with non-existent resources such as files. 


Usability of a program is how easy  a user can use the program to perform it's intended purpose. Program's usability can be improved by adding textual or graphical features which improves it's clarity and intuitiveness. 


Scalability of a program is the ability to handle an increasing amount of work with increasing efficiency. A scalable program can accommodate increasing user base, larger data sets and increasing workloads without compromising on performance


Security of a program refers to the program's ability to protect itself and the user's data from unauthorized access, alteration or destruction. A secure program should have strong authentication and authorization mechanisms, input validation and output sanitization to prevent attacks . It should also be regularly updated to fix vulnerabilities and to keep up with new threats.