0% found this document useful (0 votes)
80 views74 pages

Unit 2

Agile methodologies used in Devops.Useful a lot for CI/CD pipeline
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)
80 views74 pages

Unit 2

Agile methodologies used in Devops.Useful a lot for CI/CD pipeline
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/ 74

UNIT-2

Fundamentals of Agile Process: Need of Agile software development, Agile

Manifesto and Principles, Stakeholders and Challenges, Overview of Agile

Development Models: Scrum, Extreme Programming, Feature Driven

Development, Crystal, Kanban, and Lean Software Development, Business

benefits of software agility.


What is the Agile methodology?

➢ Definition: Agile Software Development is an iterative and incremental


approach to software development that emphasises the importance of
delivering a working product quickly and frequently.

➢ It involves close collaboration between the development team and the


customer to ensure that the product meets their needs and expectations.
1. Requirement Gathering
● Needs and expectations
● project’s scope, objectives, and requirements.
● Establishing a budget and schedule.
● Project plan and allocating resources.

2. Design
● Developing a high-level system architecture.
● Creating detailed specifications, which include data structures, algorithms, and
interfaces.
● Planning for the software’s user interface.

3. Development (Coding)
Writing the actual code for the software.
4. Testing
This phase involves several types of testing:
1. Integration Testing:
2. System Testing:
3. User Acceptance Testing:
4. Performance Testing:

5. Deployment

6. Review (Maintenance)
Need of Agile software development

1.Agile methods are adaptable


1.Ability to shift strategies quickly, without disrupting the flow of a project.
2.Challenge in traditional waterfall method flow.

2.Agile fosters collaborative teamwork


1.Communicate face-to-face.
2.Collaborative teamwork.
3.Agile methods focus on customer needs

1.Focus on customer needs.


2.Cloud-based software.
3.Customer satisfaction is a key driver.
4.Agile approach and shift to a different project.
Why is Agile Manifesto Important?

❖ Agile project management empowers teams to set mutual goals and


organize their tasks.
❖ For instance, software engineers will understand the importance of
customer happiness.
❖ For teams looking to introduce or maintain an Agile methodology in their
organizations, the Agile Manifesto is a crucial document.
According to the Agile Manifesto, there are four fundamental principles of
Agile:

1. Individuals and interactions over processes and tools

● Success in a project depends on having the appropriate people on your


team.
● The engagement among team members encourages them to work
together and resolve any possible issues.

2. Working software over comprehensive documentation

● long time to provide thorough documentation.


● Providing the software to your consumers.
● After that, you can collect suggestions to enhance upcoming releases.
3. Customer collaboration over contract negotiation

● Contracts used to be considered supreme.


● Continuous development should actually be the main priority.
● You must create a feedback loop with them.

4. Responding to change over following a plan

● Priorities are rapidly changing, as are needs and requirements.


● Capable of pivoting and shifting course whenever required.
● Dynamic strategy may undergo from quarter to quarter or even from
month to month.
The Twelve Principle of Agile Manifesto
1. Customer Satisfaction:
● High priority to satisfy the customer's requirements.
● Early and continuous delivery of valuable software.

2. Welcome Change:
● Every changing requirement should be welcome, even in the late
development phase.
● Agile process works to increase the customers' competitive advantage.
3.Deliver the Working Software: Deliver the working software frequently,
ranging from a few weeks to a few months with considering the shortest time
period.
4.Collaboration: Business people (Scrum Master and Project Owner) and
developers must work together during the entire life of a project development
phase.
5.Motivation: Projects should be build around motivated team members.
Provide such environment that supports individual team members and trust
them. It makes them feel responsible for getting the job done thoroughly.
6.Face-to-face Conversation: Face-to-face conversation between Scrum Master
and development team and between the Scrum Master and customers for the
most efficient and effective method of conveying information to and within a
development team.
7.Measure the Progress as per the Working Software: The working software is
the key and primary measure of the progress.
8.Maintain Constant Pace: The aim of agile development is sustainable
development. All the businesses and users should be able to maintain a
constant pace with the project.
9.Monitoring: Pay regular attention to technical excellence and good design to
maximize agility.
10.Simplicity: Keep things simple and use simple terms to measure the work
that is not completed.
11.Self-organized Teams: They should not be depending heavily on other
teams because the best architectures, requirements, and designs emerge from
self-organized teams.
12.Review the Work Regularly: The work should be reviewed at regular
intervals, so that the team can reflect on how to become more productive and
adjust its behaviour accordingly.
Stakeholders and Challenges
1.Stakeholders TYPE
● Internal.
● External.
2.Role of agile to Stakeholders.
3.Agile development stakeholders.

1.People funding the project.


