2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

Size: px
Start display at page:

Download "2. True or false: In Scrum all the requirements for the project are known prior to the start of development."

Transcription

1 CTC-ITC 310 Program Management California State University Dominguez Hills Fall 2018 Instructor: Howard Rosenthal Assignment 5 A Deeper Look At Agile Methodologies Answer Sheet Each question is worth 10 points unless otherwise indicated. 1. What is Scrum? Scrum is a single-team process framework used to manage product development The framework consists of roles, events, artifacts and rules that uses an iterative agile delivery approach to deliver working products within timeboxes of one month or less Scrum defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal It challenges assumptions of the "traditional, sequential approach to product development, and enables teams to self-organize by encouraging physical colocation or close online collaboration of all team members, as well as daily faceto-face communication among all team members and disciplines involved 2. True or false: In Scrum all the requirements for the project are known prior to the start of development. False. A key principle of Scrum is the dual recognition that customers will change their minds about what they want or need (often called requirements volatility) 3. Describe the Scrum development team? The development team is a cross-functional self-organizing development team that can deliver the product without other outside help should include the stakeholders The development team is responsible for delivering potentially shippable product increments every sprint (the sprint goal). The team has from three to nine members who carry out all tasks required to build the product increments (analysis, design, development, testing, technical writing, etc.) Although there will be several disciplines represented in the team, its members are referred to generically as developers To avoid potential confusion that this only refers to programmers, some organizations call this a delivery team and its members just team members. The development team in Scrum is self-organizing, even though there may be interaction with other roles outside the team, such as a project management office (PMO) 4. Describe the Product Owner in Scrum. 1

2 The Product Owner represents the product's stakeholders and the voice of the customer; and is accountable for ensuring that the team delivers value to the business. Defines the product in customer-centric terms (typically user stories), adds them to the product backlog, and prioritizes them based on importance and dependencies. 5. List three communications responsibilities of the Product Owner. Communication tasks of the Product Owner to the stakeholders include: Demonstrating the solution to key stakeholders who were not present at a sprint review Defining and announcing releases Communicating team status Organizing milestone reviews Educating stakeholders in the development process Negotiating priorities, scope, funding, and schedule; Ensuring that the product backlog is visible, transparent, and clear 6. List five responsibilities of the Scrum Master. The Scrum Master is accountable for removing impediments to the ability of the team to deliver the product goals and deliverables and is not a traditional team lead or project manager but acts as a buffer between the team and any distracting influences. Responsibilities include: Ensuring that the Scrum framework is followed Helping the Product Owner maintain the product backlog in a way that ensures the needed work is well understood so the team can continually make forward progress Helping the team to determine the definition of done for the product, with input from key stakeholders Coaching the team, within the Scrum principles, in order to deliver high-quality features for its product Promoting self-organization within the team Helping the Scrum team to avoid or remove impediments to its progress, whether internal or external to the team Facilitating team events to ensure regular progress Educating key stakeholders in the product on Scrum principles Coaching the development team in self-organization and cross-functionality 7. What is a sprint? A sprint (or iteration) is the basic unit of development in Scrum The sprint is a timeboxed effort; that is, it is restricted to a specific duration The duration is fixed in advance for each sprint and is normally between one week and one month, with two weeks being the most common 8. What questions are answered by each team member during the daily Scrum? What did I complete yesterday that contributed to the team meeting our sprint goal? 2

3 What do I plan to complete today to contribute to the team meeting our sprint goal? Do I see any impediment that could prevent me or the team from meeting our sprint goal? 9. What happens at the sprint review? At the sprint review, the team: Reviews the work that was completed and the planned work that was not completed Presents the completed work to the stakeholders (a.k.a. the demo) The team and the stakeholders collaborate on what to work on next 10. What are the key features of the Kanban approach? Flexibility Shortened cycle times Focus on continuous delivery Increased productivity and quality Increased efficiency with fewer bottlenecks Team member focus Reduction of waste 11. What are the three work-flow steps in a Kanban workflow? To Do In Progress Done 12. What does the Kanban Board allow us to do? A Kanban board is a tool used to visualize work and optimize the flow of the work among the team. 13. Compare Scrum and Kanban in terms of cadence, release methodology, roles, key metrics, and change philosophy. Factor Scrum Kanban Cadence Regular, fixed length Continuous flow Release Methodology At the end of each sprint, Continuous delivery after approval by Product Owner Roles Product owner, Scrum Master, development team No fixed roles aside from Product Owner Key Metrics Velocity Cycle time Change Philosophy Don t change forecast during a sprint Change can happen at any time 3

