Among the principal attributes of any system are those which allow it to survive and succeed under conditions which change with the passage of time. A good software engineer, or softect, should be making a continuous and detailed study of the many available design technologies which lead to systems which are more adaptable than others. There are a number of measurable technical properties here, such as maintainability, portability and extendability.