Developing software applications requires developers to use some kind of process. While many have proposed 'the one and only' process, it is clear that no single process can ever satisfy all types of applications. Using process engineering allows a tailored process to be constructed to fit local conditions. Theory and practice of process engineering as applied to both object technology and agent technology is explored in detail.