Software Process: Characteristics, Technology and Environments