0% found this document useful (0 votes)
24 views7 pages

COSC75 Module3

Uploaded by

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

COSC75 Module3

Uploaded by

johnybravo0116
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

COSC 75 – Software Engineering II

Module III

Module 3: Agile Development


Objectives:
By the end of this module, you should be able to:
1. Explain the core principles of the Manifesto for Agile Software Development.
2. Understand the concept of Agile Software Engineering.
3. Identify the stages and practices of an Agile Process.

The Manifesto for Agile Software Development

Overview: The Agile Manifesto, created in 2001 by 17 software developers, outlines the
values and principles for developing software efficiently and collaboratively.
Core Values of the Agile Manifesto:
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.
Principles of the Agile Manifesto:
1. Customer satisfaction through early and continuous delivery.
2. Welcome changing requirements, even late in development.
3. Deliver working software frequently.
4. Collaboration between business stakeholders and developers.
5. Build projects around motivated individuals.
6. Use face-to-face communication where possible.
7. Working software is the primary measure of progress.
8. Maintain a sustainable development pace.
9. Continuous attention to technical excellence and good design.
10. Simplicity is essential.
11. Self-organizing teams produce the best designs.
12. Reflect and adapt regularly.

COSC 75 – Software Engineering II | 1


COSC 75 – Software Engineering II
Module III

Agile Software Engineering

Definition:
Agile Software Engineering focuses on iterative development, emphasizing collaboration,
adaptability, and delivering high-quality software.

Key Concepts:
1. Incremental Development: Deliver small, functional parts of the software in cycles.
2. Iterative Improvement: Refine and enhance the software with each iteration.
3. Collaboration: Involve cross-functional teams working closely.
4. Automation: Use tools for testing, integration, and deployment to improve efficiency.

Phases in an Agile Process

7 key stages of the Agile software development life cycle (SDLC)

The Agile development life cycle is usually made up of a few stages, each of which is meant
to make the development process easier. These stages might be slightly different depending
on the chosen Agile methodology.
 Phase 1: Concept
o The concept phase, also known as project initiation, is the first stage in Agile
software development. It involves the product owner, business analysts, the
development team and future users, who establish a vision of the project, and

COSC 75 – Software Engineering II | 2


COSC 75 – Software Engineering II
Module III

define its scope, objectives, and goals. The concept phase often includes an
initial list of features and a product backlog.
o At this stage, the objective is to get all the involved parties to agree on the
overall goal, and ensure that everyone has a common understanding of the
tasks that need to be completed and the reasons behind them.

 Phase 2: Inception
o The inception phase of an Agile project refers to the early stages of planning
and envisioning how the finished product will look. Teams go into greater
detail when it comes to plans and analyses, with the end goal of refining the
project vision that was established during the Concept stage. They might also
define initial requirements, conduct feasibility studies or run risk assessments.
o The purpose of inception is to establish the project’s course and guarantee
that it will satisfy both business objectives and customer requirements before
moving on to the more iterative and execution-oriented phase.

 Phase 3: Iteration
o This phase involves cross-functional teams who implement prioritized
features from the backlog. Depending on the Agile methodology, this takes
from one to four weeks (usually two). During each iteration, teams design and
develop features, then test and integrate them.
o Iteration encourages stakeholders to provide regular feedback and fosters a
continuous focus on delivering working software. It also makes it possible to
quickly adapt to shifting requirements. The iterative stage allows for frequent
corrections and ensures that product is delivered in small, regular increments.

 Phase 4: Testing
o Agile puts strong emphasis on testing. This includes test-driven development
(TDD), automated testing, and manual tests, run incrementally and iteratively.
Testers collaborate closely with developers to establish approval criteria for
users and develop test cases. They also make sure that each feature
complies with the specified requirements.
o Because of continuous integration and frequent deployments, testing is
always done on the most recent code. As a result, issues can be identified
and addressed early in the process.
o This method enables quick feedback, aids in maintaining product quality, and
guarantees that the software will continue to be dependable and error-free.

 Phase 5: Release
o During the release phase, end-users or customers receive working and
potentially shippable increments of the software. Iterative features are
integrated, tested, and prepared for deployment.
o This stage also usually involves final performance testing, security
assessments and documentation updates, as well as user acceptance testing
(UAT) to ensure that user needs are met and the software is successful. Once
the software is ready, it is released to production or made available to users.

 Phase 6: Maintenance
o Following the release of the software product, support and upkeep are
required. This Agile development life cycle stage goes beyond development.

COSC 75 – Software Engineering II | 3


COSC 75 – Software Engineering II
Module III

Tasks include addressing flaws, improving existing features, and


accommodating changing requirements in response to user feedback and
evolving needs.
o Maintenance teams prioritize and implement improvements in iterative cycles.
To ensure the software keeps providing value, it is updated to fix bugs and
incorporate user feedback.

 Phase 7: Retirement
o In Agile, the retirement phase represents the end of the software’s life cycle.
The goal here is to safely shut down software that is no longer used or
supported. Teams perform data migration and archiving. They ensure a
seamless transition for users to new or alternative versions and products. To
achieve a smooth exit of the software from the organization’s portfolio, careful
planning and communication with the relevant stakeholders are essential.

Agile Methodologies

Scrum
Have you ever wondered how a high-performing team relates to a strategic rugby scrum
formation? Meet the Scrum framework, a concept coined by Hirotaka Takeuchi and Ikujiro
Nonaka. Don’t worry, it’s not about tackling opponents—rather a game-changer in project
management!

