[go: up one dir, main page]

0% found this document useful (0 votes)
7 views9 pages

SWE Lecture 3

The document outlines Agile Software Development principles, emphasizing rapid iteration, customer involvement, and minimal documentation. It discusses the Agile Manifesto, challenges in implementation, and specific methodologies like Extreme Programming (XP) and Scrum, highlighting their practices and advantages. The document also covers project management aspects, including user stories, sprint cycles, and tools like Kanban boards and burndown charts to enhance team collaboration and productivity.

Uploaded by

Youstina Mitcho
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)
7 views9 pages

SWE Lecture 3

The document outlines Agile Software Development principles, emphasizing rapid iteration, customer involvement, and minimal documentation. It discusses the Agile Manifesto, challenges in implementation, and specific methodologies like Extreme Programming (XP) and Scrum, highlighting their practices and advantages. The document also covers project management aspects, including user stories, sprint cycles, and tools like Kanban boards and burndown charts to enhance team collaboration and productivity.

Uploaded by

Youstina Mitcho
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
You are on page 1/ 9

SWE Lecture 3

Agile Software Development


Rapid Software Development Characteristics
Interleaved Development: Specification, design, and implementation occur
simultaneously, with minimal documentation and only essential user requirements
defined.
Iterative Versions: Software is developed in multiple versions, allowing end-users and
stakeholders to provide feedback and suggest changes for future updates.
Quick UI Development: System user interfaces are created interactively using tools that
enable rapid design by dragging and placing icons.

Agile Methods
They use small, frequent increments, typically releasing updates every 2–3 weeks.
They prioritize customer involvement for quick feedback on changing requirements.

Agile Manifesto principles

Principle Description
Customer Customers actively participate in development by prioritizing
requirements and providing feedback.
Incremental Software is built and released in small increments
Delivery
People Over Developers’ skills are valued, allowing flexibility in their working
Process methods without strict processes.
Embracing Systems are designed to adapt to evolving requirements.
Change
Simplicity Focus on reducing complexity in both software and development
processes.

Why is it very successful

1. Product Development – Ideal for small to medium-sized software products developed


for commercial sale.
2. Custom System Development – Works well when organizations actively participate in
the development process and provide continuous feedback.
Challenges in Implementing Agile Principles

1. Customer Involvement: Success relies on having a dedicated customer representative,


which is often difficult.
2. Team Interaction: Some team members may struggle with Agile’s intense collaboration,
impacting teamwork.
3. Prioritizing Changes: Managing changes can be challenging, especially when multiple
stakeholders have differing priorities.
4. Maintaining Simplicity: Under pressure from delivery schedules, teams may not have
time to simplify the system as intended.

Documentation in Agile Development

Agile avoids excessive documentation, as it quickly becomes outdated and


does not always reflect the actual program. Instead, Agile focuses on
maintaining high-quality, readable code.

Agile vs. Plan-Driven Approaches: Decisions depend on factors like project size,
complexity, and team organization.

Choosing Between Plan-Based and Agile Approaches

Factors and Key Considerations :

1. Need for Detailed Specifications – Plan-driven approaches require more


documentation.
2. Incremental Delivery – Agile suits projects where continuous customer feedback is
needed.
3. System Size – Agile works well for small teams but may not scale efficiently for large
systems.
4. System Type & Risk Levels – Plan-driven is preferred for safety-critical systems as they
may require more documentation.
5. Development Team Structure & Skills – Agile thrives in teams with close collaboration
and high skill levels.
6. Regulatory Requirements – Plan-driven is required when external approvals are
needed (e.g., FAA for aviation), detailed documentation may still be required.

Extreme Programming (XP)


It's a widely used agile method that prioritizes rapid iteration and continuous feedback.
It pushes best practices to extreme levels for quick iterations.

User Stories
Requirements are expressed in scenarios and implemented as tasks.
Programmers work in pairs and develop tests for each task.
All tests must pass before integration, ensuring frequent system releases.

XP release cycle

1. Select User Stories for this Release – Identify features to be included.


2. Break Down Stories to Tasks – Divide user stories into smaller tasks.
3. Plan Release – Schedule and organize development work.
4. Develop/Integrate/Test Software – Implement, integrate, and test the code.
5. Release Software – Deploy the working version to users.
6. Evaluate System – Review and gather feedback for improvements.

Extreme Programming Practices

Principle Description
Incremental planning Requirements are recorded and broken into tasks based on
priority.
Small releases Frequent releases provide incremental functionality.
Simple design Only necessary design is implemented.
Test-first Tests are written before implementing functionality.
development
Refactoring Code is continuously improved for maintainability.
Pair programming Developers work in pairs to review and support each other.

Requirements Process and Scenarios

1. Customers and developers collaborate on story cards instead of a function list.


2. Story cards are broken into tasks, estimating effort and resources.
3. Customers prioritize stories for immediate business value.
4. Development follows about two weeks with frequent releases.
5. Unimplemented stories may change or be discarded as requirements evolve.
6. New story cards are created for updates, with customer input on priority.

