COSC75 Module3
COSC75 Module3
Module III
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.
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.
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
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.
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.
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
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.
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.