Professional Documents
Culture Documents
Unit-1 Asd
Unit-1 Asd
Unit-1 Asd
The four core values outlined in the Agile Manifesto are as follows:
concept
inception
iteration/construction
release
production
retirement
A
visualization of the Agile software development cycle
The third step, iteration/construction, is when teams start creating working
software based on requirements and continuous feedback. The Agile software
development cycle relies on iterations -- or single development cycles -- that
build upon each other and lead into the next step of the overall development
process until the project is completed. Each iteration typically lasts between two
to four weeks, with a set completion date. The goal is to have a working product
to launch at the end of each iteration.
Multiple iterations occur throughout the development cycle and they each
possess their own workflow. A typical iteration flow consists of the following:
After the release, the fifth step, production, focuses on the ongoing support
necessary to maintain the software. The development teams must keep the
software running smoothly while also teaching users exactly how to use it. The
production phase continues until the support has ended or the product is planned
for retirement.
Throughout the Agile cycle, different features can be added to the product
backlog, but the entire process should consist of repeating each step over and
over until every item in the backlog has been satisfied. This makes the Agile
cycle more of a loop than a linear process. At any time, an enterprise can have
multiple projects occurring simultaneously with iterations that are logged on
different product lines and a variety of internal and external customers
providing different business needs.
Scrum
Lean software development
Extreme programming
Crystal
Kanban
Dynamic systems development method
Feature-driven development
Once the team and the product owner have established the priorities, cross-
functional teams step in and agree to deliver working increments of software
during each sprint -- often within 30 days. After each sprint, the product
backlog is reevaluated, analyzed and reprioritized in order to select a new set of
deliverable functions for the next sprint. Scrum has gained popularity over the
years since it is simple, has proven to be productive and can incorporate the
various overarching practices promoted by the other Agile methods.
Sprint: A Sprint is a time box of one month or less. A new Sprint starts
immediately after the completion of the previous Sprint. Release: When the
product is completed, it goes to the Release stage. Sprint Review: If the
product still has some non-achievable features, it will be checked in this stage
and then passed to the Sprint Retrospective stage. Sprint Retrospective: In
this stage quality or status of the product is checked. Product
Backlog: According to the prioritize features the product is organized. Sprint
Backlog: Sprint Backlog is divided into two parts Product assigned features to
sprint and Sprint planning meeting.
Advantage of using Scrum framework:
Scrum framework is fast moving and money efficient.
Scrum framework works by dividing the large product into small sub-
products. It’s like a divide and conquer strategy
In Scrum customer satisfaction is very important.
Scrum is adaptive in nature because it have short sprint.
As Scrum framework rely on constant feedback therefore the quality of
product increases in less amount of time
Disadvantage of using Scrum framework:
Scrum framework do not allow changes into their sprint.
Scrum framework is not fully described model. If you wanna adopt it you
need to fill in the framework with your own details like Extreme
Programming(XP), Kanban, DSDM.
It can be difficult for the Scrum to plan, structure and organize a project that
lacks a clear definition.
The daily Scrum meetings and frequent reviews require substantial
resources.
Increasing learning
Empowering the team
Fostering integrity
Removing waste
Understanding the whole
Making decisions as late as possible
Delivering the product as fast as possible
The Lean method relies on fast and reliable feedback between the customers
and programmers in order to provide fast and efficient development workflows.
To accomplish this, it provides individuals and small teams with decision-
making authority instead of relying on a hierarchical flow of control. To
eliminate waste, the Lean method asks users to only select truly valuable
features for their system, prioritize these chosen features and then deliver them
in small batches. Lean software development also encourages automated unit
tests to be written simultaneously with the code and concentrates on ensuring
every member of the team is as productive as possible.
In many instances, the customer has no clear picture of the end result,
which makes it almost unrealistic to accurately estimate scope, cost,
and time;
Regular meetings with customers often take a great deal of time that
could instead be spent on actual code writing;
Documentation can be scarce and lack clear requirements and
specifications, leading to project scope creep;
The rapid transition from traditional methods of software development to
extreme programming demands significant cultural and structural
changes;
Pair programming takes more time and doesn’t always work right due
to the human factor and character incompatibility;
XP works best with collocated teams and customers present in person
to conduct face-to-face meetings, limiting its application with distributed
teams;
Sometimes customers have neither the desire, time, nor expertise to
participate in product development. Considering tight deadlines, it can
become a source of stress as either no valuable feedback is provided, or a
non-technical representative attempts to manage tech specialists with
little or no knowledge on the process;
Some authors also mention overfocusing on code over design, lack of
quality assurance, code duplication, and poor results with inexperienced
developers.
But before we dive in, it’s important to note that XP is not really a project
management framework, even though a lot of its practices overlap with those
from the project management domain. So, its primary focus is on the technical
aspects of development and the implementation of specific practices rather than
the management and organizational sides.
Extreme programming vs Scrum
Scrum is commonly associated with self-organizing teams. It also usually has
sprints that are 2 to 4 weeks long, while XP iterations are shorter, taking 1 to 2
weeks. Besides, XP is much more flexible with possible changes within
iterations, while Scrum doesn’t allow any modifications after the sprint backlog
is set. Another difference is that in XP the customer prioritizes features and
decides on the order of their development, but in Scrum the team itself
determines what to work on first.
Scrum’s main roles are Product Owner, Scrum Master, and Scrum Team, which
are different from those in XP.
When to use XP
Now that we discussed the XP methodology pros and cons and identified its
place among other agile frameworks, we can talk about the cases when it’s
applicable. It’s important to make sure a company’s size, structure, and
expertise, as well as the staff’s knowledge base allow for applying XP practices.
These are the factors to consider.
Highly-adaptive development. Some systems don’t have constant functionality
features and implies frequent changes. XP was designed to help development
teams adapt to fast-changing requirements.
Small teams. XP practices are efficient for teams that don’t exceed 12 people.
Managing such groups is usually easier, communication is more efficient, and it
takes less time to conduct meetings and brainstorming sessions.
Kanban uses three basic principles: visualize the workflow; limit the amount of
work in progress; and improve the flow of work. Like the Scrum, the Kanban
method is designed to help teams work more efficiently with each other. It
encourages continuous collaboration and attempts to define the best possible
workflow in order to promote an environment with active and ongoing learning
and improvement.
1. Collaboration
2. On-time delivery
3. Demonstrated control
4. Continuous, clear communication
5. A constant focus on the business need
6. Iterative development
7. Creation in increments from firm foundations
8. Refusal to compromise quality
In the DSDM, rework is built into the process and all changes must be
reversible. System requirements are prioritized using MoSCoW Rules, which
ranks priority as follows:
M -- must have
S -- should have
C -- could have, but not critical
W -- won't have now, but could have later
It's important in DSDM that not every requirement is considered critical. Each
iteration should include less critical items which can be removed so higher
priority requirements are not impacted.
In the Waterfall era of software development, coders worked alone, with little to
no input before handing the software to testers and then on to production. Bugs,
complications and feature changes either weren't handled well, or were dealt
with so late in the process that projects were seriously delayed or even scrapped.
The idea behind the Agile model, in which everyone -- including the business
side -- stayed involved and informed in the development process, represented a
profound change in both company culture and the ability to get better software
to market more quickly.
On the other hand, many would say the biggest disadvantage of Agile is the fact
it has been modified -- some would say diluted -- by many organizations. This
phenomenon is so widespread that the "Agile my way" practitioners are known
as "ScrumButs," as in, "We do Scrum in our organization, but …."
Although Agile opens the lines of communication between developers and the
business side, it's been less successful bringing testing and operations into that
mix -- an omission that may have helped the idea of DevOps gain traction.
Principle 3 – Collaborate
Collaboration encourages increased understanding, greater speed and shared
ownership, which enable teams to perform at a level that exceeds the sum of
their parts.
Type of
Product Description
Product
The Prioritised
It describes, at a high level, the requirements that the
Requirement Evolutionary
project needs to address and indicates their priority.
List
Type of
Product Description
Product
MODELING MISCONCEPTIONS
The vast majority of people believe this to be true. The Agile Manifesto has
been in effect since 2001, while the Scrum Pattern language was initially
presented in 1995. Agile may be new in comparison to time-tested techniques
such as waterfall, but Agile practice is nothing new, having been in use for more
than two decades. Some authorities assert that Professor Alan Perlis coined the
word “agile” for the first time when he spoke on sequential recurrence,
integrated testing, and design at the 1968 NATO Conference on Software
Engineering.
You should thoroughly document the project to carry everyone along, keep
track of all decisions, learn from errors, and report on the project’s progress
. Agile development projects need some planning, which should cover specifics
like development priorities, an assessment of the work and responsibilities
involved, objectives, and an entire budget to serve as a guide for choices
throughout development. The fact that this is a “guide” and not a set course of
action is crucial. Planning is a continuous process that involves all parties
throughout development and monitoring progress.
Another misconception about Agile is that its approach is incompatible with the
process models from other models. The Agile approach, on the other hand,
gives customers more freedom to incorporate different elements of conventional
techniques into it. Although the phases in the agile method’s product
development cycles are shorter and more numerous, they are nevertheless
complete, like those in the other traditional approaches. Agile techniques are
incredibly compatible with conventional methods’ procedures in this way.
Also, one way to integrate the agile approach with a conventional plan-driven
model, such as the waterfall approach, is to employ its sprints within the
waterfall model’s linear structure to begin work on the subsequent stage without
finishing the preceding stage’s work first. Ultimately, it is up to the project
manager to decide whether and how to integrate agile approaches with other
methodologies.
A Scrum Master, who works in tandem with the product owner on agile
projects, is in charge of ensuring that the project’s development teams perform
at their highest level throughout each sprint. The project’s whole team,
including those accountable for achieving the project’s objectives through
continuous work on it, is a part of the agile product development team. The
development teams collaborate with the product owner to determine the number
of tasks to complete in each sprint and how to arrange them to complete the
project as quickly as feasible.
Communication.
Feedback.
Courage.
Fortune favors the bold, and you need the courage to make the difficult
decisions and change course, even if your team has already spent much time and
resources on the work.
Humility.
Although some iterations of Agile modeling values stop at four, other models
include this fifth one. Humility shows that everyone on the team is essential and
has equal value. Sometimes we can even be wrong! Humility, in this case,
means respect for others’ ideas and suggestions and acknowledging the value of
others’ contributions.
Ask why you’re developing the models and who you are developing them for.
2. Adopt Simplicity.
The more your understanding of a project grows, the more likely it will change.
Instead of fighting change, accept them and have the courage to readjust and
rebuild.
Your successors might have to improve or enhance your project after you
depart. Leave them enough documentation and models to expedite possible
changes or improvements.
5. Incremental Change.
It’s rare for a model to be complete on the first try. Models evolve as the project
grows and develops. You can cushion against the shock of change by making
minor changes to the models as needed.
6. Maximize Stakeholder Investment.
The team must make the best effort to develop software that meets the
stakeholder’s needs. Bear in mind, the whole purpose of producing the software
is to maximize the return for the client.
There are many modeling solutions available, so pick the ones that fit the
current situation best. Additionally, there are many different methods of
software delivery.
Nobody wants careless, rushed work. The developer doesn't like it because they
know it's not something they can be proud of deep down. The teams that come
later to check the work don't like it because sloppy work is challenging to
understand and means more hours spent fixing it. And finally, the end-users
won't like the sub-par work because it most likely won’t function properly or
doesn't meet their expectations.
9. Provide Rapid Feedback.
Models are just a means to the end, which is building great software for your
customer. Make sure that documentation and modeling directly support the goal
of your software development project.
Traveling light is another way of saying that you have sufficient documentation
about the models you’re developing, but no more than that. If you have too little
documentation, the developing team might lose its way—if you have too much,
the development team may forget that the primary goal is not writing
documentation but instead building software and the right models!
The Agile breaks down tasks into smaller iterations, each of which lasts for a
short time frame (one to four weeks) in the overall process model. As in the
case of the core values of Agile, there are several versions of the model and its
phases
Requirements Gathering:
Here is where you define the project’s requirements. This phase includes
explaining business opportunities and planning the time and effort required for
the project. Once you quantify this information, you can evaluate the technical
and economic feasibility of your project
Once you’ve identified the project parameters, work with the stakeholders to
define the requirements.
Construction/Iteration:
After the team defines and designs the requirements, the real work begins.
Product, design, and developer teams start working on related projects,
ultimately deploying a product or service that is not static.
Testing:
The quality assurance (QA) team examines and evaluates the product's
performance, looking for bugs and other flaws.
Deployment:
Feedback:
Once the product is released, the team receives feedback about the product and
handles any issues that may have arisen.