In all cases, however, the task that the algorithm is to accomplish must be definable. That is, the definition may involve mathematical or logic terms or a compilation of data or written instructions, but the task itself must be one that can be stated in some way. In terms of ordinary computer usage, this means that algorithms must be programmable, even if the tasks themselves turn out to have no solution. In computational devices with a built_in microcomputer logic, this logic is a form of algorithm. As computers increase in complexity, more and more software_program algorithms are taking the form of what is called hard software.
It is extremely important to continuously improve knowledge processes, by creating an environment through which they can evolve. This can only be achieved through coordination of diverse disciplines such as knowledge management, change management, expectations management, etc... It is crucial to establish an adequate process context (the combination of technologies, procedures, people, etc... that support the processes). The process context must incorporate feedback mechanisms, change evaluation procedures, process improvement methods and techniques and must be flexible, in order to be able to incorporate enhancements in an agile but controlled way.