Questions Answer
Questions Answer
Prepared by :
Ali Hussein Hameed
Lecture 2 : Agile Methodology
Q1. Define the Agile methodology in your own words. How does it differ fundamentally from
traditional software development models?
Answer :
Agile methodology is an iterative and incremental approach to software development that
emphasizes flexibility, collaboration, and customer feedback. Instead of delivering the final
product all at once, Agile breaks the project into smaller cycles called sprints, with continuous
reassessment and adaptation.
• Flexibility: Agile embraces changes, while traditional models resist change after the
planning phase.
• Delivery: Agile delivers working software frequently; traditional models deliver only at
the end.
Q2. What are the four core values of the Agile Manifesto, and why are they significant?
Answer:
Significance:
These values shift the focus from rigid planning and documentation to collaboration, flexibility,
and delivering value quickly. They encourage teams to be adaptive and responsive to customer
needs, leading to higher success rates in dynamic environments.
Q3. Identify three principles of the Agile Manifesto and explain how they contribute to project
success.
Answer:
Q4. Compare Agile and Waterfall in terms of customer involvement and risk management.
Risk Risks are addressed early through Risks are often identified late,
Management iterative feedback and continuous sometimes only during final
testing. testing.
Agile’s continuous involvement and frequent testing reduce the chance of major failures, while
Waterfall is more prone to surprises near the end of the project.
Q6. Which type of project would be more suitable for the Waterfall model, and why?
Answer:
Projects with clearly defined requirements and minimal expected changes are suitable for the
Waterfall model. Examples include:
• Government contracts
Reason:
Waterfall's linear and structured nature works well when the project scope is stable and
regulatory documentation is crucial.
Q7. Describe the main roles in Scrum and their responsibilities.
Answer:
1. Product Owner:
2. Scrum Master:
3. Development Team:
Q8. What distinguishes Extreme Programming (XP) from other Agile frameworks?
Answer:
XP focuses heavily on engineering practices to ensure high software quality. Key distinguishing
features include:
• Pair programming
• Continuous integration
• Refactoring
XP emphasizes technical excellence, simplicity, and rapid feedback more than other Agile
frameworks.
Q10. What are two major challenges organizations face when adopting Agile practices? Suggest
possible solutions.
Answer:
1. Resistance to Change:
o Solution: Provide Agile training, involve stakeholders early, and showcase quick
wins.
2. Lack of Agile Expertise:
o Solution: Hire or train Agile coaches; start with pilot projects to build internal
capability.
Q11. Many large enterprises (Google, Microsoft, Spotify) use Agile. What advantages does Agile
provide for such organizations?
Answer:
• Higher Customer Satisfaction: Frequent releases and customer input ensure alignment
with market needs.
• Improved Team Morale: Empowered, self-organizing teams often experience higher job
satisfaction.
Q12. Imagine you are leading a startup team. Would you adopt Scrum, Kanban, or XP as your
main Agile framework? Justify your choice.
Answer:
Justification:
• Scrum offers structured roles and ceremonies, ideal for new teams needing guidance.
• Short sprints allow for rapid delivery and feedback, crucial in early-stage products.
However, as the team matures, incorporating practices from XP (like TDD) or Kanban (for flow
management) can enhance productivity.
3 – Scrum Framework
Answer:
Scrum is a lightweight, iterative, and incremental framework used to manage complex software
development. It is one of the most widely used frameworks that embody the Agile methodology.
Relationship to Agile:
Scrum implements Agile principles and values by organizing work into time-boxed iterations
called sprints, promoting regular inspection, adaptation, and collaboration. It provides a
structured way to apply Agile practices.
2. Name the three main roles in Scrum and briefly describe each.?
Answer:
1. Product Owner:
o Manages the product backlog and ensures the development team builds the right
product features.
2. Scrum Master:
3. Development Team:
1. Product Backlog:
o A prioritized list of features, enhancements, and fixes that might be needed in the
product.
2. Sprint Backlog:
o A list of tasks or items the team commits to completing in the current sprint.
3. Increment:
o The sum of all completed work at the end of a sprint, which must be in a usable
state.
Purpose:
Artifacts support transparency, provide a shared understanding of work, and allow inspection and
adaptation during Scrum events.
4. Why does Scrum require defined roles instead of letting the team self-organize completely?
Answer:
Scrum promotes self-organization within clearly defined roles to ensure accountability and role
clarity. Defined roles:
• Allow specialization (e.g., Product Owner focuses on value, Scrum Master on process,
Team on delivery).
Complete lack of role definition can lead to overlap, inefficiencies, and blurred accountability.
5. List and explain two advantages and two challenges of using Scrum.
Answer:
Advantages:
o Frequent testing and feedback cycles ensure issues are caught early.
2. Higher Customer Satisfaction:
o Continuous involvement and delivery of usable increments align closely with user
needs.
Challenges:
o Teams unfamiliar with Scrum may struggle to understand or respect the distinct
roles.
Answer:
The Sprint Retrospective is a meeting held at the end of each sprint where the Scrum team
reflects on the past sprint to:
7. How might Scrum’s emphasis on transparency conflict with corporate cultures that value
hierarchical control?
Answer:
Scrum promotes open communication, visibility, and shared decision-making, which may:
Such cultural misalignments can cause resistance to Scrum, especially if managers feel a loss of
control or influence.
8. In large multi-team projects, how can Scrum’s principle of small, self-organizing teams be
scaled effectively?
Answer:
Scaling frameworks like Scrum of Scrums, SAFe (Scaled Agile Framework), LeSS (Large-Scale
Scrum) are used. They maintain Scrum principles while:
The core idea remains: teams stay small and autonomous, while coordination is layered for scale.
9. What might happen if the Product Owner and Scrum Master roles are combined into one
person?
Answer:
Combining these roles introduces conflicting responsibilities:
• The Scrum Master protects the team from external pressure and ensures process integrity.
Consequences:
10. If a sprint fails to deliver a working increment, what lessons should a Scrum team extract?
Answer:
Key lessons include:
1. Scope Management:
o Was the sprint backlog realistic? Did the team overcommit?
o Were any blockers left unresolved? Were risks identified and mitigated?
3. Team Collaboration:
o Did the team communicate effectively and support each other?
4. Process Adjustments:
The goal is not blame but continuous learning and adaptation for better performance in future
sprints.
Main Objective:
To improve software quality and responsiveness to changing customer requirements through
frequent releases, simple design, and rigorous testing practices.
Answer:
1. Pair Programming:
Two developers work together at one workstation. One writes code while the other
reviews in real time. This enhances code quality and knowledge sharing.
2. Test-Driven Development (TDD):
Developers write automated tests before writing the actual code. This ensures code
correctness and supports better design.
Answer:
1. Communication: Encourages open dialogue among team members and with customers.
2. Simplicity: Focus on doing only what is necessary today; avoid over-engineering.
3. Feedback: Continuous feedback from code, tests, and customers improves quality and
direction.
4. Courage: Willingness to make necessary changes, refactor code, or discard poor designs.
Conclusion: For long-term quality and shared learning, it likely improves effective productivity,
even if initial output appears slower.
Aspect XP Scrum
Roles No fixed roles beyond developers Defined roles (Scrum Master, Product
and customer Owner, Development Team)
Testing Emphasizes TDD and automated Testing is part of development but not as
tests prescriptive
Planning Continuous planning (Release & Sprint Planning at the start of each sprint
Iteration Planning)
6. Why is Test-Driven Development (TDD) considered both a design and a testing activity?
Answer:
TDD is considered both because:
• As testing: It validates that code works as expected through automated unit tests.
• As design: Writing tests first forces developers to think about the interface and
responsibilities of the code before implementation, leading to cleaner and more modular
designs.
Thus, TDD supports better code structure while ensuring test coverage.
7. How can pair programming enhance team learning but also introduce social friction?
Answer:
Managing this requires pairing rotation, psychological safety, and good team culture.
Answer:
In fast-paced startups, extensive testing might initially seem time-consuming, but it is highly
realistic and beneficial in the long term.
Balanced approach: Start with critical test coverage (TDD for core features), then expand testing
as the product matures.
9. XP encourages courage as a value. How does courage manifest in day-to-day software work?
Answer:
Answer:
• Reduced feedback: Teams may not know if the software is in a working state.
In XP, CI is essential to uphold its values of feedback, simplicity, and continuous delivery.
Answer:
Kanban is an Agile framework focused on visualizing work, limiting work in progress (WIP),
and optimizing flow. It originated from lean manufacturing (Toyota Production System) and is
adapted for software development and knowledge work.
Purpose:
To improve efficiency, reduce bottlenecks, and enable continuous delivery through incremental,
evolutionary change—without disrupting existing processes.
2. Explain what a Kanban board is and its typical columns.
Answer:
A Kanban board is a visual tool used to track the flow of tasks through various stages of work.
It helps teams manage tasks efficiently and spot delays or overloads.
Typical Columns:
Answer:
WIP limits:
• Encourage collaboration, as team members help unblock tasks instead of starting new
ones.
Result: Fewer partially done tasks and more finished work delivered consistently.
4. How could a Kanban board help you in managing your personal study tasks?
Answer:
A Kanban board can:
Answer:
1. Task overload – Team members become spread too thin, reducing quality and focus.
2. Delays – Tasks pile up in progress and take longer to finish.
Answer:
Kanban allows organizations to start with their current process and make incremental
improvements over time. There is no need to replace existing workflows or roles immediately.
7. How can analytics from a Kanban board (e.g., cycle time, throughput) inform strategic
decisions?
Answer:
• Cycle Time: Measures how long a task takes from start to finish. Helps identify delays
and optimize workflow.
• Throughput: Number of tasks completed in a given time. Useful for forecasting delivery
capacity.
• Cumulative Flow Diagrams (CFDs): Show task distribution across stages over time to
spot bottlenecks.
These metrics enable data-driven decisions about resource allocation, team capacity, and
process improvements.
8. Compare how Scrum and Kanban handle planning and estimation.
Estimation Uses story points or time Estimation is optional; flow metrics like
estimates in sprint planning cycle time are often used instead
Answer:
2. Minimal structure: Without roles or ceremonies, coordination in large teams may become
inconsistent.
4. Less emphasis on team dynamics: Doesn’t define roles or events like Scrum does, which
may affect alignment.
Kanban can scale, but it requires discipline, clear policies, and support systems to function well
at enterprise level.
10. How can Kanban be integrated with Scrum to create a hybrid Agile approach?
Answer:
This hybrid is often called “Scrumban”, combining structure from Scrum with flow efficiency
from Kanban.
• From Scrum: Retain roles (Product Owner, Scrum Master), sprint planning, and
retrospectives.
• From Kanban: Introduce WIP limits, visualize work, and use metrics (e.g., cycle time).
• Use Cases: Ideal when teams want Scrum’s structure but need flexibility and flow
control.
Lecture 6 – Lean Software Development
1. What is Lean Software Development?
Answer:
Lean Software Development (LSD) is an Agile-based methodology derived from lean
manufacturing principles (especially from Toyota). It focuses on delivering value to the
customer efficiently by eliminating waste, empowering teams, and promoting continuous
improvement.
It emphasizes flow efficiency, learning, and adaptability, aiming to build better software faster
and with fewer resources.
1. Eliminate Waste
2. Build Quality In
3. Create Knowledge
5. Deliver Fast
These principles guide lean thinking in software environments to improve performance, quality,
and responsiveness.
Answer:
Lean reduces waste by:
Answer:
Empowered teams:
5. Which Lean principle is most relevant for modern AI/IoT systems, and why?
Answer:
“Create Knowledge” is most relevant.
Reason:
AI and IoT involve emerging technologies, experimentation, and high uncertainty. Lean
encourages:
This aligns perfectly with the iterative and data-driven nature of AI/IoT development.
6. How can “decide as late as possible” coexist with the need for early project planning?
Answer:
Lean balances flexible decision-making with responsible planning:
By deferring irreversible decisions, teams can remain adaptable without being directionless.
8. In software contexts, what constitutes “waste”? Provide examples.
Answer:
Waste is any activity that does not add value to the customer.
Examples:
Answer:
Lean and Agile share values like customer focus, continuous improvement, and
collaboration.
9. Explain how “build integrity in” supports software security and reliability.
Answer:
“Build integrity in” means integrating quality and security throughout the development
process, not adding them later.
This proactive approach prevents flaws, reduces risks, and builds trustworthy software.
10. What are the biggest challenges in applying Lean principles in traditional
organizations?
Answer:
1. Cultural Resistance:
2. Siloed Departments:
3. Overemphasis on Documentation:
o Traditional environments may value documentation over working software or
feedback loops.
4. Fear of Failure:
o Lean encourages experimentation and learning from mistakes, which can be hard
in risk-averse cultures.
Overcoming this requires:
Strong leadership, lean training, cross-functional teams, and incremental adoption of lean
practices.