0% found this document useful (0 votes)
14 views20 pages

Questions Answer

The document discusses various software development methodologies, primarily focusing on Agile, Scrum, Extreme Programming (XP), and Kanban. It outlines key principles, roles, practices, and advantages of these methodologies, emphasizing flexibility, customer involvement, and continuous improvement. Additionally, it addresses challenges organizations face when adopting Agile practices and suggests solutions for effective implementation.

Uploaded by

d-fbuser-540196662
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views20 pages

Questions Answer

The document discusses various software development methodologies, primarily focusing on Agile, Scrum, Extreme Programming (XP), and Kanban. It outlines key principles, roles, practices, and advantages of these methodologies, emphasizing flexibility, customer involvement, and continuous improvement. Additionally, it addresses challenges organizations face when adopting Agile practices and suggests solutions for effective implementation.

Uploaded by

d-fbuser-540196662
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software development techniques

(Questions with answers)

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.

Key Differences from Traditional Models (like Waterfall):

• 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.

• Customer Involvement: Agile involves customers throughout the project; traditional


models engage them mostly at the beginning and end.

• Documentation: Agile values working software over comprehensive documentation,


unlike traditional models that prioritize detailed documentation.

Q2. What are the four core values of the Agile Manifesto, and why are they significant?
Answer:

The four core values of the Agile Manifesto are:


1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

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:

1. Customer satisfaction through early and continuous delivery of valuable software:


Ensures frequent feedback and allows for course correction, increasing the likelihood of
meeting customer needs.

2. Welcome changing requirements, even late in development:


Improves adaptability and relevance of the final product in a fast-changing market.

3. Deliver working software frequently (every few weeks):


Encourages regular progress, maintains momentum, and builds customer confidence.

Q4. Compare Agile and Waterfall in terms of customer involvement and risk management.

Aspect Agile Waterfall

Customer Continuous; customers are involved in Limited; customers are mainly


Involvement planning, reviews, and feedback loops. involved at the start and end.

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

• Infrastructure software (e.g., aviation or defense systems)

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:

o Defines and prioritizes the product backlog.


o Represents stakeholders and ensures the team delivers value.

2. Scrum Master:

o Facilitates Scrum ceremonies.

o Removes impediments and ensures adherence to Scrum practices.

3. Development Team:

o Cross-functional team responsible for delivering potentially shippable increments.

o Self-organizing and collaborative.

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

• Test-driven development (TDD)

• Continuous integration

• Refactoring

XP emphasizes technical excellence, simplicity, and rapid feedback more than other Agile
frameworks.

Q9. How does Kanban ensure continuous improvement in software projects?


Answer:

Kanban promotes continuous improvement through:

• Visualizing work: Teams use boards to track progress.

• Limiting work in progress (WIP): Prevents bottlenecks and ensures focus.


• Monitoring flow: Metrics like lead time help identify inefficiencies.
• Incremental changes: Teams make small, gradual changes to improve the process.

These practices foster a culture of reflection and ongoing optimization.

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:

• Faster Time to Market: Regular iterations enable quicker releases.

• Better Quality: Continuous testing and feedback improve product quality.

• Higher Customer Satisfaction: Frequent releases and customer input ensure alignment
with market needs.

• Adaptability: Agile allows large teams to pivot based on business 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:

I would adopt Scrum for a startup team.

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.

• The emphasis on prioritization helps focus limited resources on high-value features.

However, as the team matures, incorporating practices from XP (like TDD) or Kanban (for flow
management) can enhance productivity.

3 – Scrum Framework

1. What is Scrum, and how does it relate to Agile methodology?

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 Responsible for maximizing product value.

o Manages the product backlog and ensures the development team builds the right
product features.

2. Scrum Master:

o Serves as a facilitator and coach for the team.


o Ensures the team follows Scrum practices and removes any impediments.

3. Development Team:

o A cross-functional group responsible for delivering a potentially shippable


product increment by the end of each sprint.

o Self-organizing and collaborative.

3. What are Scrum artifacts, and what is their purpose?


Answer:
Scrum artifacts are tools used to provide transparency and track progress. The three primary
artifacts are:

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:

• Prevent confusion over responsibilities.

• Facilitate smooth coordination and decision-making.

• 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:

1. Improved Product Quality:

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:

1. Difficult Role Adoption:

o Teams unfamiliar with Scrum may struggle to understand or respect the distinct
roles.

