Extreme Programming and Agile Processes in Software Engineering