Extreme Programming in Practice