CS308 Ch-3

Ace your homework & exams now with Quizwiz!

1. What led to the creation of agile methods in software development? Explain the main focus and aim of agile methods.

1. Agile methods were created in response to the limitations of traditional software development methods. The main focus of agile methods is on delivering working software in short iterations, with a focus on customer satisfaction and collaboration between team members.

10. How are user stories used in XP? Who is responsible for making decisions on requirements in this approach?

10. User stories are used in XP to capture requirements in a concise, non-technical manner. The customer is responsible for making decisions on requirements in this approach.

11. What is refactoring and why is it important in XP?

11. Refactoring is the process of improving code quality and design without changing its functionality. It is important in XP to maintain code quality and reduce technical debt.

12. Describe XP testing features. What is the role of the customer in the testing process?

12. XP testing features include continuous testing, pair testing, and acceptance testing. The customer plays a key role in the testing process by defining acceptance criteria and testing the software against those criteria.

13. What is test automation and why is it important in XP? How does it ensure that new code does not introduce errors?

13. Test automation is the use of software tools to automate the execution of tests. It is important in XP to ensure that new code does not introduce errors and to facilitate continuous integration. Test automation ensures that tests are executed consistently and efficiently.

14. What is the principal responsibility of software project managers?

14. Software project managers are responsible for planning, organizing, coordinating, and controlling the resources and activities required to develop software products.

15. What is the standard approach to project management?

15. The standard approach to project management involves defining project scope, developing a detailed project plan, and executing the plan according to schedule.

16. How does agile project management differ from plan-driven project management?

16. Agile project management emphasizes flexibility and adaptability, with a focus on continuous improvement, customer satisfaction, and rapid delivery of working software.

17. What is Scrum and what does it focus on?

17. Scrum is an agile framework for managing software development projects, with a focus on iterative, incremental development, and continuous delivery of high-quality software.

18. What are the three phases in Scrum?

18. The three phases in Scrum are planning, development, and delivery.

19. How long are sprints typically in Scrum?

19. Sprints in Scrum are typically two to four weeks long, with a consistent duration for each sprint throughout the project.

2. What are the values that agile methods prioritize in software development? Explain the importance of these values in the development process.

2. Agile methods prioritize four core values: individuals and interactions, working software, customer collaboration, and responding to change. These values are important because they prioritize the needs of the customer, promote teamwork and communication, and emphasize the importance of delivering working software.

20. What is the starting point for planning in Scrum?

20. The starting point for planning in Scrum is the product backlog, which is a prioritized list of features and requirements for the software product.

21. Who is involved in the selection phase of Scrum?

21. The product owner is responsible for selecting items from the product backlog and defining the requirements for each sprint.

22. What is the role of the Scrum master in Scrum?

22. The Scrum master is responsible for ensuring that the Scrum framework is followed, and for removing any impediments that may prevent the team from achieving its goals.

23. What happens during daily meetings in Scrum?

23. During daily meetings in Scrum, team members provide updates on their progress, identify any issues or challenges, and collaborate on solutions.

24. How does Scrum help with team communication?

24. Scrum helps with team communication by encouraging regular meetings and collaboration among team members, and by providing a framework for resolving issues and managing changes.

25. What benefits do customers gain from the Scrum approach?

25. Customers gain benefits from the Scrum approach, such as continuous delivery of working software, regular feedback and collaboration, and a focus on customer satisfaction.

26. How does Scrum establish trust between customers and developers?

26. Scrum establishes trust between customers and developers by ensuring transparency, collaboration, and regular feedback, and by providing a framework for managing changes and resolving issues.

27. What is the difference between plan-driven and agile project management?

27. Plan-driven project management follows a linear and sequential approach to software development, while agile project management emphasizes flexibility and adaptability, with a focus on rapid delivery of working software and customer satisfaction.

28. Explain the importance of documenting and assessing the lessons learned from a software project.

28. Documenting and assessing the lessons learned from a software project is important for identifying areas of improvement, refining project management processes, and sharing knowledge and best practices across the organization.

29. What is the main difference between scaling up and scaling out agile methods?

29. Scaling up involves increasing the scope of agile methods across multiple teams, whereas scaling out involves adding more teams to work on a single project.

3. How is agile development different from traditional software development methods? Discuss the benefits of adopting agile methods in software development.

