analysis of increment one in January, increment two in June, and
increment three in September. Just when increment three starts up, we are at the testing stage of increment one and the coding stage of increment two. Joint application development (JAD): JAD is more of a technique than a complete methodology. It can be utilized as part of any of the other methodologies discussed here. The technique consists of one or more end users who are then folded into the software development team. Instead of an adversarial software-developer end-user dynamic, the effect is to have the continued, uninterrupted attention of the person(s) who will ultimately be using the system. Reverse engineering: This technique is used to (1) understand a system from its code, (2) generate documentation base on the code, and (3) make desired changes to the system. Competitive software companies often try to reverse engineer their competitor s software. Reengineering: Business goals change over time. Software must change to be consistent with these goals. Reengineering utilizes many of the techniques already discussed here. Instead of building a system from scratch, the goal of reengineering is to retrofit an existing system to new business functionality. Object oriented: Object-oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP) are very different from what we ve already discussed. In fact, you will need to learn a whole new vocabulary as well as new diagramming techniques. Agile: Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, and a time-boxed iterative approach while also encouraging rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight interactions throughout the development cycle. The book Agile Manifesto introduced the term in 2001. Since then, the Agile Movement, with all its values, principles, methods, practices, tools, champions, practitioners, philosophies, and cultures, has significantly changed the landscape of the modern software engineering and commercial software development in these Internet times.