Five states of software development