Adaptive Software Development: The practices of ASD are driven by a belief in continuous adaptation—a different philosophy and a different life cycle—geared to accepting continuous change as the norm. In ASD, the static plan design-build life cycle is replaced by a dynamic Speculate-Collaborate-Learn life cycle (see Figure 23.1). It is a life cycle dedicated to continuous learning and oriented to change, Revaluation, peering into an uncertain future, and intense collaboration among developers, Management and customers. ASD: It stands for Adaptive Software Development; it consists of three-phase cycles, which they are: 1. Speculate: using for planning, as a plan. 2. Collaborate: recognize and detect the importance of teamwork. 3. Learn: detect the mistakes and try to change the requirements during development phase. The main characteristic of ASD cycles are: a)Mission-Driven b)Component-Based c)Iterative d)Time-Boxed e)Change-Tolerant f)Risk-Driven There are three proceses: iterative development, feature-based planning, and customer focus group reviews There are four general categories of things to learn about at the end of each development iteration: - Result quality from the customer's perspective - Result quality from a technical perspective - The functioning of the delivery team and the practices team members are utilizing - The project's status Open Source Software Development: OSS: Software that gives users rights to run, copy, distribute, change and improve it as they see it, without them asking permission from or make payments to any external group or person”. Free as freedom: Freedom to study the code Freedom to improve the program Freedom to run the program anytime, for any purpose on any machine. Freedom to redistribute. Open source software is FreeOSS that uses any license approved by the Open Source Initiative (OSI) from their list of approved open source licenses Free OSS Licencse: GPL 55% Apache 8% BSD 7% Other 30% Why we use OSS? -Customizable -Improvable -Redistributable. -Runs Everywhere, for everyone. -Transparency. -Free !!! Communication is informal: -Community communications -Threaded discussion forums -Email (list servers) -Newsgroups -IRChat/Instant messages -Community digests (“Kernel Cousins”) Why OSS is sucessfull? -Collaboration is decentralized.Integration is controlled -Too many resources to fail -So many eyeballs looking at the code -Self-motivated , self-assigned programmers. -Large scale Peer Review -User Driven requirements Strengths and Limitations of OSSD: Strengths -Cheaper -Runs for Everyone , Everywhere Limitations -Product structure and Comprehension -Effective ways of incorporating requirements of non-developer users? -With larger scale, will coordination needs force adoption of “commercial” development techniques? -How to collaborate on “big” features? -How to respond to unanticipated events These are the following important drivers of open source software development: 1) Technological: robust code, faster development cycles, higher standards of quality, reliability and stability 2) Economical: the corporate need for shared cost and shared risk 3) Socio-political: scratching a developer’s “personal itch”, peer reputation, desire for “meaningful” work, and community oriented idealism. The OSS project consists of the following visible phases: 1. Problem discovery 2. Finding volunteers 3. Solution identification 4. Code development and testing 5. Code change review 6. Code commit and documentation 7. Release management