Software Engineering 7 - Exam part 3 Flashcards

1
Q

Agile development methods focus on more efficient production. The goal is to develop methods to increase quality, reduce costs, increase productivity, and job satisfaction.
Describe how the objective “increase quality” is addressed in Scrum

A

Increase Quality
Scrum emphasizes building high-quality increments through several key practices:

Definition of Done (DoD)
Continuous Feedback and Inspection
Frequent Testing and Iterative Development

quality is increased through continuous feedback and testing

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

Agile development methods focus on more efficient production. The goal is to develop methods to increase quality, reduce costs, increase productivity, and job satisfaction.
Describe how the objective “reduce costs” is addressed in Scrum

A

Reduce Costs
Scrum helps reduce costs by minimizing waste and ensuring efficient use of resources:

Prioritization of High-Value Work
Early Detection of Issues
Reduced Rework through Clarity

costs are reduced by focusing on valuable work and early issue detection

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

Agile development methods focus on more efficient production. The goal is to develop methods to increase quality, reduce costs, increase productivity, and job satisfaction.
Describe how the objective “increase productivity” is addressed in Scrum

A

Increase Productivity
Scrum focuses on maintaining a productive team environment through efficient workflows:

Time-Boxed Sprints and Clear Goals
Cross-Functional Teams
Sprint Retrospectives for Continuous Improvement

productivity improves due to time-boxed sprints and cross-functional teams

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

Agile development methods focus on more efficient production. The goal is to develop methods to increase quality, reduce costs, increase productivity, and job satisfaction.
Describe how the objective “increase job satisfaction” is addressed in Scrum

A

Increase Job Satisfaction
Scrum fosters job satisfaction by promoting collaboration, autonomy, and recognition:

Self-Organizing Teams
Recognition and Frequent Wins
Supportive Environment
Work-Life Balance

job satisfaction rises from autonomy, collaboration, and recognition

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

Explain Definition of Done (DoD) in scrum

A

The Definition of Done specifies the criteria that each product increment must meet (e.g., passing tests, code reviews, documentation).
Example: A software development team ensures that all features meet testing and quality benchmarks before being considered “done,” which prevents bugs from accumulating.

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

Explain Continuous Feedback and Inspection in scrum

A

Scrum includes frequent Sprint Reviews where stakeholders provide feedback, and Sprint Retrospectives where the team reflects on improving processes.
Example: If stakeholders notice a feature that doesn’t align with their needs during a review, the team can adjust quickly instead of waiting until the end of the project.

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

Explain Frequent Testing and Iterative Development in scrum

A

By delivering small, tested increments at the end of each sprint, defects are identified and resolved early.
Example: A game development team tests new levels after each sprint to ensure smooth gameplay before expanding to more complex levels.

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

Explain Prioritization of High-Value Work in scrum

A

The Product Owner ensures that the most valuable features are prioritized in the Product Backlog. This prevents the team from spending time on low-priority features.
Example: A mobile app team focuses on releasing a payment feature first, as it directly contributes to user satisfaction and monetization, instead of developing secondary features like theme customization.

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

Explain Early Detection of Issues in scrum

A

Issues and bugs are identified early through continuous testing and stakeholder feedback, reducing expensive fixes later in the process.
Example: In a web development project, the team catches a performance issue during the second sprint rather than discovering it after the product launch, avoiding costly rework.

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

Explain Reduced Rework through Clarity in scrum

A

Regular communication in daily stand-ups ensures that the team remains aligned, preventing costly misunderstandings.
Example: A marketing automation platform development team synchronizes daily, ensuring their API implementation matches the external service specifications without unnecessary backtracking.

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

Explain Time-Boxed Sprints and Clear Goals in scrum

A

Sprints are time-boxed with specific goals, ensuring the team focuses on a manageable set of tasks without multitasking.
Example: A development team sets a sprint goal to complete a customer dashboard feature in two weeks rather than tackling unrelated items, leading to faster delivery.

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

Explain Cross-Functional Teams in scrum

A

Scrum teams are cross-functional, meaning they include developers, testers, and designers, which reduces handoffs and delays.
Example: A data visualization team includes both back-end and front-end developers, ensuring that new charts are built and styled within the same sprint.

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

Explain Sprint Retrospectives for Continuous Improvement in scrum

A

Teams hold retrospectives to identify and resolve productivity blockers after each sprint.
Example: A team notices that their build times slow down development, so they implement continuous integration tools to streamline the process.

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

Explain Self-Organizing Teams in scrum

A

Scrum teams decide how to approach their work and manage tasks, giving members autonomy and a sense of ownership.
Example: A software development team assigns tasks among themselves based on their strengths and preferences, creating a balanced and fulfilling workload.

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

Explain Recognition and Frequent Wins in scrum

A

By delivering working increments at the end of each sprint, team members can see the immediate impact of their work and celebrate their progress.
Example: After delivering a new feature for a shopping app, the team receives positive feedback from the Product Owner, reinforcing their sense of accomplishment.

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

