1/24
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is the Waterfall Approach?
Design approach where development is separated into phases, where each phase is ‘waterfalled’ to the next, and there is not back-tracking to previous phases
What is the Agile approach?
A disciplined design approach where each phase is re-entered continuously (spiral approach), and heavily emphasizes customer involvement
What are the principles of Agile Development?
-Deliver working software frequently (weeks to months)
-Progress is primarily measured by working software
-Simplicity - maximizing the amount of work not done
-Team reflection at regular intervals
What are the benefits of Agile development?
-Flexible to quickly changing priorities and features
-Increased team productivity
-Improved project visibility (no experts)
What is the Stakeholder Scrum role?
Anyone with an interest in the project; end users, project sponsors, anyone else you need to interface with to complete the project
What is the Product Owner/Project Manager Scrum role?
Holds the vision for the project, is responsible for maintaining, prioritizing, and updating the product backlog
What is the Scrum Master role?
Helps the team clear impediments from getting work done, could be the product owner or a member of the dev team
What is a Sprint?
A short iteration of developing features and fixing bugs, last about 2 weeks on average
What is Sprint Planning, and when does it occur?
Meeting with the team and product owner to plan a sprint, occurs before the sprint
What is Sprint Review?
Meeting with everyone involved to see where the project is and how to adapt as needed, occurs after the sprint
What is Sprint Retrospective?
Meeting of the dev team to inspect their last sprint, concentrating on how it was done
What are the components of Sprint Planning?
-Planning involves user stories, which are short descriptions of desired features, provide value to the customer, and are testable.
-PM’s and devs write requirements (specifications) and prioritize them
-Requirements are broken up into tasks, e.g. analyzing, design, coding, testing, spike (a short research task)
-Team members assign tasks
What do frequent short meetings in the Agile development approach help developers do?
-Understand requirements and write user stories to represent what the system will do
-Analyze and design the system
-Talk about the project
-Assign tasks
What is a Daily Standup?
A daily 15-minute or so meeting for team to share progress, report impediments, and make commitments
“What have I done since the last Scrum meeting?”
“What will I do before the next Scrum meeting?”
“What prevents me from performing my work as efficiently as possible?”
How does the Agile Development approach provide feedback to the developer?
-Regular code reviews
-Feedback after sprints
-Continuous integration
-Computed feedback from compiler, unit tests, and acceptance testing
What is continuous integration?
-Integrating code often to the system (with code reviews)
-Sync code with running system, which helps with consistency and version control
-Constant testing ensuring the system is running after change in the code
When are tests written during Agile development?
At the same time as the production code
What is regression testing?
Regular testing to ensure that changes in the code do not “break” previously working code
What can not be tested with unit tests?
GUIs, Networks, Views such as animations and drawings, and Strategies involving randomness
What is the On-Site Customer agile practice?
Act of having a real client as part of the team, which helps define the needs for the software, answers questions, prioritize features, and helps prevent developers from making decisions based off intuition about the client
What is Refactoring practice in agile development?
Restructuring code without changing functionality
-Change bad design when you see it
-Remove dead code
What is key idea surrounding refactoring?
Keep the refactoring small so that the code does not break each time
What is the agile practice Pair Programming?
Two people writing production code on one machine:
-Person #1 implements the method
-Person #2 thinks about potential improvements, test cases, issues, etc.
Pairs switch frequently, helping avoid any one person becoming an expert in any part of the system
What are the potential issues with pair programming?
-Not everyone gets along or likes pair programming
-Must schedule time to work synchronously together
-Requires tolerance for different styles of coding
What is the agile practice of Collective Ownership?
-All code can be changed by anyone on the team (no experts)
-Everybody is expected to fix bad code when they see it
-Everyone is responsible for the whole system