Software Processes and Agile Development Flashcards

1
Q

What is a software process?

A

A process identifies the activities that must be performed in order to achieve the desired outcome

A process organizes activities into stages or phases with gateways that defines the criteria when the process can move from one phase to another

A process defines roles that team members play while following a process

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

Software Process Components?

A

Activities (HOW)
Phases (WHEN)
Roles (WHO)
Artefacts (WHAT)

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

Plan Driven Processes?

A

Activities are planned in advance
Measured against the plan
Significant upfront engineering effort
Minimize changes

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

Agile Processes?

A

Planning is incremental and continually adapted as software is developed.

Change is embraced and mitigated with recurrent refactoring / rework.

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

Simplification of Reality?

A

Allows to better understand and analyze what is being modelled

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

Waterfall?

A

Each software activity is treated as a distinct phase of the process

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

Incremental?

A

The process is divided into iterations. Each iteration consists of all activities necessary for an executable deliverable

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

Integration and Configuration?

A

Activities center around assembly, configuration and customization of existing components.

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

Waterfall model was proposed as?

A

Winson Royce as a way to manage the development of large systems in 1970s

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

Waterfall model components?

A
Requirements Definition
System and Software Design
Implementation and Unit Testing
Integration and System Testing
Operation and Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Spiral Model?

A

Bohem 1988
Iterative process with Iterations that are designed to minimize risk
Uses evolutionary prototyping

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

RUP?

A

Rational Unified Process

Iterative development where each iteration includes all activities with different emphasis

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

Phases of RUP?

A

Inception,
Elaboration,
Construction,
Transition

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

Inception Phase?

A

Establish a business case and identify stakeholders and business requirements

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

Elaboration Phase?

A

Develop understanding, build requirement models, architecture and early system prototypes.

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

Construction Phase?

A

Emphasizes design, programming and testing activities

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

Transition Phase?

A

Taking the system from development to operation and developing user documentation

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

RUP Phases can be implemented based on which processes?

A

Plan Based: phases contain iterations of the same type

Agile: each iteration contain the each phases

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

Workflows in RUP?

A
Business Modelling
Requirements Modelling
Analysis and Design
Implementation
Testing
Deployment
Configuration and Change Management
Project Management
Environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Integration and Configuration?

A

Using or customizing general purpose systems

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

List General Purpose systems?

A

Customer Relationships Management Systems (CRMs)
Human Resources Management Systems (HRMs)
Financial Management Solutions (FMS)
Supply Chain Management
Enterprise Resource Planning (ERP)

22
Q

Vendors that provide the platform and consulting services?

A

Microsoft
SAP
PeopleSoft
Oracle

23
Q

Software Specification Activities & Artifacts?

A

Requirements Analysis
- Identify, elicit, discover requirements

Require Specification
- Define, describe, document requirements

Requirements Validation

  • Feasibility
  • Consistency
  • Completeness
24
Q

General model of the design process?

A

Architectural Design
Interface Design
Detailed Design
Database Design

25
Q

Software Validation Activities?

A

Component Testing
System Testing
User Testing

26
Q

When selecting a process what goals should be achieved?

A
Time to market
Cost
Quality
Predictability
Visibility
27
Q

Time to Market?

A

Increase development speed

28
Q

Cost

A

Effective use of resources

29
Q

Quality

A

Software development best practices

30
Q

Predictability

A

Effective planning and risk management

31
Q

Visibility

A

Communication, user satisfaction

32
Q

4 Dimensions of good software?

A

Process
People
Product
Technology

33
Q

Traditional Processes?

A

Develop a stable plan and follow it
- Focus on predictability

Minimize change

  • Changes lead to replanning
  • Changes in the plan can have unpredictable results

Minimize rework
- Decrease time to market by avoiding unnecessary rework

34
Q

Agile Processes?

A

Plan is small increments and adapt the plan often
- Focus on visibility and time to market

Embrace change no matter when it comes
- Future changes are irrelevant if the future is not planned

Embrace Rework (Refactoring)
- Rework is accepted as necessary cost of unpredictability
35
Q

2 Different Types of Prototyping?

A

Throwaway

Evolutionary

36
Q

Throwaway Prototyping?

A

Prototype is scrapped after it served its purpose

Used to test technologies, concepts, mitigate risks

37
Q

Evolutionary Prototyping?

A

Engineered and re-factored continuously and transformed into final product
A process of iterative and incremental development
When it gets enough critical mass it becomes the product

38
Q

Incremental Delivery?

A

System is developed iteratively
Several iterations make up a system increment
System increments are delivered and installed at the customer

39
Q

Challenges of Incremental Delivery?

A

Customer may not be able to use a partially developed system

Required system infrastructure and design can be hard to determine

40
Q

Processes need to be?

A

Measured,
Analyzed,
Improved
(Process improvement cycle)

41
Q

Capability Maturity Model?

A
Initial
Managed
Defined
Quantitatively Managed
Optimizing
42
Q

Motivation for Agile Development?

A

Fastest time to market
Unprecedented pace of technological change may force redevelopment despite best engineering efforts
Defining a reliable plan is hard and takes itself significant time and resources

43
Q

Agile Methodologies?

A

SCRUM
TDD
Pair Programming

44
Q

SCRUM?

A

Iterative and incremental project management methodology
Process is broken down into iterations whose input are requirements managed through a back-log
Estimation is performed in relative terms based on story points

45
Q

Test-Driven Development?

A

Increased emphasis on unit-testing and testability with significant effects on modularization and abstraction

46
Q

Agile Challenges?

A

Customer Involvement
Team Challenges
Product Challenges

47
Q

Customer Involvement?

A

Reliant on customer being available and involved when that is rarely the case
Single product owner or customer representative is not feasible when different people have different expertise

48
Q

Team Challenges?

A

Requires self-driven, senior developers for the same task
Without models, documentation and supporting artifacts the process relies on having the same people always involved.
Development team continuity is critical and cannot be guaranteed

49
Q

Product Challenges?

A

Incompatible with many types of systems and expectations of delivery
For systems that are informal, fast paced, one-time development with no large planned maintenance or evolution
Does not scale to large systems

50
Q

Decision Making Framework components?

A

Complex
Complicated
Chaotic
Simple

51
Q

Roles in Scrum Team?

A

Product Owner
ScrumMaster
Development Team