Project management Flashcards

Last part of the software engineering module

1
Q

Why do software engineering projects fail?

A

Poor planning
Unclear requirements
Scope creep
Insufficient communication with end client

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is agile software development?

A

Flexible and iterative process to creating software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the core values of agile software development

A

Individuals and interactions over process and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why use agile software development

A

Increase team productivity
Visability
Improve adaptability of code
Business and IT alignment
Collaboration with client

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Why might agile not make projects faster and cheaper?

A

Too much time on prototyping and not working on actual software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why might agile make projects faster and cheaper?

A

Working software sooner by iteration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Give three examples of agile software development

A

Scrum, Kanban and XP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explain Scrum

A

Uses sprint cycles where there is a plan for what each sprint will implement
Scrum master defines roles
Changes made at the end of each sprint

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explain Kanban

A

Kanban board is a list of features to implement
Roles are fluid, project manager is optional
Changes made at any time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explain XP

A

Pick a user story, plan, develop, test and release software
Roles are fluid and project manager is optional
Changes made at any time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is traditional software development?

A

Rigid and inflexible approach to developing software. Uses top-down heavy approach to development (all planning, developing then testing)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Give two examples of traditional software engineering techniques

A

V-model and waterfall

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What do the software quality assurance team do?

A

Defining quality
Planning for quality
Checking for quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explain how QA team defines quality

A

Define product and process standards

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Give some examples of product standards

A

Documentation standards
Coding conventions
Class structures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Give some examples of process standards

A

Defined good practices at each stage of SE process (TDD, paired programming)

17
Q

Explain how the QA plans for qualty

A

Identify standards that will be met, recommending quality promoting processes for the project

18
Q

Explain how the QA checks for quality

A

Traditional inspection
Fagan inspection
Agile inspections

19
Q

Explain traditional inspection

A

Group of 3-7 people finding problems in code

20
Q

Explain fagan inspection

A

Inspection to find defects in code through predefined roles in structured meetings

21
Q

Explain agile inspection

A

Paired programming, more flexible and informal review of code

Retrospective inspection done at the end of each Scrum sprint

Postmortem inspection done at the end of the project review

22
Q

What is the problem with inspection?

A

Criticism of person who build code
People worry their performance will be judged
Don’t properly prepare for inspection
People try to discuss every problem as they find it

23
Q

What are the advantages of paired programming

A
  • No ownership of code
  • Informally spreads good practice among the team
  • Reviewing and coding at the same time
  • Separate coding and thinking
24
Q

Why do code conventions help maintain implementation quality?

A

-Increases the readability of code
-Creates a single style, rather than N peoples different styles
-Defines good practice

25
Q

Explain 3 main activities that the software quality team manage

A

Define quality
- Identify product and process standards

Plan for quality
- Identify standards and quality promoting processes for project

Check for quality
- inspections

26
Q

Explain how the four original values of the agile manifesto are represented in scrum, kanban and xp

A

Individuals and interactions over processes and tools
- Daily meetings with team to discuss progress, kanban board to show progress, paired program and collective ownership of code

Working software over comprehensive documentation
- Working software always output of every sprint, short iterations with minimal documentation

Customer collaboration over contract negotiation
- Continuous engagement wiht customer in sprint reviews (and QA with retrospective inspection)

Responding to change over following a plan
- Adjusting plans at the end of each sprint, roles are fluid and plans adjust at any point, continuous integration and responding to change