Chapter 5: Agile Development

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Agile vs. Opensource

-- Agile is small -- Open source is huge, distributed teams, and larger scale projects -- Both are collaborative, shared vision, continued integration

Common characteristics of Agile processes (7)

1 ) Short releases and iterations -- Divide the work into small pieces -- Release software to customer as often as possible 2 ) Incremental Design -- Don't do a complete design up front (it's going to change anyway and you don't have enough info) -- Delay design decisions as long as possible 3 ) User Involvement -- Don't produce formal, immutable docs at the start -- Instead, ask the users for constant feedback 4 ) Minimal Documentation -- Source code is considered documentation 5 ) Informal communications -- Maintain constant communication, but do it informally 6 ) Change -- Assume everything will change

Problems with traditional processes

-- Many traditional models were created decades ago at a time when big projects and companies were the norm (e.g., aerospace) -- Times have changed, and smaller companies and projects prevail -- Today, technology changes quite rapidly, and traditional models cannot cope with changing requirements -- Traditional models have the hidden assumption that the requirements are well understood -- Traditional models rely on extra development effort to make up for lost time -- Traditional models have a lot of waste or duplication of effort (e.g., lots of doc is produced, but never looked at and is quickly out of date)

Key Characteristics of XP (Know for FINAL)

-- Short releases → every 2-4 weeks -- Simple design → don't spend a lot of time up front on a complicated design because things are going to change in unanticipated ways -- Test-Driven Development → write unit tests before writing the code (unbiased test cases) -- Design Improvement → Places an emphasis on refactoring (restructuring) or improving design and code as you go along -- Pairwise Programming → Two programs on one keyboard. Why? Catch mistakes -- Collective Ownership → Anyone can change anything at any time -- Continuous integration → Always have a working copy -- On-site Customer → Customer is a team member -- Coding Standards → Consistent naming conventions, etc. -- Documentless → No traditional documentation is produced. Instead, the code ant the test suites are considered documentation

Extreme Programming (XP)

-- example agile process -- DEF: A model for small teams facing the pressure of changing requirements -- Places a lot of emphasis on business value -- To achieve this, it relies on frequent customer communication -- Balances cost demand with program effort

Analysis of XP

-- Pairwise programming → are we wasting personnel or gaining quality? -- Customer Communication → are we wasting everyone's time or gaining quality? -- Documentless → saving time or lost without a road map?

Agile processes

A family of software development methodologies

Why is agile development necessary?

Agile development lame about due to the limitations and assumptions in traditional, heavyweight models (this was from notes? need new definition)


Ensembles d'études connexes

Kata Penghubung (Konjungsi): Koordinatif (k.) dan Subordinatif (s.) - (1)

View Set

Southwest Airlines Public Announcements 2019

View Set

Unit 28: Mechanics and Maintenance

View Set

DHN 101 Exam 2 practice questions Ch. 6 Fats and Lipids

View Set

Linear Algebra: Systems of equations

View Set

даты по Всемирной истории

View Set

Nurs. 128 Brittany Long Core Vsims Pre & Post Questions

View Set

Colorado Journeyman practice test 2

View Set