adaptive software development adaptive software development asd is a software development process that grew out of the work by jim highsmith and sam bayer on rapid application development rad it embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs software development core activities processes requirements design engineering construction testing debugging deployment maintenance paradigms and models agile cleanroom incremental prototyping spiral v model waterfall methodologies and frameworks asd devops dad dsdm fdd iid kanban lean sd less mdd msf psp rad rup safe scrum semat tsp up xp supporting disciplines configuration management documentation software quality assurance sqa project management user experience practices atdd bdd cco ci cd ddd pp standup tdd tools compiler debugger profiler gui designer modeling ide build automation release automation infrastructure as code testing standards and bodies of knowledge babok cmmi ieee standards iso 9001 isoiec standards pmbok swebok itil glossaries artificial intelligence computer science electrical and electronics engineering vte adaptive software development replaces the traditional waterfall cycle with a repeating series of speculate collaborate and learn cycles this dynamic cycle provides for continuous learning and adaptation to the emergent state of the project the characteristics of an asd life cycle are that it is mission focused feature based iterative timeboxed risk driven and change tolerant as with rad asd is also an antecedent to agile software development the word speculate refers to the paradox of planning it is more likely to assume that all stakeholders are comparably wrong for certain aspects of the projects mission while trying to define it during speculation the project is initiated and adaptive cycle planning is conducted adaptive cycle planning uses project initiation informationthe customers mission statement project constraints eg delivery dates or user descriptions and basic requirementsto define the set of release cycles software increments that will be required for the project collaboration refers to the efforts for balancing the work based on predictable parts of the environment planning and guiding them and adapting to the uncertain surrounding mix of changes caused by various factors such as technology requirements stakeholders software vendors the learning cycles challenging all stakeholders are based on the short iterations with design build and testing during these iterations the knowledge is gathered by making small mistakes based on false assumptions and correcting those mistakes thus leading to greater experience and eventually mastery in the problem domain adaptive software development a collaborative approach to managing complex systems highsmith ja 2000 new york dorset house 392pp isbn0932633404 agile project management creating innovative products addisonwesley jim highsmith march 2004 277pp isbn0321219775 lev virine michael trumper 2007 project decisions the art and science management concepts isbn9781567262179 adaptive sd software engineeringa practitioners approach roger pressman bruce maxim isbn9780078022128 