2. Requires Cultural Change:

o Organizations with hierarchical or rigid processes may resist Scrum's emphasis on


collaboration and transparency.

6. What is the purpose of the Sprint Retrospective?

Answer:
The Sprint Retrospective is a meeting held at the end of each sprint where the Scrum team
reflects on the past sprint to:

• Identify what went well and what didn’t.

• Discover areas for improvement.


• Develop a plan for making the next sprint more effective.

It fosters continuous improvement and team accountability.

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:

• Conflict with top-down control systems.

• Undermine rigid reporting structures.

• Challenge traditional authority, where information is tightly controlled.

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:

• Coordinating multiple teams through shared goals and integrated planning.

• Introducing roles (e.g., Release Train Engineer in SAFe) to manage interdependencies.

• Facilitating cross-team communication and synchronization.

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 Product Owner advocates for business priorities and value.

• The Scrum Master protects the team from external pressure and ensures process integrity.
Consequences:

• Compromised team autonomy.

• Reduced focus on process coaching.

• Potential bias toward business priorities at the cost of team health.

This role combination is not recommended in Scrum.

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?

2. Impediments and Risks:

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:

o Should estimation, sprint planning, or daily stand-ups be improved?

The goal is not blame but continuous learning and adaptation for better performance in future
sprints.

4 – Extreme Programming (XP)

1. What is Extreme Programming (XP) and its main objective?


Answer:
Extreme Programming (XP) is an Agile software development methodology that emphasizes
technical excellence, customer involvement, and frequent delivery through short iterations.

Main Objective:
To improve software quality and responsiveness to changing customer requirements through
frequent releases, simple design, and rigorous testing practices.

2. List and explain three key practices of XP.

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.

3. Continuous Integration (CI):


Code is integrated into the main repository multiple times a day, with automated testing
to detect issues early and avoid integration problems.

3. What are the five core values of XP?

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.

5. Respect: Team members value and support each other’s contributions.

4. Would pair programming improve or slow productivity in your team? Explain.


Answer:
It depends on the context and team dynamics.
• Improvement in productivity: If the team values collaboration, pair programming can
reduce defects, improve design quality, and speed up onboarding of new developers.

• Potential slowdown: In high-pressure environments or with mismatched skill levels, it


might feel slower due to constant collaboration overhead.

Conclusion: For long-term quality and shared learning, it likely improves effective productivity,
even if initial output appears slower.

5. Compare XP with Scrum.?

Aspect XP Scrum

Focus Technical practices and Project management and team collaboration


engineering quality

Iterations 1-2 weeks Typically 2-4 weeks

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:

Enhancing team learning:


• Promotes knowledge sharing between experienced and newer developers.

• Encourages continuous feedback and improves coding skills.

Introducing social friction:

• Can cause discomfort if personalities clash or if one partner dominates.

• Fatigue or tension may develop from constant collaboration without breaks.

Managing this requires pairing rotation, psychological safety, and good team culture.

8. In fast-moving startups, how realistic is XP’s emphasis on extensive automated testing?

Answer:
In fast-paced startups, extensive testing might initially seem time-consuming, but it is highly
realistic and beneficial in the long term.

• Pros: Prevents regressions, supports rapid changes, reduces firefighting.


• Challenges: Early-stage pressure may lead teams to cut corners.

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:

Courage in XP appears when team members:

• Refactor code that’s working but poorly structured.


• Speak up about technical debt or unrealistic deadlines.

• Admit mistakes and fix them openly.

• Challenge requirements that don’t make sense.

This value ensures transparency, quality, and long-term sustainability.

10. What are the risks of neglecting continuous integration in an XP environment?

Answer:

Neglecting CI can lead to:


• Integration conflicts: Delayed merges cause harder-to-resolve bugs.

• Undetected defects: Without frequent testing, bugs can accumulate.

• Reduced feedback: Teams may not know if the software is in a working state.

• Lower confidence in releases: Unreliable codebase delays deployments.

In XP, CI is essential to uphold its values of feedback, simplicity, and continuous delivery.

Lecture 5 – Kanban Framework

1. What is the Kanban framework and its purpose?

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:

1. To Do (Backlog) – Tasks waiting to be started.

2. In Progress – Tasks currently being worked on.

3. Testing/Review – Optional stage for quality assurance or peer review.


4. Done – Completed tasks.

Teams can customize columns based on their workflow.

