The perennially challenging processes for determining requirements, coding and testing.