EXP2 Nigga

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Department of Computer Engineering

Roll no:
Date:

Experiment-2
Aim: Application of Agile process model.
Theory:
Agile Process model
Definition:
The Agile model, also known as Agile software development or Agile
methodology, is an iterative and incremental approach to software
development. It emphasizes flexibility, collaboration, and customer-centricity
throughout the development process. Agile methodologies were designed to
address some of the limitations of traditional, rigid development models, such
as the Waterfall model, which often struggled to adapt to changing
requirements and customer needs.
Phases of Agile Model:
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback

1. Requirements gathering: In this phase, you must define the requirements.


You should explain business opportunities and plan the time and effort
needed to build the project. Based on this information, you can evaluate
technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with
stakeholders to define requirements. You can use the user flow diagram or
the high-level UML diagram to show the work of new features and show how
it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work
begins. Designers and developers start working on their project, which aims
to deploy a working product. The product will undergo various stages of
improvement, so it includes simple, minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.

1
Department of Computer Engineering
Roll no:
Date:

5. Deployment: In this phase, the team issues a product for the user's work
environment.
6. Feedback: Frequent and continuous feedback is integral to XP. This includes
feedback from customers and stakeholders during the development process,
as well as feedback within the development team through regular code
reviews and testing.

Methods of Agile Process:


1. Scrum
2. Extreme Programming (XP)
3. Crystal
4. Dynamic Software Development Method (DSDM)
5. Feature Driven Development (FDD)
6. Lean Software Development (LSD)
7. Kanban

1. Scrum:
The Agile Scrum methodology is an iterative development-
based project management process that relies on
incremental development. The process is centered on
iterative cycles known as Sprints, which typically spans 2-4
weeks and during which the product is planned, coded, and
tested while meeting on a daily basis to monitor progress.

2
Department of Computer Engineering
Roll no:
Date:

There are three roles in it, and their responsibilities are:

1. Scrum Master: The scrum can set up the master team, arrange the
meeting and remove obstacles for the process

2. Product owner: The product owner makes the product backlog,


prioritizes the delay and is responsible for the distribution of functionality
on each repetition.

3. Scrum Team: The team manages its work and organizes the work to
complete the sprint or cycle.

2. Extreme programming (XP)

Extreme programming (XP) is a software development


methodology intended to improve software quality and responsiveness to
changing customer requirements. As a type of agile software development,
it advocates frequent releases in short development cycles, intended to
improve productivity and introduce checkpoints at which new customer
requirements can be adopted.

3
Department of Computer Engineering
Roll no:
Date:

Phases of XP:
1. Communication: XP encourages open and constant communication
between team members, stakeholders, and customers. This promotes
shared understanding and helps to address issues early on.

2. Simplicity: The XP model advocates for the simplest solutions that


meet the current requirements. This helps avoid over-engineering and
reduces the likelihood of unnecessary complexity.

3. Feedback: Frequent and continuous feedback is integral to XP. This


includes feedback from customers and stakeholders during the
development process, as well as feedback within the development team
through regular code reviews and testing.

4. Courage: XP encourages developers to take risks, make necessary


changes, and adapt to evolving requirements. It fosters an environment
where team members feel comfortable challenging the status quo and
suggesting improvements.

4
Department of Computer Engineering
Roll no:
Date:

5. Respect: XP emphasises the value of all team members' contributions


and encourages mutual respect among developers, customers, and
stakeholders.

6. Sustainable Pace: XP promotes a sustainable work pace to prevent


burnout and maintain a consistent level of productivity over the long term.

3. Crystal:

The Crystal Agile Framework is an agile framework that focuses


on individuals and their interactions, as opposed to processes
and tools. This framework is a direct outgrowth of one of the
core values articulated in the Agile Manifesto. The Crystal agile
framework is built on two core beliefs: Teams can find ways on
their own to improve and optimize their workflows, and every
project is unique and always changing, which is why that
project’s team is best suited to determine how it will tackle the
work.
Phases of Crystal:
 Conceive: Define the project's mission, vision, and initial scope.
 Initiate: Plan and prepare for the project, including assembling the team
and setting up the environment.
 Deliver: Continuously deliver working increments of the software at
regular intervals.
 Review: Reflect on the process and outcomes to identify areas for
improvement.
 Deploy: Release the software to users and maintain it during its lifecycle.

4. Dynamic Systems Development Method (DSDM):

Dynamic Systems Development Method (DSDM) is an iterative


software method in which each iteration follows the 80% rule

5
Department of Computer Engineering
Roll no:
Date:

that just enough work is required for each increment to facilitate


movement to the next increment. The remaining detail can be
completed later when more business requirements are known
or changes are requested and accommodated.

Techniques:
 MoSCoW Prioritization
 Timeboxing
 Iterative Development
 Facilitated Workshops
 Modelling
 Prototyping

Phases:
 Feasibility Study
 Business Study
 Functional Model Iteration.
 Design and Build Iteration
 Implementation
 Deployment
 Post-Project Review

5. Feature Driven Development (FDD):


Feature-Driven Development (FDD) is an Agile software
development method that focuses on delivering features
incrementally while maintaining a strong emphasis on design
and code quality. FDD is particularly suitable for large and
complex projects, where managing feature development and
integration is crucial. The method is based on five key
process.
Target Area:
 Develop Overall Model
 Build Feature List
 Plan by Feature
 Design by Feature
