Characterizing the software process: a maturity framework | Synapse