dv nce, nd progress is me sured g inst pl n ( contr ct). a a a a a a a a a f a a a a a a a 7 a • Agile pl nning is increment l, nd it is e sier to ch nge the process to re lect ch nging customer requirements. • a a a a Strategies
developing software by doing it and helping others do it. Through this work we have come to value: n Individuals and interactions n n Working software Customer collaboration n Responding to change over processes and tools over comprehensive documentation over contract negotiation over following a plan While there is value in the items on the right, we value the items on the left more. 14 The 12 Principles of Agile
satisfy the customer through early and continuous delivery of valuable software. Working software is the primary measure of progress. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Continuous attention to technical excellence and good design enhances agility. Business people and developers must work together daily throughout the project. Simplicity – the art of maximizing the amount of work not done – is essential. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The best architectures, requirements, and designs emerge from self-organizing teams. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
softw re comp ny develops sm ll or medium-sized • Now d ys, sever l softw re products nd pps re sm ll or medium-sized; therefore, they re developed using n gile ppro ch. a a a a a a a a a a a a a a a ff a a a a a a a a a a a a a a a 17 a • Custom system development within n org niz tion where the customer cle rly commits to becoming involved in the development process nd where there re few extern l rules nd regul tions th t ect the softw re.
m n ge ble nd underst nd ble chunks. • Unst ble requirements do not hold up progress. • The whole te m h s visibility of everything, nd consequently, te m communic tion is improved. a a a a a a a a a a a a a a a 18 a • Customers see on-time delivery of increments nd g in feedb ck on how the product works.
tible with the leg l ppro ch to contr ct de inition (requirement speci ic tion) th t is commonly used in l rge comp nies. • Agile methods re most ppropri te for new softw re development r ther th n softw re m inten nce (document tion). Yet the m jority of softw re costs in l rge comp nies come from m int ining their existing softw re systems. a a a a a a a a a a a a a a a a a a f a a a a a a a a a a f a a a a a 19 a • Agile methods re designed for sm ll co-loc ted te ms, yet much softw re development now involves worldwide distributed te ms.
satisfy the customer through early and continuous delivery of valuable software. Working software is the primary measure of progress. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Continuous attention to technical excellence and good design enhances agility. Business people and developers must work together daily throughout the project. Simplicity – the art of maximizing the amount of work not done – is essential. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The best architectures, requirements, and designs emerge from self-organizing teams. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
nd distinct ph ses of speci ic tion nd development. A ph se h s to be completed before moving on to the next ph se. • Type: Line r model. • Recommended for: Embedded systems nd L rge systems(developed by sever l p rtner comp nies) a a a a a a a a a f a a a a a ff a a a a a a a a a 24 a • Dis dv nt ge: the di iculty of ccommod ting ch nge fter the process is underw y.
terf ll where inste d of moving down in line r w y, the process steps re bent upw rds fter the coding ph se. While the test is just one of ive steps in W terf ll, it looks like pr ctic lly h lf of the process in the V-model. • Type: Line r model. • Recommended for: well-suited for projects th t must m int in strict de dline nd meet key milestone d tes throughout the process. Ex mple: medic l device industry a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 26 a • Dis dv nt ge: s me s w terf ll a f The V-Model
hence, void nce of Risk is enh nced. • Evolution ry model • Recommended for: (1) Good for l rge nd mission-critic l projects. (2) Strong pprov l nd document tion control. (3) Signi ic nt ch nges re expected (rese rch nd explor tion). • Doesn’t work well for sm ller projects. • Doesn’t work well when users re unsure of their needs a a a a a a a a f a a a a a a a a a a a a 28 a • Doesn’t work well when requirements re complex a a a The Spiral Model
of nd test design options. system used to demonstr te concepts • Evolution ry model a a a a a a a a a a a a 30 f • Recommended for: prototype c n be used to help with requirements elicit tion nd v lid tion; or in design processes to explore options nd develop UI design. a a Prototyping
ctivity into pieces. ▪ Type: Iter tive model (it could include p r llel). ▪ Recommended for: F cilit te getting customer feedb ck on the development work th t h s been done. a a a f a a a a a a a a a a a ff a a a a a a a a a a 33 a ▪ Dis dv nt ges: (1) it could be not cost-e ective to produce documents th t re lect every version of the system; (2) System structure tends to degr de s new increments re dded. Unless time nd money re spent on ref ctoring to improve the softw re, regul r ch nge tends to corrupt its structure.
Copyright. These slides may be used only as study material for CSC 5100 within the California State University system. They may not be distributed or used for any other purpose.