6
Department of Computer Engineering
Roll no:
Date:

 Build by Feature

6. Lean Software Development:


Lean software development (LSD), or Lean methodology, is
a lightweight framework that reduces programming effort
and budgeting by one-third. Lean development allows us to
obtain information directly from the source, and eliminates
the common problem of producing software that doesn't
meet customers’ needs.
Steps of Lean Software Development:
 Identify Customer Value
 Map the Value Stream
 Create Flow
 Seek Perfection
 Empower the Team
 Deliver Fast, Learn Fast
 Optimize Everything

7. Kanban:
Kanban is an agile project management approach that uses visual boards to
represent work items and their flow through different stages of the
development process. It emphasizes continuous delivery, limiting work in
progress (WIP), and focusing on completing tasks before pulling in new ones.

Phases of Kanban:
 Visualize the Workflow
 Limit Work in Progress (WIP)
 Manage Flow
 Continuous Delivery
 Feedback and Improvement
 Pull System
 Empowerment and Collaboration

Diagram of Agile method:

7
Department of Computer Engineering
Roll no:
Date:

Advantages of Agile Process

1. Customer Satisfaction: Agile prioritizes customer collaboration and


feedback, ensuring that the delivered product aligns with customer
needs and expectations. This leads to higher customer satisfaction and
a better-fit end product.
2. Flexibility and Adaptability: Agile embraces changing requirements,
allowing the development team to adjust to evolving project needs and
respond to market changes quickly.
3. Faster Delivery: Incremental development and short iterations (sprints)
result in regular delivery of usable product increments. This approach
allows for quicker deployment of valuable features and functionalities.
4. Early and Continuous Feedback: Regular reviews and demonstrations
provide stakeholders with early visibility into the project's progress.
This early feedback loop enables adjustments and improvements
throughout the development process.
5. Improved Quality: Continuous testing and integration lead to better
software quality. Bugs and issues are caught early and addressed
quickly, resulting in a more reliable and stable product.
6. Empowered Teams: Agile encourages self-organizing and cross-
functional teams. This empowerment fosters creativity, motivation, and
a sense of ownership, leading to better collaboration and productivity..

8
Department of Computer Engineering
Roll no:
Date:

7. Higher Productivity: Agile emphasizes efficient and effective work


practices. By focusing on valuable features and eliminating unnecessary
work, teams can be more productive.
8. Continuous Improvement: Through regular retrospectives, the team
reflects on their process and performance, identifying areas for
improvement. This continuous improvement cycle leads to better
efficiency over time.
9. Better Alignment with Business Goals: Agile projects continually align
with changing business priorities, ensuring that the developed product
stays relevant and valuable.

Disadvantages of Agile Process


1. Uncertain Scope: Frequent changes to requirements may lead to
uncertainty about the final scope of the project.
2. Time and Effort: Agile requires regular meetings and collaboration, which
can be time-consuming for team members.
3. Lack of Documentation: The focus on working software may result in
insufficient documentation, making it challenging for future maintenance
or knowledge transfer.
4. Customer Involvement: High customer involvement can be demanding,
particularly when stakeholders have limited availability.
5. Skill Requirements: Agile requires skilled team members with strong
collaboration and communication abilities, which may not always be
readily available.
6. Project Management Challenges: Agile projects may face challenges in
estimating the timeline and budget due to the iterative nature of
development.
7. Resistance to Change: Transitioning from traditional methodologies to Agile
may encounter resistance from stakeholders or team members unfamiliar
with the approach.
8. Dependency on Team Co-location: Agile thrives on face-to-face interaction,
making it difficult for distributed teams to fully embrace all Agile practices.

9
Department of Computer Engineering
Roll no:
Date:

9. Overemphasis on Short-Term Goals: The focus on delivering individual


iterations may lead to a lack of attention to long-term project vision and
goals.
10. Product Owner Availability: The success of Agile largely depends on the
involvement of a dedicated and available Product Owner, which may be a
challenge in some cases.

Application of Agile Process:


Online shopping system falls into two Agile methods which are Scrum and
Kanban.
Scrum: Scrum is often a good fit for online shopping platforms. The
development of an online shopping website or application can be divided into
sprints, each focused on delivering specific features or improvements. For
instance, a sprint could be dedicated to enhancing the user interface,
implementing a new payment gateway, or optimizing the checkout process.
Regular releases enable the platform to adapt quickly to changing market
demands and customer preferences.
Kanban: Kanban is suitable for online shopping platforms with a continuous
flow of tasks and frequent changes. In e-commerce, where requirements can
change rapidly based on customer feedback and market trends, Kanban's
visual management and flexibility can make it an attractive choice. The
development team can use a Kanban board to manage tasks and progress
them through various stages, ensuring a smooth and efficient workflow.
Conclusion: Agile methods are not mutually exclusive, and elements from
multiple approaches can be combined to create a tailored Agile process that
best suits the needs of the online shopping platform and the development
team. The key is to encourage collaboration, iterative development, and
continuous improvement to deliver a successful and customer-centric online
shopping experience.

10

You might also like