2.Business Managers and Business Architects.
3.Data Architects and Database Administrators.
4.Portfolio and Project Managers.
5.Direct and indirect Users.
6.Account and Sales Managers.
7.Developers’ team including Engineers, Designers and PM/BA, etc.
Most involved in Agile Product Development.

1.Project Sponsors
● Interest primarily
● External stakeholders.
● Provide needful finances.

2.Product Owner
● Core stakeholder
● Story mapping activities and specifies tasks.
● Share his vision.
3.Development Team
● Works in sprints.
● Team discussion.
● Software developers-backlog
● The quality estimation.

4.Project Manager
● Project Manager Roles.
● Necessary information.
5.Business Analysts:
1.Budget and the time,requirements.

6.End user
1.Feedback.
Overview of Agile Development Models

1.Agile Methodology came into existence.


2.Iterative Waterfall Model issue.
3.What is the Agile Model?
● Definition.
● Time Box.
● Four essential values(Slide no.7).
● Requirement Gathering:
● Design the requirement:
● Develop/Iteration:
● Test:
● Deployment:
● Review / Feedback:
Agile Testing Methods

1.Scrum
2.Extreme Programming (XP)
3.Crystal
4.Dynamic Software Development Method (DSDM)
5.Feature Driven Development (FDD)
6.Lean Software Development
7.Kanban
1.Scrum:
● It is an agile development methodology that focuses on task management
within a team-based development environment.
● Small teams.
● Three Team Members

1.Product owner
● A product backlog is a list of the new features.
● Changes to existing features, bug fixes.
● Infrastructure changes.
● Other activities that a team may deliver in order to
achieve a specific outcome.
2.Scrum Master: Sets up the team, holds sprint meetings, and removes
roadblocks to development.
3.Developer and QA.
Advantages of Scrum

● Scrum can help teams complete project deliverables quickly and


efficiently.
● Scrum ensures effective use of time and money.
● Large projects are divided into easily manageable sprints.
● Developments are coded and tested during the sprint review.
● Works well for fast-moving development projects.
● The team gets clear visibility through scrum meetings.
● Scrum, being agile, adopts feedback from customers and stakeholders.
● Short sprints enable changes based on feedback a lot more easily.
● The individual effort of each team member is visible during daily scrum
meetings.
Disadvantages of Scrum

● Scrum often leads to scope creep, due to the lack of a definite end-date.
● The chances of project failure are high if individuals aren't very
committed or cooperative.
● Adopting the Scrum framework in large teams is challenging.
● The framework can be successful only with experienced team members.
● Daily meetings sometimes frustrate team members.
● If any team member leaves in the middle of a project, it can have a huge
negative impact on the project.
● Quality is hard to implement until the team goes through an aggressive
testing process.
Extreme Programming (XP)

● XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and


fun way to develop a software.
● When clients needs or specifications are continually changing, or when
they are unsure about the system’s functionality, the Extreme
Programming technique comes in picture.
● Short development cycles.
● The XP creates software with the client in mind.
XP methodology works on five core values as discussed below:-

● Simplicity – First is Simplicity. Which in simple words means avoiding the


waste and only doing what’s needed & asked.
● Communication – it means having face-to-face communication to clear
any doubts.
● Feedback – it is means providing constructive feedback, which is workable
for future improvements.
● Courage –it is means adapting to the changes & not making excuses for
the failure.
● Respect- This means everyone deserves respect as an individual team
member.
Some of the basic activities

1. Planning:
● Customer meets the development team
● User stories
● Release plan broken down into iterations
● Spikes

2. Designing:

● A good design brings logic and structure to the system and allows to
avoid unnecessary complexities and redundancies.
3.Coding:
● Coding standards, pair programming, continuous integration.

4.Testing
● Unit tests
● Acceptance tests

5.Listening
● Constant communication and feedback.
Advantage

● Stable well-performing systems.


● Clear, concise code.
● Results can be delivered very soon.
● Documentation is reduced.
● No or very little overtime is practiced.
● Constant communication: Visibility and accountability.
● Pair programming: Higher-quality products.
● Customer engagement ensures their satisfaction.
Disadvantage.
● Unrealistic to accurately estimate scope, cost, and time.
● Regular meetings with customers often take a great deal of time
Documentation can be scarce.
● Cultural and structural changes.
● Pair programming takes more time.
Sr.No Scrum XP programming

1 In the Scrum framework, teamwork in iterations is In Extreme Programming(XP), teamwork for 1-2 weeks
called Sprint which is 2 weeks to 1 month long. only.

2 Scrum models do not allow changes in their timeline Extreme Programming allows changes in their set
or their guidelines timelines

3 Scrum emphasizes self-organization. Extreme Programming emphasizes strong engineering


practices.

4 Scrum does not put emphasis on software Extreme Programming (XP) emphasizes programming
engineering practices that developers should use. techniques that developers should use to ensure a
better outcome.