3. How does limiting Work in Progress (WIP) improve productivity?

Answer:
WIP limits:

• Reduce multitasking, allowing team members to focus.

• Highlight bottlenecks, making it easier to resolve them.

• Improve flow efficiency, leading to faster task completion.

• 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:

• Visualize workload and priorities (e.g., assignments, exam prep).

• Track progress in real time.

• Avoid overload by limiting how many study tasks are in progress.

• Provide motivation, as moving tasks to "Done" gives a sense of accomplishment.


It supports better time management and task focus for students.
5. What dangers arise if a team ignores WIP limits?

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.

3. Hidden bottlenecks – Flow becomes unpredictable, and systemic issues remain


unnoticed.
4. Burnout – Overburdened team members may face stress and reduced morale.

WIP limits act as safeguards for sustainable productivity.

6. Why is Kanban often described as evolutionary rather than revolutionary change?

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.

This low-disruption, continuous improvement approach contrasts with frameworks like


Scrum, which require structural changes from the outset.

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.

Aspect Scrum Kanban


Planning Planned in time-boxed sprints Continuous planning as new tasks enter the
(e.g., 2–4 weeks) workflow

Estimation Uses story points or time Estimation is optional; flow metrics like
estimates in sprint planning cycle time are often used instead

Commitment Teams commit to a sprint No formal commitment; focus is on


backlog continuous delivery

9. What are some limitations of Kanban in large organizations?

Answer:

1. Lack of time-boxing: May make deadlines and milestone tracking harder.

2. Minimal structure: Without roles or ceremonies, coordination in large teams may become
inconsistent.

3. Scalability: Needs additional frameworks (e.g., Portfolio Kanban, SAFe) to scale


effectively.

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.

2. List the seven principles of Lean Software Development.


Answer:

1. Eliminate Waste

2. Build Quality In
3. Create Knowledge

4. Defer Commitment (Decide as Late as Possible)

5. Deliver Fast

6. Respect People (Team Empowerment)

7. Optimize the Whole

These principles guide lean thinking in software environments to improve performance, quality,
and responsiveness.

3. How does Lean reduce waste in software projects?

Answer:
Lean reduces waste by:

• Identifying non-value-adding activities, such as rework, unnecessary features, waiting


times, and handoffs.

• Streamlining processes to ensure each step contributes directly to delivering customer


value.

• Using feedback loops to prevent defects and reduce unnecessary work.


Result: More efficient use of time, resources, and effort, leading to faster and higher-quality
delivery.

4. What is the role of team empowerment in Lean development?

Answer:
Empowered teams:

• Make local decisions quickly without waiting for managerial approval.

• Own their work, leading to greater accountability and motivation.

• Encourage innovation, problem-solving, and continuous improvement.


This results in faster decision-making, better quality, and a more engaged workforce.

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:

• Rapid learning cycles through experimentation.

• Frequent feedback from data and users.

• Adaptive design based on discoveries during development.

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:

• Early planning defines high-level goals and constraints.


• Late decisions allow for gathering more information, reducing risk from premature
commitments.

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:

• Partially done work: Incomplete features or abandoned code.

• Extra features: Unused or low-priority functionality.

• Rework: Fixing bugs or rewriting poorly designed code.

• Delays: Waiting for approvals or resources.

• Task switching: Context-switching between unrelated tasks.


• Overproduction: Building more than is needed.

• Unused knowledge: Failing to capture lessons or feedback.

8. How does Lean complement Agile rather than replace it?

Answer:
Lean and Agile share values like customer focus, continuous improvement, and
collaboration.

• Agile provides practices (e.g., Scrum, XP).

• Lean provides principles (e.g., eliminate waste, optimize the whole).

Lean enhances Agile by:

• Providing a broader perspective on flow and value.

• Guiding decisions on when and why to use specific Agile practices.


• Helping scale Agile thinking across the organization.

They work best together, not in competition.

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.

Supports security by:


• Using secure coding standards from the start.
• Performing continuous security testing (e.g., static analysis, penetration testing).

Supports reliability by:

• Automating tests and validations.

• Encouraging frequent integration and delivery (CI/CD).


• Using monitoring and alerting in production.

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:

o Hierarchical structures may resist decentralized decision-making and change.

2. Siloed Departments:

o Lean encourages cross-functional collaboration, which conflicts with


departmental isolation.

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.

You might also like