Explain Supportive Environment in scrum

A

The Scrum Master removes obstacles and facilitates communication, ensuring team members feel supported.
Example: When a front-end developer encounters a dependency issue, the Scrum Master helps coordinate with external teams, so the developer can focus on their tasks.

17
Q

Work-Life Balance in scrum

A

Scrum’s focus on realistic sprint goals prevents overwork and burnout.
Example: By limiting the work-in-progress (WIP) items during the sprint, a machine learning team avoids late nights and maintains a steady pace.

18
Q

Which of the following are key concepts in agile development? (4p)
Describe the meaning of each concept.
* Documentation
* Individuals and interactions
* Requirement specification
* Customer collaboration
* Functionality
* Processes and tools
* Responding to change
* Following a plan
* Working software

A
  • Individuals and interactions
  • Customer collaboration
  • Responding to change
  • Working software
19
Q

Describe the meaning of the concept “Individuals and interactions” in agile development

A

Meaning: Agile prioritizes people and teamwork over rigid processes or tools. Effective communication and collaboration within the team and with stakeholders are essential for success.

Example: During a sprint, team members discuss challenges and adjust their approach collaboratively, ensuring smoother progress and better results.

20
Q

Describe the meaning of the concept “Customer collaboration” in agile development

A

Meaning: Agile values continuous interaction with the customer to ensure the product aligns with their needs and expectations. This replaces the traditional approach of lengthy requirement gathering followed by development without ongoing feedback.

Example: A Product Owner meets with the customer every sprint to review progress and refine the Product Backlog based on their feedback.

21
Q

Describe the meaning of the concept “Responding to change” in agile development

A

Meaning: Agile embraces change, even late in the development process. Teams adapt to evolving requirements to deliver value, rather than rigidly following a predefined plan.

Example: A new competitor feature inspires a change in product priorities. The Agile team adjusts their current sprint to include a similar feature.

22
Q

Describe the meaning of the concept “Working software” in agile development

A

Meaning: Agile measures progress through the delivery of functional software. Frequent, incremental releases ensure the product is usable and provides value early.

Example: Instead of presenting lengthy design documents, a team delivers a working login feature at the end of the first sprint, allowing users to test it immediately.

23
Q

For the following system, recommend the most suitable generic software process model to manage its development. Justify your recommendation by considering the unique requirements, challenges, and characteristics of the system type in question:

  • Mobile App for Social Networking
A

Mobile App for Social Networking – Agile Model

Justification:
Social networking apps often require frequent updates, user-driven changes, and quick feature iterations based on user feedback and market trends.
The Agile Model’s short sprints, continuous feedback, and incremental releases allow the team to quickly adapt to evolving requirements.

Example: A social networking app may start with core features like user profiles and posts, with subsequent iterations adding real-time messaging and photo-sharing.

24
Q

For each of the following systems, recommend the most suitable generic software process model to manage its development. Justify your recommendation by considering the unique requirements, challenges, and characteristics of the system type in question:

  • Banking System Software (1p)
A

Banking System Software – Waterfall Model

Justification:
Banking systems require high reliability, security, and regulatory compliance, making a structured and well-documented approach necessary.
Since the requirements are typically well-defined and changes are costly, the Waterfall Model’s fixed phases (requirements, design, implementation, testing, and maintenance) ensure a rigorous approach.

Example: A banking system for managing customer transactions must undergo extensive testing and validation to meet legal and security standards.

25
Q

For each of the following systems, recommend the most suitable generic software process model to manage its development. Justify your recommendation by considering the unique requirements, challenges, and characteristics of the system type in question:

  • Embedded System for Medical Devices (1p)
A

Embedded System for Medical Devices – Incremental Development

Justification:
Medical device systems need modular development and thorough testing to ensure safety and performance.
Incremental Development allows the team to build, test, and validate smaller functional modules (e.g., a heart-rate monitor module) before integrating them into the full system.
This approach supports compliance with medical regulations while avoiding overwhelming complexity.

Example: A wearable medical device’s software might deliver initial increments for vital sign monitoring and later integrate advanced alert systems.

26
Q

For each of the following systems, recommend the most suitable generic software process model to manage its development. Justify your recommendation by considering the unique requirements, challenges, and characteristics of the system type in question:

  • Air Traffic Control System (1p)
A

Air Traffic Control System – Incremental Development

Justification:
Air traffic control systems are complex, safety-critical, and require continuous development and validation.
Incremental Development enables the delivery of functional components (e.g., radar display, communication interface) incrementally, ensuring they are thoroughly tested and integrated step-by-step.
This approach helps manage the system’s complexity by focusing on smaller pieces rather than attempting to deliver everything at once.

Example: The initial increment might focus on displaying flight data, with subsequent increments adding tracking capabilities and safety alerts.