Improving an Evolutionary Development Process A Case Study Erik Arisholm, Jon Skandsen, Knut Sagli and Dag I. K. Sjøberg
Evolutionary development • Incrementally evolving the system towards completion • Proposed as an efficient way to deal with risks • Identify the real needs of the customer as the system evolves • Experiences show some success in the application of evolutionary development • Few empirically based guidelines on how to apply such software processes in different contexts
Tools • Genova – Advanced CASE tool for object oriented analysis and design, dialog modelling, automated application and database generation • The Genova process is developed in conjunction with the Genova tool
The Genova Process • The aim was to define a smaller development process (than RUP) • Several processes to build upon were considered • Rational Unified Process is being adopted by a growing number of software development companies and • The Genova Process is a ”light weight RUP”
Industrial Case • The development of an automated customer service for Braathens frequent flyer program ”Wings” (Three tier application) • Process instrumentation – small number of processes and product measures – purpose: • Establish a quantitative baseline for improvement activities • Provide a means to assess process conformance • Evaluate the effect of improvement activities
Case Study Results • Significant amount of rework during the development of the middle-tier • 35% of coding contributed to increased module size for the second increment • Rework ratio of 65%
Discussion Rework • may be caused by new technology used in the project and mismatch between actual and promised quality • a certain part of rework is natural part of evolutionary development – too much can cause low productivity and unnecessary costs • rework should be balanced with product quality indicators (change request, customer satisfaction, etc. ) • The balanced view on initial rework may provide a meaningful baseline for improvement activities in future evolutionary development projects.
Discussion Process Conformance • Ensuring process conformance is important: – to achieve a predictable and stable process – to ensure the validity of the data, information, experience and knowledge that are acquired throughout the development process • Without a reasonable degree of process conformance it is difficult to determine the effect of process improvement activities • In the Braathen case: – testing were delayed and contributed to many last-minute changes – lack of process conformance was caused by informal initiation and execution of the Genova process and maybe lack of guidelines