Spike

It's an XP increment with no programming.


Used to explore solutions for uncertain problems.
Involves prototyping or trial development to understand the issue.
Can be applied to system architecture or documentation development.

XP & Coping with change

Traditional software engineering suggests designing for future change.


XP rejects this principle, considering it wasted effort.
XP focuses on adapting to changes when they occur rather than pre-planning.

Refactoring (XP Approach)

Incremental development can degrade software structure, making changes harder.


Issues: Code duplication, improper reuse.
Solution: Continuous refactoring to maintain code quality.
Refactoring includes:
1. Removing duplicate code.
2. Renaming and organizing attributes/methods.
3. Replacing calls with methods from a library.
Challenge: Development pressure may delay refactoring in favor of new features.

Testing in XP

There is no formal system specification, therefore testing is informal.

Features :

1. Test-first development – Write tests before implementation.


2. Incremental test development from user scenarios.
3. User involvement in testing and validation by developing acceptance tests.
4. Automated testing frameworks for efficiency.

Acceptance testing is the process where the system is tested using customer
data to check that it meets the customer’s real needs.
Pair Programming in XP

Developers work in pairs at the same workstation.


Pairs collaborate dynamically, not necessarily programming together at all times.

Advantages of Pair Programming

Encourages collective ownership of code.


Acts as informal code review, improving quality.
Supports refactoring, making the system easier to maintain.

Pair vs Individual Programming

Pair programming is not less efficient than working alone.


Studies show higher productivity and fewer defects in pair programming.
Two people working together results in better design and fewer errors.

Agile Project Management


Software project managers ensure software is delivered on time and within budget.
Traditional project management is plan-driven but does not fit agile methods where:
1. Requirements evolve incrementally.
2. Software is delivered in rapid increments.
3. Frequent changes are expected.

Scrum

Scrum is an Agile method that focuses on managing iterative development. It serves as


a management framework.

Scrum Management Process

1. Outline Planning and Architectural Design – Initial planning and system architecture
are defined.
2. Sprint Cycle – Repeated development phases where:
Assess project needs.
Select tasks for the sprint.
Develop the selected features.
Review and evaluate the progress.
3. Project Closure – Finalizing and delivering the completed project.

Sprint

It's the central phase of Scrum where :


1. Work is assessed.
2. Features are selected for development.
3. Implementation occurs.
4. Completed functionality is delivered to stakeholders.

Sprint Cycle Key Characteristics

1. Fixed Duration – Typically 2-4 weeks.


2. Product Backlog – A list of tasks.
3. Selection Phase – The team collaborates with customers to prioritize features.
4. Self-Organizing Teams – Daily stand-up meetings for progress tracking.
5. External Communication – A Scrum Master acts as a bridge between the team and
stakeholders.
6. Review & Presentation – At the end of each sprint, completed work is evaluated and
presented to stakeholders in a sprint review.

Scrum Master

He is the facilitator who :

Arranges daily meetings.


Tracks the backlog of work to be done.
Records decisions.
Measures progress against the backlog.
Communicates with customers and management outside of the team.

Standup Meetings (DSUs)

Daily 15-minute meetings attended by the whole team, often held standing to keep
them short and focused.
Each team member answers the questions :
1. What did you do yesterday ? Shares progress
2. What obstacles are in your way ? Identify any issues
3. What will you do today ? Plan the tasks for the day

Product Backlog

It's a prioritized list of all tasks and features required for the project.
Managed by the Product Owner and visible to all team members.
Items are typically written as user stories to ensure they provide value.
Reprioritized at the start of each sprint.

User Story

Describes a feature or functionality from the user’s perspective.


Helps teams understand who the user is, what they need, and why it matters.

As a (user role),
I want to (goal),
so I can (reason/benefit)

Developer vs. Users

Developers handle GUI, logic, databases, OS, and hardware, while users focus on
usability and functionality.

Kanban Board (To Do | Doing | Done)


A visual representation of work progress.
Divides tasks into Requirements, Development, Testing, and Done.
Helps teams track work efficiently.

Burndown Chart

A graph that tracks remaining work over time.


Shows burndown velocity, helping teams measure productivity.
Helps identify progress and predict project completion based on productivity rates.

Advantages of Scrum

1. Work is divided into manageable and understandable chunks.


2. Unstable requirements do not delay progress.
3. Team communication is improved due to transparency.
4. Customers receive incremental deliveries and provide feedback.
5. Trust and a positive culture enhance project success.

software development now involves distributed teams with team members


located in different places around the world.

Scrum Framework

Roles: Product Owner, Scrum Master, Team.


Ceremonies: Sprint Planning, Sprint Review, Sprint Retrospective, Daily Standup.
Artifacts: Product Backlog, Sprint Backlog, Burndown Charts.

You might also like