Software Development in the 21st century