80 likes | 283 Vues
You should use iterative developmen only on projects that you want to succeed. - Martin Fowler. Iterative, Evolutionary, and Agile. S.E. as a Layered Technology. Goals desired results, e.g., quality Process
E N D
You should use iterative developmen only on projects that you want to succeed. - Martin Fowler Iterative, Evolutionary, and Agile
S.E. as a Layered Technology • Goals • desired results, e.g., quality • Process • set of activities performed toward a specific purpose • Methods • technical details on how to perform parts of the process • Tools • support for the programmer to carry out methods
Software Development Process • an approach to building, deploying and possibly maintaining software • Unified Process(UP) • popular iterative software development process for OO systems • Rational Unified Process (RUP) • popular refinement of the Unified Process • UP is open to methodologies: XP, refactoring, continuous integration, etc.
Iterative Development • development is a series of short (e.g., two weeks) iterations (e.g., mini-projects) • Phase1: Requirements->Design ->Implementation->Release • Phase2: Requirements->Design ->Implementation->Release • Phase3: Requirements->Design ->Implementation->Release
Comparision • Final result is a production-grade subset of the final system • Not a throw-away prototype • Not an experimental proof of concept • Sytem may not be usable until after multiple iterations
Embrace Change • Change on a project is inevitable; your project is not a special case • Solve a small part of the entire project successfully instead of solving the entire project (unsuccessfully) • Promotes early feedback • Drive to goal one step at a time • Important part of open-source development
Benefits • Less failure, better productivity, lower defect rates ..... • Early mitigation of risk • Early visible progress • Early feedback and user engagement • Complexity is better managed • Leads to improvements in process, not just product
Waterfall is Evil • Attempts to complete all of one stage before moving to another • Attempts to make a schedule of the unknown • Assumes that specifications are predictable, stable, and can be planned (25-50% changes) • Early advice on using Waterfall was based on speculation and hearsay • Avoid “Waterfall Thinking”