Question Bank 2
1 List five points of correlation between productivity and agility and explain their
significance.
Ans:
Faster Delivery of Features: Agile allows for iterative development, delivering
smaller, functional parts of the product quickly. This leads to faster time-to-market,
enhancing productivity by getting features to users sooner.
Continuous Feedback: Regular reviews and feedback in Agile help identify issues
early, leading to faster resolution. This minimizes rework, ensuring teams focus on
what delivers value, thus improving productivity.
Improved Collaboration: Agile encourages frequent communication and
collaboration among team members, stakeholders, and customers, leading to better
alignment and more efficient problem-solving, increasing team productivity.
Adaptability to Change: Agile’s flexibility allows teams to adapt to new
requirements or market conditions without significant delays, enabling productivity by
ensuring the team works on the most valuable tasks at all times.
Enhanced Motivation: Agile empowers teams by involving them in decision-making,
fostering ownership and accountability. Motivated teams tend to work more
efficiently, which increases overall productivity.
2 Describe the roles of every member of an XP team.
Ans:
The Whole Team: The entire XP team works collaboratively to deliver the project,
ensuring strong communication, shared responsibilities, and collective ownership of
the code and product.
On-site Customers: These are key stakeholders who are available on-site, providing
constant feedback and ensuring the project aligns with business needs and user
requirements.
Programmers: Responsible for writing, testing, and maintaining the codebase, they
ensure the software is functional, efficient, and adheres to XP principles like pair
programming and continuous integration.
Testers: Focused on testing and validating the software to ensure it meets quality
standards, testers in XP work closely with developers, promoting early bug detection
and continuous testing.
Coaches: Experts who guide the team in applying XP practices, helping improve team
performance, facilitating better collaboration, and encouraging continuous
improvement.
Product Manager: Focuses on defining the product vision, prioritizing features, and
ensuring that the development process aligns with business goals, providing a clear
direction for the team.
Domain Experts: Specialists with in-depth knowledge of the industry or subject
matter, providing critical insights and helping the team understand complex
requirements or challenges specific to the domain.
Interaction Designers: Responsible for designing the user experience (UX) and
interface, ensuring that the software is user-friendly, intuitive, and meets the needs of
the end-users.
Business Analysts: Act as a bridge between the business stakeholders and the
development team, gathering requirements, defining user stories, and ensuring the
solution aligns with business objectives.
Technical Specialists: Experts in specific technologies or platforms, providing deep
technical knowledge, guiding the team in making the right technical decisions, and
solving complex technical problems.
3 Analyze the various stages of XP life cycle for utility.
Ans:
Planning: On-site customers define the vision, prioritize stories, and create a release
plan. Daily stand-ups and an informative workspace ensure team alignment and focus
on frequent, small releases.
Analysis: On-site customers gather requirements dynamically and collaborate with
programmers and testers to formalize them through customer tests. These tests guide
development and clarify business rules.
Design and Coding: Incremental design driven by TDD ensures continuous
improvement. Programmers pair program, maintain coding standards, use version
control, and integrate frequently for deployable code.
Testing: Automated regression tests from TDD and customer tests ensure quality.
Testers explore software for gaps and performance, conducting root-cause analysis for
bugs to refine processes.
Deployment: Software is kept deployment-ready at every iteration. Internal demos
occur weekly, while external releases are based on business needs. The team may
handle ongoing maintenance or hand off to support teams.
4 A Software company producing anti-virus software wishes to improve its productivity by
turning agile, State the agile policies which need to be followed for enhancing productivity.
Ans:
Frequent Deliveries: Release working software in short iterations (e.g., every 1–2
weeks) to get quick feedback and make improvements based on customer needs.
Collaboration & Communication: Foster close collaboration between all team
members (developers, testers, designers) and stakeholders to ensure transparency and
quick decision-making.
Adaptability to Change: Embrace changes in requirements even late in the
development process to stay aligned with evolving customer needs and market
conditions.
Focus on Simplicity: Keep the software development process simple by avoiding
unnecessary features, reducing technical debt, and delivering only what’s needed at
each stage.
Continuous Improvement: Regularly reflect on team performance, identify areas for
improvement, and apply changes to enhance the development process and maintain a
sustainable pace.
5 A new washing machine having software controlled water Optimization Technology is to be
launched by consumer goods manufacturer within a short time the software for this machine
has to be developed fast and other three discuss the how the scrum method will help in
realizing such software.
Ans:
Faster Delivery: Short Sprints (2-4 weeks) allow for frequent, incremental releases,
speeding up time-to-market.
Clear Prioritization: The Product Backlog ensures the most critical features (like
water optimization) are prioritized and developed first.
Collaboration & Transparency: Regular communication through Daily Standups
keeps the team aligned and resolves issues quickly.
Continuous Improvement: Sprint Retrospectives help the team improve processes,
boosting efficiency over time.
Quality: Regular testing within each Sprint ensures software quality and functionality,
especially for key features like water optimization.
6 Justify the statement thinking promotes great XP practices with suitable example and hence
illustrate the importance of pair programming.
Ans: Thinking promotes great XP practices by encouraging problem-solving and decision-
making, leading to better code design and faster issue resolution. For example, in Test-Driven
Development (TDD), thinking ahead ensures software behaves as expected, and Continuous
Integration anticipates how new code interacts with the existing codebase.
Pair programming is vital as it pairs two developers to work together: one writes code
(driver), while the other reviews and suggests improvements (navigator). This results in:
1. Knowledge sharing and learning.
2. Immediate code review and bug detection.
3. Higher quality code due to continuous collaboration.
7 How root cause analysis helps in optimizing Agile Software design and hence discuss the
concept of informative workspace
Ans:
Identifying Design Flaws: Root-cause analysis uncovers underlying issues in
software design that hinder productivity. For example, slow test execution might
reveal poor design choices, such as tight coupling or reliance on database
dependencies.
Improving Code Quality: By addressing root causes like technical debt or poor
modularity, teams can refactor designs to enhance testability, scalability, and
maintainability, leading to better software quality.
Reducing Iteration Delays: When root causes are identified and resolved, such as
unclear requirements or inefficient build processes, teams can prevent delays and
ensure smoother iterations.
Fostering Collaboration: Root-cause analysis encourages team collaboration during
retrospectives to collectively identify and fix process inefficiencies, aligning design
decisions with agile principles.
Building a Continuous Improvement Culture: Frequent root-cause analysis ensures
that teams learn from mistakes, refine processes, and develop a habit of designing
software to accommodate changing requirements seamlessly.
Role of an Informative Workspace in Agile
Visibility: Charts and boards highlight progress, bottlenecks, and issues, enabling
quick problem detection.
Collaboration: Encourages spontaneous discussions to brainstorm design
improvements and solve root causes.
Process Tracking: Charts track metrics like test times or refactoring efforts to
monitor root-cause fixes.
Team Awareness: Workspace "feel" and subtle cues signal project health, prompting
proactive actions.
Immediate Feedback: Big charts and whiteboards provide real-time insights, aligning
efforts for optimized design.
8 Illustrate with suitable Example the collaborative effort needed to complete an Agile project
discuss how trust plays an important part in such collaboration
Ans:
Stakeholder Trust: Consistently delivering on commitments builds trust.
Honesty in Work: Transparency about progress maintains credibility, even when
tasks are incomplete.
Respecting Customer Goals: Offering creative solutions strengthens trust with
customers.
Problem Disclosure: Early communication of issues builds trust and helps manage
expectations.
Collaborative Environment: Trust among team members fosters collective
responsibility and quality.
Example:
In an e-commerce application, a team collaborates to integrate a payment gateway. When they
discover an unstable API, they brainstorm solutions, update stakeholders, and deliver a
simpler solution on time. This transparency and adaptability strengthen trust with
stakeholders.
In Agile, trust and collaboration drive transparency, accountability, and consistent value
delivery.
9 A digital payment platform needs to migrate to India and enable transactions in Indian rupees.
Discuss about the various risks management and transformation modules that may be required
in this case.
Ans:
Regulatory Compliance: Implement modules to ensure adherence to Indian
regulations (RBI, GST, AML) with real-time updates and automated compliance
checks.
Currency Conversion: Integrate a dynamic currency conversion engine to handle
exchange rate fluctuations and associated risks.
Fraud Prevention: Use machine learning-based fraud detection, 2FA, and encryption
to secure transactions and prevent fraud.
Transaction Processing: Build a robust transaction management system with high
availability, failover, and backup mechanisms.
Data Protection: Ensure data encryption and secure storage in compliance with
India’s data protection laws.
Customer Support: Set up a 24/7 support system with automated dispute resolution
and refund processes.
Payment Integration: Integrate with India’s payment systems (UPI, Rupay) for
smooth transaction processing
10 ‘Incremental development is extremely important in agile systems’. Prove this statement with
examples.
Ans:
Faster Time-to-Market: By releasing features incrementally, users can start using
and benefiting from the software early. For example, in a payment app, the initial
increment might include user authentication, enabling basic functionality before
adding complex features like transaction history.
Continuous User Feedback: Each increment can be reviewed by stakeholders,
allowing teams to adapt features based on user needs. For instance, a shopping
platform might release a basic product catalog first, gathering user feedback before
adding advanced filtering or recommendation features.
Risk Reduction: Incremental development reduces risk by focusing on smaller
portions of work at a time, enabling quick identification and resolution of issues. In
software for managing bookings, an increment could include flight search
functionality first, ensuring core features work before integrating payment systems.
Quality Assurance: Frequent iterations with testing help ensure that issues are caught
early. In a mobile game, releasing playable levels incrementally allows for continuous
testing and polishing before final release.
Adaptability: As market conditions or customer needs evolve, the software can be
adjusted easily based on the results from each increment. For instance, in a health app,
an initial release with basic tracking features can be expanded later based on user
preferences.
11 Describe how the solutions to problems are to be tested before implementation
Ans:
Unit Testing: Test individual components or functions to ensure they work correctly
in isolation.
Integration Testing: Verify that different components or systems work together as
intended.
User Acceptance Testing (UAT): Involve end-users to validate the solution meets
their needs and requirements.
Performance Testing: Assess how the solution performs under load or stress
conditions.
Regression Testing: Ensure that the new solution doesn’t introduce issues in existing
functionality.
12 When does ‘refactoring’ help in getting a better agile solution?
Ans:
Enhancing Code Quality: Reduces duplication and simplifies code for easier
maintenance.
Adapting to Changes: Makes it easier to incorporate evolving requirements.
Optimizing Performance: Improves efficiency and scalability.
Speeding Development: Clean, modular code accelerates future work.
Facilitating Collaboration: Organized code boosts team productivity and clarity.
13 Describe how an agile project adapts to changing requirements of users with an example.
Ans: An agile project adapts to changing user requirements through iterative development,
frequent feedback, and flexible planning.
For example, in a mobile e-commerce app, if users request a new payment method after the
initial release, the development team can prioritize this change in the next sprint, adjusting the
product backlog and design accordingly. Through regular feedback (e.g., sprint reviews), the
team ensures that the app evolves to meet user needs without disrupting ongoing work.
14 A multinational software company wishes to extend its range to financial products.
What values and principles are important in this area?
Ans:
Security: Ensuring robust data protection, encryption, and compliance with financial
regulations.
Transparency: Clear communication of terms, conditions, and risks to users.
Trust: Building credibility through reliable and accurate financial products.
Compliance: Adhering to local and international financial regulations (e.g., KYC).
Customer-Centricity: Understanding and meeting the evolving needs of financial
customers.
Innovation: Continuously improving products to offer advanced and competitive
financial solutions.
15 Describe the importance of building a cohesive team for agile implementation stressing the
role of the manager or leader in the team
Ans:
Facilitating Communication: Ensuring open, transparent communication within the
team.
Supporting Collaboration: Encouraging cross-functional cooperation and a shared
goal.
Removing Obstacles: Addressing roadblocks and enabling smooth workflow.
Fostering a Positive Culture: Creating an environment of trust and psychological
safety for innovation.
Guiding Growth: Providing mentorship and promoting continuous learning.
16 In a trading company, sales personnel often sought to grab each other’s business to increase
their incentives. Discuss how an effective team leader can stop such un healthy competition.
Ans:
Promoting Collaboration: Encouraging teamwork and shared goals rather than
individual competition, ensuring everyone works towards the company’s success.
Setting Clear Boundaries: Establishing and communicating clear rules for territory
and client assignments to avoid conflicts.
Aligning Incentives: Structuring incentives to reward team achievements, not just
individual sales, to foster cooperation.
Recognizing Contributions: Acknowledging both individual and team efforts,
reinforcing that success is a collective achievement.
Conflict Resolution: Addressing disputes promptly and fairly, promoting a culture of
respect and mutual support.
17 Concepts like ‘fail fast’ and ‘maximize work not done’ are used to increase productivity in
agile systems. Show with examples how this is done.
Ans:
Fail Fast: Quickly identifying and discarding failed/erroneous ideas.
Example: In testing, if a new feature fails to meet user needs, it’s refined or dropped
early, saving time.
Maximize Work Not Done: Focusing on essential features and deferring non-critical tasks.
Example: Prioritizing core functionality (e.g., user login) over additional features
(e.g., settings) in early releases.
18 ‘Reusable code leads to better software’. Justify this statement with suitable examples.
Ans:
Efficiency: By using pre-existing code modules, development time is reduced.
Example: A login module for authentication can be reused across multiple
applications, saving time and effort in building a new one from scratch.
Maintainability: Reusable code is easier to maintain as bugs are fixed in one place and
applied across all instances.
Example: A shared payment gateway integration can be updated in one module, and
the fix will apply to all projects using it.
Scalability: Reusable components allow for easier scalability of applications, as adding new
features can leverage existing code.
Example: A reporting module can be reused in various applications to generate
different types of reports without needing to rewrite the logic for each one.
Consistency: Reusing code ensures uniform functionality and reduces the likelihood of
inconsistencies across projects.
Example: A validation function used across multiple forms ensures consistent input
validation across the system.
19 Create a matrix to demonstrate the design tradeoffs which are needed to satisfy conflicting
requirements in a development process
Ans:
Time-to-
Requirement Performance Scalability Maintainability Security
Market
Improves
speed, but Impacts Reduces Security Delays
Performance
may reduce scalability. maintainability. impacts speed. development.
other areas.
Ensures Increases
May reduce Complex for Security
Scalability growth development
performance. maintenance. challenges.
capacity. time.
Complex
Complex
code reduces Complicates Easier to update Slows down
Maintainability security harms
ease of scaling. and fix. release.
maintainability.
maintenance.
May Adds
Affects Reduces Enhances
Security complicate development
performance. simplicity. protection.
scaling. time.
Delays Takes longer More design
Time-to- Delays with Fast release
release for to ensure time for
Market added security. with tradeoffs
optimization. scalability. maintainability.
20 Justify the statement ‘mostay’ in Agile implementation experience with proper reasons and
suitable example.