Software Engineering Tutorial 2
Software Engineering Tutorial 2
1. Discuss the differences and similarities between plan-driven process models and agile
process models. Where does the RUP fit into the mix?
Differences:
Plan-Driven Agile
Often used in environments with strict regulatory or Works well when requirements are
contractual requirements. uncertain or likely to change.
Similarities:
• Both aim to deliver high-quality software.
• Both may include iterative practices (e.g., plan-driven can use incremental delivery).
• Both require stakeholder involvement, though the extent and frequency differ.
Where RUP Fits: The Rational Unified Process (RUP) is iterative and incremental, like Agile, but
it is more plan-driven and heavily documented, aligning it somewhere between traditional
and agile models. It allows for adaptation but still maintains a structured framework, making
it a hybrid.
2. One of the themes of agile development is typified by the statement “That is, while there is
value in the items on the right, we value the items on the left more. Explain this statement
This is from the Agile Manifesto, which contrasts traditional practices with agile priorities:
Explanation: This statement doesn’t reject the right-hand items—it acknowledges their
importance. However, agile values the left-hand items more because they better support
adaptability, communication, and customer satisfaction. For instance, a rigid plan is useful,
but being able to respond to change is more beneficial in dynamic environments.
3. Discuss the main principles of agile software development and the characteristics of agile
software development
Main Principles:
1. Early and continuous delivery of valuable software.
2. Welcome changing requirements.
3. Frequent delivery (weeks rather than months).
4. Daily collaboration between businesspeople and developers.
5. Build projects around motivated individuals.
6. Face-to-face communication is best.
7. Working software is the primary measure of progress.
8. Promote sustainable development.
9. Maintain technical excellence and good design.
10. Simplicity—the art of maximizing work not done.
11. Self-organizing teams deliver the best results.
12. Regularly reflect and adjust behavior.
Key Characteristics:
• Iterative and incremental development.
• Customer involvement is ongoing.
• Minimal documentation and emphasis on working code.
• Adaptability to change.
• Collaborative teams with informal communication.
4. Discuss the main principles of XP and provide a critical analysis of XP; how does XP reduce
the maintenance overhead of software development?
Main Principles of XP:
• User stories define requirements.
• Small releases every 1–2 weeks.
• Test-first development (TDD).
• Refactoring for simplicity.
• Pair programming for quality and shared knowledge.
• Continuous integration and daily testing.
• Customer collaboration through onsite customers.
Critical Analysis: Advantages:
• High customer satisfaction through continuous feedback.
• Improved quality through testing and pair programming.
• Quick adaptation to change due to small, frequent iterations.
• Code simplicity maintained via refactoring.
Disadvantages:
• Not suitable for large teams or distributed environments.
• May lack formal documentation, which hurts long-term maintenance.
• Relies on highly skilled developers and active customer involvement.
Maintenance Overhead Reduction:
• Refactoring keeps codebase clean and adaptable.
• TDD ensures fewer bugs and better regression control.
• Pair programming spreads knowledge, easing transitions.
5. Critically analyse the statement that a lack of BDUF compromises software quality. In your
answer, make reference to the TDD strategy of XP and user stories of XP and Scrum
Argument Against BDUF in Agile:
• Agile (especially XP) rejects BDUF in favor of emergent design.
• This enables rapid response to change and minimizes rework.
XP Strategies to Counter Lack of BDUF:
• Test-Driven Development (TDD): Tests are written before the code. This acts as both a
design guide and quality check.
• User Stories: Provide just-in-time requirements and are broken into implementable
tasks. They promote prioritization and feedback.
• Refactoring: Continuously improves design and code clarity without full redesign.
Scrum’s Role:
• Uses product backlog and sprints for iterative delivery.
• Stories are prioritized with customer input, ensuring relevance.
Risks Without BDUF:
• Architectural flaws may emerge later if no initial planning is done.
• Long-term maintainability could suffer without clear system documentation.
• Integration challenges in large systems with many dependencies.
Balanced View: While the lack of BDUF can be risky, agile practices like TDD, refactoring, and
user stories are specifically designed to manage and reduce those risks, especially in smaller
or well-scoped projects. For large or safety-critical systems, some upfront design is still
beneficial.
6. Discuss the main aspects of Scrum; provide a critical analysis of scrum methodology
Main Aspects of Scrum:
• Roles: Product Owner, Scrum Master, Development Team.
• Artifacts: Product Backlog, Sprint Backlog, Increment.
• Events:
o Sprint: Time-boxed iteration (2–4 weeks).
o Sprint Planning: Defines Sprint goals and backlog.
o Daily Scrum: 15-min daily meeting for coordination.
o Sprint Review: Demonstration of the product increment.
o Sprint Retrospective: Team reflection for continuous improvement.
Critical Analysis: Pros:
• Fast feedback loops with customers.
• Promotes transparency and accountability.
• Encourages collaboration and adaptability.
Cons:
• Not ideal for large or distributed teams.
• Needs a committed and skilled team.
• Vague requirements can derail sprint goals.
• Scrum Master role can be misunderstood as project manager.
7. Why was Scrum and to a lesser extent XP established as the 2 most popular agile software
development methodologies?
Why Scrum Became Popular:
• Provides a lightweight project management framework.
• Easy to understand and implement.
• Clearly defined roles and ceremonies.
• Emphasizes team collaboration and customer involvement.
Why XP Became Popular (to a lesser extent):
• Introduced practical engineering practices (e.g., TDD, pair programming).
• Strong focus on code quality and continuous integration.
• Supported small releases and user feedback.
Scrum + XP: Many teams combine Scrum's management structure with XP's technical
practices for better results.
8. What was the need to adopt a hybrid approach to software development? Explain the
essence of the Water-Scrum-Fall methodology
Why Hybrid Approaches?
• Agile alone doesn’t suit all constraints (e.g., regulatory environments).
• Large organizations have legacy practices that can’t be fully replaced.
• Need to balance agility with governance, architecture, or compliance.
Water-Scrum-Fall:
• Water: Upfront planning and budgeting.
• Scrum: Agile development and sprints.
• Fall: Traditional release management and operations.
Essence: Water-Scrum-Fall is a pragmatic blend that allows agile development within a non-
agile enterprise ecosystem.
9. Why is there a conflict of philosophy when an attempt is made to evaluate the CMM of an
agile organization? Do you think that this situation can be resolved?
Conflict of Philosophy:
• CMM emphasizes defined processes, documentation, and predictability.
• Agile values adaptability, working software, and minimal documentation.
Resolution?
• Yes, partially.
o Some organizations adapt CMMI to agile by focusing on outcomes rather than
rigid process adherence.
o Use metrics and frameworks like Agile Performance Indicators (API) or SAFe to
align process maturity with agility.
11. Provide a listing of situations where Scrum is well suited and listings of situations where
Scrum is perceived to be inadequate.
Well-Suited Situations:
• Small to medium-sized teams.
• Projects with changing or unclear requirements.
• Short timelines needing fast delivery and feedback.
• Organizations that encourage team autonomy.
Perceived Inadequate Situations:
• Large-scale, regulated environments (e.g., healthcare, aviation).
• Where teams are geographically dispersed.
• Where customer involvement is limited.
• Legacy systems requiring heavy upfront design or documentation.
12. What does “high ceremony” mean in the context of software development?
Definition: “High ceremony” refers to formal, process-heavy development approaches
characterized by:
• Extensive documentation
• Strict phase gate reviews
• Formal approvals
• Rigid roles and hierarchies
Contrast with Agile: Agile is considered “low ceremony”, emphasizing flexibility, informal
collaboration, and working software.