Skip to content
Permalink
df565cf51e
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
209 lines (123 sloc) 4.12 KB

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.


  1. Why should developers adopt an agile methodology?
  2. Describe 3 risks when developing software and how agile methodologies help reduce this?

Define the following and explain how they influence team behaviour:

  1. Maslow's Stages of Competence
  2. Cognitive Bias
  3. The Dunning-Kruger Effect

Explain the difference between the Abilene Effect and groupthink.


  1. Explain what us meant by the GitFlow workflow.
  2. Use diagrams to help explain how GitFlow implements:
    1. Historic branches
    2. Feature branches
    3. Hotfix branches
    4. Releases

  1. Explain what is meant by the Forking Workflow
  2. How does it support very large development teams?

When working with Git

  1. What is a protected branch
  2. What protection can typically be added?
  3. Why is this important?

What is BDD?

  1. Describe the business-facing stack
  2. 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?


  1. What is the difference between:
    1. Unit tests
    2. Integration tests
    3. Acceptance tests
  2. 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:

  1. Goal levels (Alistair Cockburn)
  2. Alternative stories

Explain the following terms used in agile development:

  1. Incremental development
  2. Proof of Concept
  3. Minimum viable product
  4. 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:

  1. Expand the acronym and explain it
  2. Explain the concept of timeboxing
  3. 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:

  1. Product Backlog
  2. Sprint Backlog
  3. Sprint Review
  4. Daily Standup

Explain, using examples, how an Agile development process handles the following:

  1. Schedule slips
  2. Business misunderstood
  3. Business changes
  4. Project cancelled
  5. Buggy software

In agile development what is the role of the:

  1. Business team?
  2. Development team?
  3. Product owner?
  4. Scrum master?

What is the purpose of a Version Control System (VCS)?

With reference to the Git VCS, describe with the aid of diagrams:

  1. A Local workflow
  2. 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:

  1. Behaviour-driven development
  2. Unit testing
  3. 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:

  1. Explain the process
  2. What are the benefits
  3. What are the challenges to adoption