Notes SE Module 3
Notes SE Module 3
By
Just if we see the meaning of Agile – it seems to be “clever / brilliant / power full
/ move quickly” in connection to software engineering, combines a philosophy
and a set of development guidelines.
Agile Process: Recent days all development process looks for agile model not
only in technical field even in other fields like, health care field, aviation filed
and marketing field and so on, because of the following few advantages.
Little planning
Frequent delivery
Face to face communication
Changes (Technology/People)
Time (Rapid project development)
Updated versions can be released …
Agile process model is the most commonly used model in today's digital era.
Most utilized Shopping application like Amazon , Flip kart & social application
like Instagram , Face book uses agile model only.
Traditional versus Agile process model:
For example traditional process model like waterfall model all process
activities are completed one after other and final product is deployed at
customer end for feedback.
But in Agile process model required work will be divided into number of
modules, where each module is developed in an iterative and incremental
manner. The model is deployed at customer end at each iteration for feed
back, if any changes that are included in next iteration along with new
functionalities.
1. Follow-Un follow
2. Edit
3. Search
4. Messaging
5. Post photo
6. Upload story
7. Make reels
8. Go live
Here are 8 different functionalities that should taken up for the development of
simple Instagram application. As per basic guidelines of agile principle all 8
applications need not be considered at one stretch, instead these can be taken in
iterative manner considering 3 at a time and these are released to customer end
for feedback.
If any changes raised by the customer those changes are included in the next
iteration along with addition of new functionalities and re released to the customer
end and process continues till the completion of all functionalities by satisfying
the customer needs.
Simple Block Diagram Showing Agile Process.
Agile Principles: There are 12 agility principles for those who want to
achieve agility:
4. Stake holders and developers must work together daily throughout the
project.
Should work every day, collaborating and communicating with each other
routinely becoming part of team.
5. Build projects around motivated individuals.
All stakeholders and team members are encouraged to achieve the best. Teams
are given the tools, support, and trust to accomplish project goals.
11. The best architectures, requirements, and designs emerge from self–
organizing teams.
Self organizing team with coordination create the best designs and meet
requirements successfully.
12. The team reflects on how to become more effective at regular intervals.
Efficiency increases at regular intervals adjusting with small actions.
Agile Methodologies: Since Agile models are the best process model for most
of development activity, similar to traditional process, here also there is no single
or ideal methodology.
Common types of agile SDLC methodologies/frame work are:
Planning
Design
Coding
Test
Release
Feed back
Coding: The concept of coding which is used in the XP model is slightly different
from traditional coding.
Extreme Programming (XP) promotes pair programming i.e. developers work
together at one workstation, enhancing code quality and knowledge sharing.
They write tests cases before coding to ensure functionality from the start (TDD),
and frequently integrate their code into a shared repository with automated tests
to catch issues early.
Testing: Extreme Programming (XP) gives more importance to testing that
consist of both unit tests and acceptance test.
Unit tests, which are automated, check if specific features work correctly or not
with respect to each query .
Acceptance tests, conducted by customers, ensure that the overall system meets
initial requirements. This continuous testing ensures the software’s quality and
alignment with customer needs.
Feedback: One of the most important aspects of the XP model is to gain feedback
by listening from the customer to understand the exact needs.
Frequent contact with the customer makes the development effective, through
adapt to any changes.
• Simplicity
• Speedy
• Time & Cost effective
• Refactoring / Team work
• Flexibility
• Higher quality
• Customer satisfaction
•
Few disadvantages are:
Scrum master is a team leader leads the meeting and accesses the responses from
each person. After each review a potential software increment is released to
customer so that functionalities can be demonstrated and evaluated.
Following figure represents detailed process with each face shown above.
Few advantages are:
• Effective
• Team communication
• Flexibility
• Adaptability
• Transparency & Accountability
• Customer satisfaction
Teams can find ways on their own to improve and optimize their workflows.
Every project is unique and dynamic, (always changing) which is why project’s
team is best suited to determine and tackle the work.
Crystal Agile approaches are particularly suitable for project types where
adaptability, team collaboration, and continuous improvement are essential. This
frame work focuses on delivering valuable high-quality software in an iterative
and incremental manner.
The framework's primary focus is not on completing tasks and meeting deadlines
but on building a strong team dynamic.
The methods are color – coded specifying team size and work space . Crystal
clear with team size 1-6 members, Crystal yellow with team size 7- 20 members,
Crystal orange with team size 21- 40 members and Crystal red with team size
41- 80 members. As the team size increases, problem complexity also increases.
Few advantages are:
Feasibility study
Business study
Functional model iteration
Design and build iteration
Implementation
The primary goal of the team is to build software, not create models
Travel high but don’t create more models than you need.
Strive to produce the simplest model to describe the software
Build models which are adaptable to change
State explicit purpose for each model that is created
Adapt the models to the system at hand
Try to build useful models
Get feedback as soon as you can