A functionally good program creates desired value for its users, is as easy as possible and as complex as needed, and adheres to legal, ethical and business standards. A technically good program is robust, efficient and maintainable. An organisation that produces good programs is organised specifically to do so, and employs procedures that maximise this goal.
To be considered robust, a program should be configureable, perform tests, deal with edge cases, handle errors, and report failures.
To be considered efficient, a program should be
To be considered maintainable, a program should be readable, be modularised, contain tests, be commented, be free from side-effects. On average ten times more time is spent reading a program than writing it.