Additional Revision Questions
Here are some more questions to help you revise for the 302CEM exam. Unlike the past papers there are no model answers provided so you will need to refer back to the lecture slides.
- Why should developers adopt an agile methodology?
- Describe 3 risks when developing software and how agile methodologies help reduce this?
Define the following and explain how they influence team behaviour:
- Maslow's Stages of Competence
- Cognitive Bias
- The Dunning-Kruger Effect
Explain the difference between the Abilene Effect and groupthink.
- Explain what us meant by the GitFlow workflow.
- Use diagrams to help explain how GitFlow implements:
- Historic branches
- Feature branches
- Hotfix branches
- Releases
- Explain what is meant by the Forking Workflow
- How does it support very large development teams?
When working with Git
- What is a protected branch
- What protection can typically be added?
- Why is this important?
What is BDD?
- Describe the business-facing stack
- Describe the developer-facing stack
What is the "Iron Triangle of Planning" and what are the three limitations, explain each?
Describe both waterfall and agile approaches with respect to these limitations.
List and explain four problems with detailed specifications.
How does an agile methodology reduce risk?
- What is the difference between:
- Unit tests
- Integration tests
- Acceptance tests
- What is code coverage, why is this carried out and what are its limitations?
Explain, using a diagram, the process of User story mapping
What are its benefits?
Explain the following terms:
- Goal levels (Alistair Cockburn)
- Alternative stories
Explain the following terms used in agile development:
- Incremental development
- Proof of Concept
- Minimum viable product
- Timeboxing
How can the Black Sheep Effect impact team behaviour?
What is "Docker"?
Explain the purpose of the relationship between Docker Engine, Docker Compose and Docker Machine.
WHat is the purpose and what are the benefits of Docker Swarm.
MoSCoW is an acronym often used in agile planning:
- Expand the acronym and explain it
- Explain the concept of timeboxing
- How does the MoSCoW method relate to timeboxing?
List the four points in the agile manifesto.
For each, explain how it leads to better code.
Explain these key Scrum concepts and how they improve productivity:
- Product Backlog
- Sprint Backlog
- Sprint Review
- Daily Standup
Explain, using examples, how an Agile development process handles the following:
- Schedule slips
- Business misunderstood
- Business changes
- Project cancelled
- Buggy software
In agile development what is the role of the:
- Business team?
- Development team?
- Product owner?
- Scrum master?
What is the purpose of a Version Control System (VCS)?
With reference to the Git VCS, describe with the aid of diagrams:
- A Local workflow
- A Remote workflow
Explain the principles behind Behaviour-Driven Development (BDD)
What are the benefits in employing BDD?
Using an example, explain the purpose of a Domain-Specific Language (DSL)
Explain the purpose of Acceptance Testing
What are the benefits of writing acceptance tests?
Explain, with the use of examples, the differences between a Software Library and a Service.
Explain the principle behind Test-Driven Development (TDD)
What are the steps in the TDD process?
What are the benefits in applying TDD?
Explain the process of test-driven development
What is meant by:
- Behaviour-driven development
- Unit testing
- Acceptance testing
What is meant by The Cloud?
Explain two the benefits of Using the Cloud
Explain two drawbacks of using the Cloud
Define and explain three types of cloud services.
Continuous Integration and Continuous Deployment are often used by software development teams. For each of these:
- Explain the process
- What are the benefits
- What are the challenges to adoption