4 14. List and describe 5 Extreme Programming principles. Incremental planning Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available and their relative priority The developers break these stories into development "Tasks Small Releases The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release Simple Design Enough design is carried out to meet the current requirements and no more Test first development An automated unit test framework is used to write tests for a new piece of functionality before functionality itself is implemented Refactoring Code refactoring is the process of restructuring existing computer code changing the factoring without changing its external behavior Refactoring improves nonfunctional attributes of the software All developers are expected to refactor the code continuously as soon as possible code improvements are found. This keeps the code simple and maintainable Pair Programming Developers work in pairs, checking each other s work and providing support to do a good job Collective Ownership The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the developers own all the code. Anyone can change anything Continuous Integration As soon as work on a task is complete, it is integrated into the whole system. After any such integration, all the unit tests in the system must pass Sustainable pace Large amounts of over-time are not considered acceptable as the net effect is often to reduce code quality and medium-term productivity. On-site Customer A representative of the end-user of the system (the Customer) should be available full time for the use of the XP team. In an extreme programming process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation 15. What are the six primary feature-driven development (FDD) roles? Project manager Chief architect Development manager 4

5 Chief programmer Class Owner and/or Domain expert 16. What are the outputs of the FDD overall model development? The result of the process is the object model which includes Class diagrams focusing on model shape. That is, what classes are in the domain, how are they connected to one another and under what constraints Methods and attributes identified are placed in the classes Sequence Diagram(s), if any Model notes to capture why a particular model shape was chosen and/or what alternatives were considered 17. What are the outputs of the FDD when building a features list? The result of the process is the Features List which includes A list of subject areas For each subject area, a list of the business activities within that subject area For each business activity step, the feature to satisfy the step 18. Why does FDD differ from traditional Agile in preferring individual class ownership? There is someone responsible for the conceptual integrity of that class. As enhancements are made, the class owner ensures that the purpose and design of the class is not compromised There is an expert available to explain how a specific class works. This is especially important for complex or business-critical classes The class owner typically implements a required change faster than another developer that is not as familiar with the class The class owner has something of his or her own that he or she can take personal pride in 19. How does FDD address the issue of one developer waiting a long time for other developers to make changes? Firstly, in FDD, class ownership implies responsibility not exclusivity and a class owner may allow another developer to make a change to a class they own. The big difference is that the class owner is aware of, and approves of, the change and is responsible for checking that the change is made correctly The other strategy that FDD uses to enable effective feature-by-feature development with individual class ownership is the idea of dynamically formed feature teams. 20. What is the design package in FDD composed of? 5

6 A covering memo, or paper, that integrates and describes the design package such that it stands on its own for reviewers The referenced requirements (if any) in the form of documents and all related confirmation memos and supporting documentation. The Sequence diagram(s) Design alternatives (if any) The object model with new/updated classes, methods and attributes The generated output for the class and method prologues created or modified by this design Calendar/To-Do task-list entries for action items on affected classes for each team member 21. What items are fixed in the Iron triangle in the Dynamic Systems Development Method? DSDM Fixes cost, time and quality on the iron triangle. 22. What is a Scrum of Scrums. The Scrum of Scrums is a technique to scale Scrum up to large groups (over a dozen people), consisting of dividing the groups into Agile teams of 5-10 Each daily Scrum within a sub-team ends by designating one member as "ambassador" to participate in a daily meeting with ambassadors from other teams, called the Scrum of Scrums Depending on the context, ambassadors may be technical contributors, or each team's Scrum Master, or even managers of each team 23. What is Large Scale Scrum (LeSS)? LeSS is Scrum applied to many teams working together on one product Large-Scale Scrum (LeSS) isn t new and improved Scrum nor is it Scrum at the bottom for each team, and something different layered on top Rather, it s about figuring out how to apply the principles, purpose, elements, and elegance of Scrum in a large-scale context, as simply as possible Like Scrum and other truly Agile frameworks, LeSS is barely sufficient methodology for high-impact reasons 24. Describe the Scaled Agile Framework (SAFe). SAFe synchronizes alignment, collaboration, and delivery for multiple Agile teams Scalable and configurable, SAFe allows each organization to adapt it to its own business needs It supports smaller-scale solutions employing practitioners, as well as complex systems that require thousands of people An extensive body of knowledge, SAFe describes the roles, responsibilities, artifacts, and activities necessary to implement Lean-Agile development 25. Describe systems wide thinking in the SAFe environment. 6

7 Systems wide thinking is a holistic approach to analysis that focuses on the way that a system's constituent parts interrelate and how systems work over time and within the context of larger systems The systems wide thinking approach contrasts with traditional analysis, which studies systems by breaking them down into their separate elements. Systems wide thinking can be used in any area of research and has been applied to the study of medical, environmental, political, economic, human resources, and educational systems, among many others System wide thinking Assumes variability and changes, so preserve options Builds incrementally using an Agile methodology Bases milestones on objective evaluation of previously developed systems Visualizes and limit work in progress Unlocks and motivate workers (we discuss this in a later lesson) Decentralizes decision making Bonus. Describe three ways that a program to build a large-scale academic progress tracking system might change after project start-up. 7