Software Engineering 7 - Exam part 3 Flashcards
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
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
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
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
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
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
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
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
Explain Definition of Done (DoD) in scrum
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.
Explain Continuous Feedback and Inspection in scrum
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.
Explain Frequent Testing and Iterative Development in scrum
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.
Explain Prioritization of High-Value Work in scrum
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.
Explain Early Detection of Issues in scrum
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.
Explain Reduced Rework through Clarity in scrum
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.
Explain Time-Boxed Sprints and Clear Goals in scrum
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.
Explain Cross-Functional Teams in scrum
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.
Explain Sprint Retrospectives for Continuous Improvement in scrum
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.
Explain Self-Organizing Teams in scrum
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.
Explain Recognition and Frequent Wins in scrum
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.
Explain Supportive Environment in scrum
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.
Work-Life Balance in scrum
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.
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
- Individuals and interactions
- Customer collaboration
- Responding to change
- Working software
Describe the meaning of the concept “Individuals and interactions” in agile development
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.
Describe the meaning of the concept “Customer collaboration” in agile development
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.
Describe the meaning of the concept “Responding to change” in agile development
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.
Describe the meaning of the concept “Working software” in agile development
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.
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
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.
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)
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.
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)
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.
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)
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.