5 In scrum, the scrum master asks the owner of the In XP, customer decides the job priorities being the
product to prioritize the tasks according to their owner of the product and then analyses the releases
requirements.
Crystal

❖ It puts focus on the interaction among individuals rather than on the


processes and tools used.
❖ It empowers teams to find their own solutions to problems instead of
being confined by rigid methodologies of doing things.
❖ The Crystal framework is split into different color classes based on team
size and project criticality and priority.
Colour families of the Crystal agile method
At the heart of the crystal, a family is seven principles.

#1: Frequent delivery:


❖ Deliver code regularly to your real users

#2: Reflective improvement


❖ How to improve Project in the future.

#3: Osmotic communication


❖ Information to flow between team members(Inside)
#4: Personal safety
❖ Feel safe to discuss ideas openly.

#5: Focus on work


❖ Required clear communication and documentation.

#6: Access to subject matter experts and user.


❖ Get feedback from real users and experts when required.

#7: Technical tooling


❖ Continuous deployment, Automated testing, and Configuration management.
Advantages of using

● Teams have a lot of autonomy to work in the way they deem most
effective.
● Teams communicate directly with each other, reducing management
overhead.
● The framework can adapt as a team grows or shrinks.

Disadvantages of using

● Lack of structure can slow down inexperienced teams.


● Not clear on how remote teams can share knowledge informally.
● Lack of rigid planning can lead to confusion and loss of focus.
Dynamic Systems Development Method:

1.The Dynamic Systems Development Method or DSDM is an agile project


delivery methodology which covers the entire software development lifecycle.

2.It was originally created to provide more structured governance and


discipline to teams using (RAD).
3.The DSDM is owned and managed by the Agile Business Consortium, an
independent, non-profit, professional organisation focused on advancing
business agility.
This method has 7 stages involved and these are:

❖ Pre-Project:
➢ Planing
➢ Owners can address risk
❖ Feasibility Study:
➢ Meet your goals with the budget
➢ Timeline and technology available
❖ Business Study:
➢ Competes effectively with other organisations
❖ Functional Model Iteration:
➢ Build a prototype
➢ Test and evaluate
➢ Repeat prototype
❖ Design and Build Iteration:
➢ Refine your prototype
➢ Design additional components
❖ Implementation:
➢ Release your project
➢ Users provide feedback.
❖ Post-Project:
➢ Project managers
➢ Planned results with the actual results

Advantages
● Projects are delivered on time, whilst still allowing flexibility
● Progress can be easily understood across the organisation
● Business cases are at the core of the DSDM model, ensuring delivered
projects have real business value
Disadvantages: Large management overhead and costly implementation
makes this unsuitable for small organisations.
Feature Driven Development (FDD)

❏ FDD is a methodology broadly regarded as based on the four agile values


and the twelve agile principles as set out in the Agile Manifesto.
❏ It was one of 6 methodologies represented at the meeting that created the
Agile Manifesto.
❏ Work starts with building a domain object model and identifying all the
features and feature sets (groups of features).
❏ After prioritizing the features, work proceeds iteratively and
incrementally.
Definition: Feature-Driven Development (FDD) is customer-centric, iterative,
and incremental, with the goal of delivering tangible software results often and
efficiently.

FDD in Agile encourages status reporting at all levels, which helps to track
progress and results.

E.g “complete the login process” might be considered a feature in the Feature
Driven Development (FDD) methodology.
1. Domain Object Modeling:
a. Clear understanding of the problem domain.
b. The key concepts involved.
c. Visual representation of the system's structure.

2. Feature List: Each feature is described in detail, including its purpose,


scope, and priority.
3. Planning by Feature:
a. Divides the project into small, manageable iterations, typically two
weeks to a month in length.
b. During each iteration, the team selects a set of features to implement.
c. This feature selection is based on priority and dependencies.
4.Design by Feature:
● Identifying the classes, methods, and relationships required to
implement the feature.
5.Build by Feature:
● Developers implementing the selected features.
● Team members can work concurrently on different features.
.
Advantages of FDD
● Reporting at all levels leads to easier progress tracking.
● FDD provides continuous success for larger size of teams and projects.
● Reduction in risks is observed as whole model and design is build in
smaller segments.
● FDD provides greater accuracy in cost estimation of the project due to
feature segmentation.

Disadvantages of FDD
● This agile practice is not good for smaller projects.
● There is high dependency on lead programmers, designers and mentors.
● There is lack of documentation which can create an issue afterwards.
Lean Software Development
● Lean software development is a concept that emphasizes optimizing
efficiency and minimizing waste in the software development process.
● This approach has its roots in the Lean manufacturing movement of the
1980s.
● E.g Toyota
● It was first adopted in software development in 2003.
1. Eliminating the waste
1. Avoid unnecessary code, delay in processes, inefficient
communication, the issue with quality, data duplication, more
tasks in the log than completed.
2. Regular meetings are held by Project Managers.
2. Fast Delivery
1. Building complex systems with unwanted features
2. MVP strategy
3. Amplify Learning
1. Ample code reviewing, meeting that is cross-team applicable.
2. Paired programming is used.
4.Builds Quality

