220 likes | 314 Views
Agile Methodologies in Software Development for a Fast Moving World. Giancarlo Succi Center for Applied Software Engineering Free University of Bolzano / Bozen Giancarlo.Succi@unibz.it. Bolzano, 17 nd October 2002. Uncertainty = Volatility. Volatility of the demand
E N D
Agile Methodologies in Software Development for a Fast Moving World Giancarlo Succi Center for Applied Software Engineering Free University of Bolzano / Bozen Giancarlo.Succi@unibz.it Bolzano, 17nd October 2002
Uncertainty = Volatility • Volatility of the demand • Volatility of the requirements • Volatility of HW support • Volatility of the operating environment Prof. Ing. G. Succi
Tutti hanno i cellulari, PC, Internet, … WAP, GPRS, UMTS, non decollano … Crisi politiche, economiche e finanziarie The great 80s: We have the PCs! The great depression Where are we? ?? End of the cold war Internet, Cellular phone, Year 2000, Euro Volatility of the demand … Prof. Ing. G. Succi
Volatility of requirements • The development of a software system presents lots of possible alternatives to the client/customer • S/he may think to take advantage of all of them Prof. Ing. G. Succi
Volatility of HW Support • From the site of Intel • Comparison of the performances of the PCs in the last three years Prof. Ing. G. Succi
Volatility of the SW environment 1992: Windows 3.11 1995: Windows 95 1996: Windows NT4 1998: Windows 98 2000: Windows 2000 2001: Windows XP Prof. Ing. G. Succi
Strategic choices • Defensive approach or • Agressive approach ? Prof. Ing. G. Succi
Defensive strategy Minimize wrong choices Cover all possible details of the requirements of the customer Check over and over to ensure that there are no errors Plan the use of resources Define the relationships with the customer in a clear and unambiguous way Fear driven Aggressive strategy Maximize the winning moves Try to make the system easy to modify and integrate Keep everything agile and fit to avoid making mistakes Motivate the resources Involve the customer with a win-win approach Vision driven Alternatives Prof. Ing. G. Succi
Aggressive strategies • WinWin • WinWin Spiral • Agile methodologies • SCRUM • Crystal • XP • … Prof. Ing. G. Succi
WinWin model Prof. Ing. G. Succi Image taken from http://sunset.usc.edu/research/WINWIN/EasyWinWin/
WinWin Spiral • The idea is to develop the system in sequences of refinements up to the final solution • Each refinement is made in direct contact with the user, repeating completely the negotiation of the requirements of the system • The choice of what to insert is based on a “WinWin model” between developer and customer Prof. Ing. G. Succi Image taken from B. Boehm, A. Egyed, J. Kwan, D. Port, A. Shah, R. Madachy (1998) “Using the WinWin Spiral Model – A Case Study,” IEEE Computer, July
The Cycles of WinWin Spiral Prof. Ing. G. Succi Image taken from B. Boehm, A. Egyed, J. Kwan, D. Port, A. Shah, R. Madachy (1998) “Using the WinWin Spiral Model – A Case Study,” IEEE Computer, July
The Heart of the WinWin Spiral • Clear identification of the customer • Focused analysis on the requirements of the customer • Short, incremental releases • Constant repetition of a feasibility analysis with the customer, to ensure to stay on target Prof. Ing. G. Succi
XP – eXtreme Programming • The ideas of WinWin Spiral are taken to the latest consequences in XP • XP defines in details a sequence of development principles and of development practices • This is different from the WinWin Spiral • The WinWin Spiral identifies a general project philosophy, leaving the details to the implementors Prof. Ing. G. Succi
Values and principles of XP • 4 Values: • Simplicity • Communication • Feedback • Courage • Basic principles: • Fast feedback • Assume simplicity • Incremental changes • Acceptance of the presence of variation • Quality Prof. Ing. G. Succi
XP practices • Planning game • Short releases • Metaphor • Simple design • Testing • Refactoring • Pair programming • Collective code ownership • Continuous integration • 40 hours working week • On-site customer • Coding standards Prof. Ing. G. Succi
Structure of an XP project Prof. Ing. G. Succi From Don Wells’ site http://www.extremeprogramming.org/
Our studies on Pair Programming Prof. Ing. G. Succi
Early Point at which decisions are taken Late A global perspective: plan driven vs. agile More plan-driven More agili Waterfall Incremental Spiral WinWin Spiral XP Rigid, end-to-start dependencies More start-to-start and end-to-end dependencies Prof. Ing. G. Succi
What to do Developers Image taken from http://www.tightrope.it/user/chefare/archivcf/ultimonum.htm and freely modified by Giancarlo Succi Prof. Ing. G. Succi
First: understand the application context • Key stakeholders • Time availability and operational flexibility of the customer • Application domain of the system to produce and associated constraints –performances, reliability, development time, etc. Prof. Ing. G. Succi
Then: A few reference points • Customer focused development … • or, even better, • Customer centric development • Quality first • The most important asset of managers are developers • And remember … there are always 4 variables to play with in development: quality, time, cost, features • Managers select at most 3 out of 4! Prof. Ing. G. Succi