Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Every software development methodology has more or less its own approach to software development.
There is a set of more general approaches, which are developed into several specific
methodologies. These approaches are: -
Waterfall
Iterative and Incremental development
Develop a system through repeated cycles (iterative) and in smaller portions at a time
(incremental).
Incremental development slices the system functionality into increments (portions). In each
increment, a slice of functionality is delivered through cross-discipline work, from the
requirements to the deployment. The unified process groups increments/iterations into
phases: inception, elaboration, construction, and transition
Iterative and Incremental development is at the heart of a cyclic software development process
developed in response to the weaknesses of the waterfall model. It starts with an initial planning and
ends with deployment with the cyclic interactions in between.
Iterative and incremental development are essential parts of the Rational Unified Process, Extreme
Programming and generally the various agile software development frameworks.
Agile software Overview
Agile methods break tasks into small increments with minimal planning, and do not directly
involve long-term planning. Iterations are short time frames ("timeboxes") that typically last from
one to four weeks. Each iteration involves a team working through a full software development
cycle including planning, requirements analysis, design, coding, unit testing, and
acceptance testing when a working product is demonstrated to stakeholders. This helps minimize
overall risk, and lets the project adapt to changes quickly.
An agile software project mean to be capable of releasing new software at the end of every iteration.
In many cases, software is released at the end of each iteration. This is particularly true when the
software is web-based and can be released easily. Including all of these at the end of every team re-
evaluates project priorities.
The group then went further to define the principles behind the Agile Manifesto. The Agile
Principles are listed here:
1. Agile's take care of the customer through early and continuous delivery of useful software.
2. Agile's are ready to face any type of changing during the development.
3. Agile's are much serious about to deliver software frequently as soon as possible.
4. Agile's basic rule is the cooperation and communication between the customer and developers.
10. Agile provide the working software it is the assessment of the progress.
11. The best requirements analysis and designs take care by trusted consider team.
12. As per the requirement they are ready for any changes.
Agile Methods:-
There are many agile methods and most of them try to minimize risk by developing software in
limited time period called iterations and each iteration is like a mini software project of its own
including all the necessary step to make a new functionality like analysis, planning, design,
coding, testing and documentation.
2. Scrum: - is an agile software development method for project management (Schwaber 1995
and by Schwaber and Beedle 2002).
7. Adaptive Software Development: - is a software development process that grew out of rapid
application development work by Jim Highsmith and Sam Bayer in 2000.
Time boxing:-
Time boxing is a time management technique common in planning projects (typically for software
development), where the schedule is divided into a number of separate time periods
(timeboxes, normally two to six weeks long), with each part having its own deliverables, deadline
and budget. Timeboxing is a core aspect of rapid application development (RAD) software
development processes such as dynamic systems development method (DSDM) and agile
software development.
Pair programming: -
Pair programming is an agile software development technique in which two programmers work
together at one work station. One types in code while the other reviews each line of code as it is
typed in. The person typing is called the driver. The person reviewing the code is called the
observer (or navigator). The two programmers switch roles frequently.
A sprint is a time-boxed period of software development focused on a given list of goals (but with
variable scope).The sprints are often held near conferences which most of the project team attend,
but they can also be hosted by some involved party at their premises or some interesting location.
Sprints can vary in focus. During some sprints people new to the project are welcomed and get an
intensive hands-on introduction pairing with an experienced project member. The first part of such
sprints is usually spent getting ready, presenting the tutorials, getting the network setup and CVS
or Subversion checkouts working on everyone's computers. A different kind of sprint is where
only the core team gathers and gets some important work done in a concentrated manner.
A significant benefit of sprinting is that the project members meet in person, socialize, and start to
communicate more effectively than when working together remotely.
=====================================================================
Agile Method:-
Scrum Methodology:-
Scrum is an (agile approach to software development) iterative, incremental framework for project
management and agile software development.
The Product Backlog is the master list of all functionality desired in the product.
The sprint backlog is the list of tasks that the Scrum team is committing that they will complete
in the current sprint. Items on the sprint backlog are drawn from the Product Backlog/ Release
Backlog, by the team based on the priorities set by the Product Owner and the team's
perception of the time it will take to complete the various features. The sprint backlog is very
commonly maintained as an Excel spreadsheet but it is also possible to use your defect tracking
system or any of a number of software products designed specifically for Scrum or agile. An
example of the Sprint Backlog in Excel.
The Product Owner (typically someone from a Marketing role or a key user in internal development)
prioritizes the Product Backlog . The Scrum Team looks at the prioritized Product Backlog and
slices off the top priority items and commits to completing them during a sprint. These items become
the Sprint Backlog. In return for their commitment to completing the selected tasks (which, by
definition, are the most important to the product owner), the product owner commits that he or she will
not throw new requirements at the team during the sprint. Requirements are allowed to change (and
change is encouraged) but only outside the sprint. Once the team starts on a sprint it remains
maniacally focused on the goal of that sprint.
5. ScrumMaster: -
The ScrumMaster is responsible for making sure a Scrum team lives by the values and practices of
Scrum. The ScrumMaster protects the team by making sure they do not over-commit themselves
to what they can achieve during a sprint. The ScrumMaster facilitates the daily scrum and
becomes responsible for removing any obstacles that are brought up by the team during those
meetings. The ScrumMaster role is typically filled by a project manager or a technical team leader
but can be anyone.
Everyone on the project works together to complete the set of work they have collectively committed
to complete within a sprint. Scrum teams develop a deep form of camaraderie and a feeling that "we're
all in this together." A typical Scrum team is 6-10 people but Jeff Sutherland has scaled Scrum up to
over 500 people and I have used it with over 150.
The sprint burn down chart is a publicly displayed chart showing remaining work in the sprint
backlog. Updated every day, it gives a simple view of the sprint progress. It also provides quick
visualizations for reference.
A burn down chart is a graphical representation of work left to do versus time. The outstanding work
(or backlog) is often on the vertical axis, with time along the horizontal. That is, it is a run chart of
outstanding work. It is useful for predicting when all of the work will be completed. It is often used in
agile software development methodologies such as Scrum.
Scrum projects make progress in a series of sprints, which are time boxed iterations
no more than a month long. At the start of a sprint, team members commit to delivering some
number of features that were listed on the project’s product backlog. At the end of the
sprint, these features are done--they are coded, tested, and integrated into the evolving
product or system.
At the end of the sprint a sprint review is conducted during which the team demonstrates the
new functionality to the product owner and other interested stakeholders who provide
feedback that could influence the next sprint.
FLOW