Scrum is a framework within the Agile methodology that provides a set of roles, ceremonies,
and artifacts to structure and guide the iterative development process. It’s
specifically crafted for complex projects requiring frequent adaptation to changes.
Scrum revolves around short development cycles known as sprints, typically lasting one to
four weeks. Scrum teams are often small and self-organized, consisting of a Scrum Master
(think dedicated project manager), a product owner, and the product development team.
In line with agile principles, tasks are completed and delivered in stages instead of delivering
the entire project in one go. This step-by-step approach allows scrum teams to work from a
sprint backlog and enhances their ability to adapt to changes and shift priorities easily.

COSC 75 – Software Engineering II | 4


COSC 75 – Software Engineering II
Module III

Three key pillars support Scrum:


1. Adaptation: It readily accommodates shifts in project directions
2. Transparency: It ensures everyone on scrum teams is informed about what’s
happening and why
3. Inspection: Regularly inspecting projects promotes a culture of continuous
improvement among scrum team members and stakeholders

What are the benefits of using Scrum?


Between the agile frameworks, the benefits of adopting Scrum include:
 High customer satisfaction: Active customer involvement in product development
ensures the software is customized to meet their needs
 Increased collaboration: Small and tightly knit Scrum teams create effective
communication and a sense of ownership over their work
 Adaptability to change: Scrum’s iterative approach allows for flexibility in adapting
to changes and evolving priorities, making it well-suited for dynamic project
environments
 Reduced costs: Early product delivery translates to time and cost savings. The
ability to make swift changes also minimizes the need for additional resources to
adapt to evolving demands
 Increased ROI (return on investment): The quicker the product hits the market, the
sooner your business starts earning revenue. Scrum’s efficiency in getting products
to market swiftly contributes to an enhanced return on investment.

When should you use Scrum?


Scrum is associated with increased productivity, quicker delivery, cost savings, and
enhanced product quality. Managers often find it particularly effective for handling complex
projects or those prone to frequent modifications.
Using Scrum is great for industries characterized by constant changes or projects that
require flexibility to adapt to feedback. This applies especially to industries undergoing
frequent technology updates or projects involved in fresh software development.

Kanban
This Japanese word can be translated as “signboard” or “visual board”. In this Agile
framework, visual elements are used to manage the project and developing software.
The central part is the Kanban board, with columns that represent different stages of project
workflow, such as “To Do,” “In Progress” and “Done.” Work units are represented here as
cards, and they move through the columns as they are handled. All columns are visible to

COSC 75 – Software Engineering II | 5


COSC 75 – Software Engineering II
Module III

team members so that there is a shared awareness of what has been accomplished and
what tasks are upcoming.
Kanban is a visual project management tool designed to track tasks and enhance overall
project efficiency. At its core is a physical or digital Kanban board that categorizes project
phases into distinct columns.
Project tasks are represented as sticky notes or Kanban cards on this board, and their
movement through columns mirrors the project’s progress.
Visualizing tasks in this way provides real-time insights into team activities, filtered by
progress, priorities, due dates, or any other criteria. It’s like having a crystal ball, offering a
glimpse into ongoing tasks and allowing you to predict and address potential bottlenecks
before they disrupt future progress.
What makes Kanban even more versatile is the ability to coexist with Agile and Lean
methodologies. It frequently pairs with Scrum in a hybrid process called Scrumban,
showcasing its adaptability and effectiveness in diverse project management scenarios.

What are the benefits of using Kanban?


Key advantages of implementing the Kanban method include:
 Enhanced workflow visibility: It provides a clear visual representation of task flow
throughout the project by categorizing work stages as cards on the Kanban board
 Faster process delivery: By visually tracking and managing tasks, teams can
identify and address bottlenecks promptly, minimizing delays
 Increased predictability: Teams can anticipate work patterns, identify potential
challenges, and make informed decisions based on real-time information
 Better collaboration: Kanban encourages collaboration by providing a shared
platform where teams can visualize, manage, and track tasks. This collaborative
environment fosters a sense of shared responsibility and enhances teamwork

COSC 75 – Software Engineering II | 6


COSC 75 – Software Engineering II
Module III

 Flexible adaptation: Whether used independently or with other methodologies like


Scrum, Kanban seamlessly integrates and adapts to diverse project requirements
When should you use Kanban?
Initially embraced by IT managers and software development teams, Kanban boards have
now found widespread adoption across diverse organizations. Particularly favored by teams
practicing Lean and Agile methodologies, Kanban boards provide the visibility and
transparency essential for achieving business agility.
Teams engaged in repetitive processes can leverage Kanban boards to bring clarity to their
workflows, enhance their processes, and operate with increased efficiency. The adaptability
of the Kanban method makes it a valuable tool for Kanban teams across industries seeking
to streamline their operations and boost overall effectiveness.

Scrumban
Scrumban is a hybrid that combines the best principles and practices of the two above-
mentioned methodologies. It incorporates Scrum’s defined roles (Scrum master, product
owner, development team), ceremonies (sprint planning, daily Scrum, sprint review, sprint
retrospective) and iterations, along with Kanban’s visual boards and optimized workflow,
allowing teams to work with greater flexibility and adaptability.

COSC 75 – Software Engineering II | 7

You might also like