click below
click below
Normal Size Small Size show me how
CS 3354 Test 1 CH3
| Question | Answer |
|---|---|
| What are the shared characteristics of different agile methods of software development? | Specification, design, and implementation are interleaved. Built as increments with stakeholders involved, frequent delivery, extensive tool support (e.g. automated testing), and minimal documentation. |
| For what types of system are agile approaches to development particularly likely to be successful? | Small to medium systems built by a small co-located team (under ~10) of experienced developers, with easy customer access, changing requirements, and no need for a detailed up-front spec. |
| List the principles of agile methods. | Customer involvement, incremental delivery, people not process, embrace change, and maintain simplicity. |
| List questions that should be asked when deciding whether to adopt an agile method of software development. | 1) Is a very detailed spec and design needed before implementation? 2) Is incremental delivery with rapid customer feedback realistic? 3) How large is the system and team? |
| Name three important agile techniques that were introduced in extreme programming? | Pair programming, refactoring, and continuous integration. (Also: user stories, CRC cards, unit and acceptance testing, spike solutions; textbook adds test-first development.) |
| What is test-first development? | Writing the tests before the code. Tests are written as executable, automated programs and run each time new functionality is added, so problems are found as the code is being written. (Textbook, not in slides.) |
| What are the possible problems of test-first development? | Programmers prefer coding to testing and take shortcuts; some tests (e.g. user interfaces) are hard to write incrementally; hard to judge whether the test set is complete. (Textbook, not in slides.) |
| Why has the Scrum agile method been widely adopted in preference to methods such as XP. | Scrum focuses on managing iterative development rather than prescribing specific technical practices. It gives focus, transparency, adaptation, incremental value delivery, and trust. |
| What is a Scrum sprint? | A fixed-length development iteration, usually 2-4 weeks (one month or less), in which the team builds a potentially shippable increment. Sprint Planning, Daily Scrum, Review, and Retrospective happen inside it. |
| What are the barriers to introducing agile methods into large companies? | Customers who insist on a big specification, long feedback cycles, projects too big (over ~10 programmers), teams not co-located, overtime culture, and doing agile without its practices. (Slides list barriers to agile.) |