3. Agile development differs from traditional software development methods in several ways, including its focus on iterative development, customer collaboration, and adaptability to changing requirements. The benefits of adopting agile methods in software development include faster time to market, improved customer satisfaction, and increased flexibility in response to changing market conditions.

30. Why is it important to maintain agile fundamentals when scaling agile methods?

30. Maintaining agile fundamentals when scaling up is important to ensure that the teams remain aligned, prioritize customer needs, and regularly deliver working software.

31. Why is the informality of agile development incompatible with the legal approach to contract definition commonly used in large companies?

31. The informality of agile development may clash with the legal requirements of contract definition in large companies, which typically require more formal documentation and agreements.

32. What are the key issues that need to be addressed when using agile methods for software maintenance?

32. Key issues in using agile methods for software maintenance include ensuring that changes do not cause unexpected issues and maintaining a focus on delivering value to the customer.

33. Why may problems arise when using agile methods for long-lifetime systems?

33. Problems may arise when using agile methods for long-lifetime systems due to the need for more extensive planning and documentation to ensure the long-term viability of the system.

34. How can you decide on the balance between plan-driven and agile processes in a project?

34. The balance between plan-driven and agile processes in a project can be decided by considering the project's goals, customer needs, and the team's experience and expertise.

35. What are the main constraints on the development of large systems using agile methods?

35. Constraints on the development of large systems using agile methods may include technical complexity, communication and coordination issues, and resistance to change in the organization.

36. Describe the key elements of a Scrum of Scrums approach to scaling agile methods.

36. A Scrum of Scrums approach to scaling agile methods involves coordinating multiple Scrum teams by appointing a representative from each team to participate in a higher-level Scrum.

37. What are some of the challenges that may be faced when introducing agile methods in large organizations?

37. Challenges when introducing agile methods in large organizations may include resistance to change, cultural differences, and communication and coordination issues.

38. How can cultural resistance to agile methods be addressed in organizations with a long history of using conventional systems engineering processes?

38. Cultural resistance to agile methods in organizations with a history of using conventional systems engineering processes can be addressed by involving stakeholders in the process, demonstrating the benefits of agile, and gradually introducing agile practices.

4. In what scenarios is agile development most suitable? Discuss the differences in applying agile methods in product development software products and apps and custom system development within an organization.

4. Agile development is most suitable for scenarios where requirements are likely to change or evolve over time, and where there is a need for flexibility and adaptability in the development process. The differences in applying agile methods in product development, software products and apps, and custom system development within an organization lie in the specific requirements and constraints of each scenario.

5. What are the potential challenges of adopting agile methods in software development? Discuss the strategies that can be employed to overcome these challenges.

5. Potential challenges of adopting agile methods in software development include resistance to change, lack of understanding or buy-in from stakeholders, and difficulty in maintaining momentum and focus. Strategies for overcoming these challenges include effective communication, stakeholder engagement and education, and a commitment to continuous improvement and learning.

6. Describe the spiral model proposed by Boehm in 1988. How does it differ from other software process models?

6. The spiral model is a software development model proposed by Boehm in 1988 that emphasizes risk analysis and mitigation. It differs from other models by being iterative and incorporating elements of both Waterfall and Agile models.

7. What is the main emphasis of the spiral model? In what situations is it applicable?

7. The main emphasis of the spiral model is on managing risk and addressing issues early in the development process. It is applicable in situations where there is a high degree of uncertainty and risk involved in the project.

8. Explain the key techniques used in component-based development in the spiral model. Give an example of a tool that is used in this approach.

8. Component-based development is a key technique used in the spiral model where components are developed and tested independently before being integrated into the larger system. An example of a tool used in this approach is Apache Ant, a build automation tool.

9. What is Extreme Programming (XP)? Describe some of the key features of this agile development method.

9. Extreme Programming (XP) is an agile software development methodology that emphasizes customer satisfaction and rapid feedback. Key features include continuous integration, pair programming, and test-driven development.


Related study sets

Human Geography - Fellmann Ch. 1

View Set

IEH Final Students Qs - Climate change & disease

View Set

Stereotypes, prejudice, and discrimination

View Set

Productions and Operations Management Final

View Set

I-Core Final Exam Review - in class tophats

View Set

Tema 2 - Las Ciencias y Las Tecnologías (Contexto 3)

View Set