● Developers often apply test-driven programming.


● Constant feedback from team members and project managers.
5.Respect Teamwork

● Collaborative atmosphere, keep perfect balance when there are short


deadlines and immense workload.
6.Delay the commitment

● LSD method study market about developing product.


● Do improvement.

7.Optimising the whole system

● Optimise the team’s workflow.


● Create unity among members.
● Inspire a sense of shared responsibility.
Advantages of LSD :

1. Time saver as simplifies the development process.


2. Focus on MVP, Lean Software Development prioritizes essential
functions so this removes the risk of spending time on valueless builds.
3. It prioritizes essential functions and removes the risk of spending time
on valueless builds.
4. It increases the involvement of team members, optimizing the workflow
and reducing losses.
5.LSD encourages collaboration and communication among team members
and stakeholders.

6.It fosters innovation through experimentation and creativity.

7.It reduces waste by minimising unnecessary features.

8.LSD increases customer satisfaction through customer involvement and


feedback.
Disadvantage :
● Make it scalable as other frameworks since it strongly depends on the
team involved.
● Lack of documentation
● Inflexibility for structured projects or strict deadlines
● Lack of predictability
● Dependence on customer involvement
What is Kanban Methodology?

Kanban is one of the simplest frameworks used as it allows project managers


to efficiently manage and keep track of their projects. Kanban methodology is
an agile method that aims at continuous improvement, flexibility in task
management, and enhanced workflow.
What is a Kanban board?
● Physical or virtual board
● Three workflows.
● Each task is represented as a “card” A short description
○ The name of the person responsible
○ An estimate of how long it will take
○ Requirements to move it to the next stage
● Virtual cards may also contain other data, including links to relevant
documents and supporting files.
Kanban is a pull system
● Lean technique that controls the flow of work by replacing what’s
completed.
○ E.g. A vending machine.
● Kanban is about work states.
● Kanban focuses on breaking down work into small tasks, visualising them,
and getting a few items in any given work state.
● In the Kanban board, work always moves from left to right.
Core practices of Kanban methodology
1. Visualization of workflow.
● Visualisation of the entire project
● Advanced project management tools

2. Reduction of WIP
● Ensure maximum efficiency.
● The Limit has been apply on Kanban board one tasks that performed
at once.
● No new task can be pulled.
3. Efficient workflow management:
● Measuring lead time and cycle time. ex.Jira ,Nimble
4. Explicit management policies:
● Project team must know the project goal.
5. Take feedback
● Effective feedback system is extremely important.
● External evaluator or the customers.
Benefits of using Kanban Framework

● Limiting Work in Progress and setting policies will result in a better focus
on quality and, as a result, increased customer satisfaction.
● Use transparency to drive process improvement.
● Minimized Waste.
● Less process overhead.
● A more precise and predictable pace guarantees that team members are
never overburdened.
● Allows for quick reprioritization in order to adapt changes according to
market demand.
● Better task flow.
● The composition of the team can also be changed.
● Helps achieve improved productivity of teams
● Prioritization helps in streamlining processes and workflow.
● Enhanced quality of work
● Reduced queue time
● Reduction of wasted effort
Sr. Kanban Scrum
no
1 Planning, release, and process Iteration is timeboxed.
improvement can have separate
cadences.
2 For planning and process improvement, For planning and process improvement,
the lead time is used as the default Velocity is used as the default metric
metric
3 Cross-functional teams are optional. Cross-functional teams prescribed.
4 Project Tracking: CFD can be used to Project Tracking: Burndown chart is prescribed
understand workflow progress.
5 WIP limited directly (per workflow WIP is limited indirectly (per sprint).
state)
6 Can add new items whenever the WIP Cannot add items to ongoing iteration.
limit falls
The benefits of Agile
1. Satisfied customers
● Stakeholders want to be engaged throughout the project life cycle so
they can offer feedback and ensure that the final product will be suited
to their needs.

2. Improved quality.
● Agile methodologies use an iterative approach.
● This consistent focus on improvement and quality control is one of the
core principles of Agile.
3. Adaptability
● The central theme of Agile is flexibility.
● Deliver consistently and manage clients changing requirements
effectively.

4. Predictability
● Sprints.
● Measure team performance and assign resources accordingly.
● Predict costs for shorter time periods.
5. Reduced risk
● Developers regularly assess progress during sprints.
● Effective risk mitigation process.

6. Better communication
● Face-to-face communication and continuous interaction.
● Conduct daily meetings.
● Eliminate potential confusion to successfully achieve their objectives.

You might also like