How Software Products Are Built