Agile Software Development Methodologies

1067 Words5 Pages
PART C: Research – Agile Methodologies 1. Introduction Agile software development methodologies are based on iterative development whereby requirements and solutions evolve through collaboration between self-organizing cross-functional teams. It is used to structure, plan and control the process of developing an information system. There are several software methods also known as agile techniques such as Scrum, Extreme Programming, Adaptive Software Development and Lean Software Development. An agile manifesto is a document used to uncover better ways of software development by implementation and following specific values and principles. Through this work; developers have come to value individuals and interactions over processes and tools,…show more content…
Feature-driven design (FDD) is an iterative and incremental software development process that follows the principles of the agile manifesto. The aim is to develop high-level features, scope and domain object models in order to plan, design, develop and test the specific requirements and tasks based on the overarching feature that they belong to. However, there are advantages and disadvantages to using this type of software development process. To begin with, requirements organized by functional area must be fairly well understood and so a design is created. From the design is derived a feature list at which point the iterative implementation cycles can…show more content…
Extreme Programming (XP) Kent Beck, Ward Cunningham and Ron Jeffries formulated extreme Programming in 1999. The other contributors are Robert Martin and Martin Fowler. There are four basic values in XP: Communication, Simplicity, Feedback, Courage. Principles • Rapid feedback • Assume Simplicity • Incremental Changes • Embrace Change • Quality Work The four basic activities of Extreme Programming are coding, testing, listening, and designing. Fundamentals of XP include: 1. Writing unit tests before programming and keeping all of the tests running at all times. 2. Integrating and testing the whole system--several times a day. 3. Producing all software in pairs, two programmers at one screen. 4. Starting projects with a simple design that constantly evolves to add needed flexibility and remove unneeded complexity. 5. Putting a minimal system into production quickly and growing it in whatever directions prove most valuable. Advantages; • Rapid development. • Immediate responsiveness to the customer’s changing requirements. • Focus on low defect rates. • System returning constant and consistent value to the customer. • High customer satisfaction. • Reduced costs. • Team cohesion and employee satisfaction.
Open Document