0% found this document useful (0 votes)
22 views10 pages

Software Project Management

The document outlines various Agile development methodologies, including Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD), emphasizing principles such as customer satisfaction, adaptability to change, and iterative development. It details the Agile process, XP values, and the roles within Scrum, as well as other Agile models like Lean Software Development and Agile Unified Process. Additionally, it highlights key project management concepts essential for successful software development.

Uploaded by

Sai Priya
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)
22 views10 pages

Software Project Management

The document outlines various Agile development methodologies, including Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD), emphasizing principles such as customer satisfaction, adaptability to change, and iterative development. It details the Agile process, XP values, and the roles within Scrum, as well as other Agile models like Lean Software Development and Agile Unified Process. Additionally, it highlights key project management concepts essential for successful software development.

Uploaded by

Sai Priya
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/ 10

UNIT-2

Agile development- agility, agile process. Extreme programming- XP Values, The XP Process, Industrial XP,
The XP Debate. Agile development models- Adaptive Software Development(ASD), Scrum, Dynamic
Systems Development Method (DSDM), Crystal, Feature Driven Development (FDD), Lean Software
Development (LSD), Agile Modeling (AM), Agile Unified Process (AUP).

Project management concepts- the management spectrum, people, product, process, and project

AGILE DEVELOPMENT
1. AGILITY
Agility is defined by Roger Pressman as:
 Effective (rapid and adaptive response) to change
 Effective communication among all stakeholders
 Drawing customers on to team
 Organizing a team so that it is in control of the work performed.
Agility can be applied to any software process. The process to delivery an agile software delivery includes:
 It is driven by customer description of what is required.
 Recognizes that plans are short lived
 Develops software iteratively with a heavy emphases on construction activity
 Delivery multiple software increments
 Adapts as changesoccurs

2. AGILE PROCESS
Any agile software process is characterized in a manner that addresses a number of key assumptions about the majority
of software projects:
1. It is difficult to predict in advance which software requirements will persist and which will change.
2. For many types of software, design and construction are interleaved.
3. Analysis, design, construction, and testing are not as predictable as we might like.

Agility Principles:
The Agile Alliance defines 12 agility principles for those who want to achieve agility:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to
the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust
them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is
face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity—the art of maximizing the amount of work not done—is essential.
11. The best architectures, requirements, and designs emerge from self- organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.

3. EXTREME PROGRAMMING (XP)


Extreme Programming (XP) is an Agile software development method. The goals of XP is
 To produce high quality software.
 To reduce the cost ofchanges by having multiple short development cycles, rather than one.
3.1. The XP Process: The XP Process defines four framework activities. These activities are as shown in below Fig(1).
a).XP Planning:
 Begins with creation of a set of stories.(Layer stories)
 Each story is written by customer and placed on index card
 The customer assign a value (priority) to story.
 Agile team assess each story and assigns a cost
 Stories are grouped to for a delivery increment
 A commitment is made on delivery date.
 After first increment “Project Velocity” is used to help define subsequent delivery dates for other
increments.
b).XP Design:
 Follow KIS (Keep It Simple) Principle
 Encourage use of CRC Cards. (Class Responsibility Collaboration).
 For different design problems, suggests creation of “Spike Solution”- a design prototype.
 Encourages “Refactoring”.
 Design occurs both before and after coding commences.
c).XP Coding:
 Recommends construction of unit tests for each of stories before coding commences.
 Encourages “Pair Programming” –XP recommends that two people work together at one computer
workstation to create code for story.
o Mechanism for real time problem code for story and real time quality assurance.
o Keeps developers focused on the problem at hand.
 Needs continuous interaction with other portions (stories) of software, which provides “Smoke Testing”
environment- that helps to uncover errors early.
d).XP Testing:
 Unit test should be implemented using framework to make testing automated. This encourages regression
testing strategy.
 Integration and Validation Testing occurs on daily basis.
 Acceptance Tests also called ‘Customer Tests’ are specified by customer and executed to assess customer visibility
functionality.
 Acceptance tests are derived from user stories.
Industrial XP:
Joshua Kerievsky describes Industrial Extreme Programming(IXP) in the following manner:
“IXP is an organic evolution of XP. IXP differs most from the original XP in its greater inclusion of management, its
expanded role for customers, and its upgraded technical practices.” IXP incorporates six new practices that are designed to
help ensure that an XP project works successfully for significant projects within a large organization:
 Readiness assessment
 Project community
 Project chartering
 Test-driven management
 Retrospectives
 Continuous learning

4. OTHER AGILE PROCESS MODELS


The most widely used of all agile process models is Extreme Programming (XP). But many other agile process models
have been proposed and are in use across the industry. Among the most common are:
• Adaptive Software Development (ASD)
• Scrum
• Dynamic Systems Development Method (DSDM)
• Crystal
• Feature Drive Development (FDD)
• Lean Software Development (LSD)
• Agile Modeling (AM)
• Agile Unified Process (AUP)
i). ADAPTIVE SOFTWARE DEVELOPMENT (ASD)
Adaptive Software Development (ASD) has been proposed by Jim Highsmith as a technique for building complex
software and systems. The philosophical underpinnings of ASD focus on human collaboration and team self-organization.

• During speculation, the project is initiated and adaptive cycle planning is conducted. Adaptive cycle planning
uses project initiation information the customer’s mission statement, project constraints and basic
requirements.
• Motivated people use collaboration in a way that multiplies their talent and creative output beyond their
absolute numbers. It encompasses communication and team work, but it also encompasses individualism.
Because individual creation plays an important role in collaborative thinking. Collaborative require the ability to
work jointly to produce results, share knowledge or make decisions.
• Learn part of lifecycle is vital for success of project. Team has two enhance their knowledge constantly, using
practice such as
• Technical reviews
• Project retrospectives
• Customer focus groups
• Reviews should be done after each iteration. Both developers and customers examine their assumptions and
use results of each development cycle to learn direction of next. The team learns about product changes and
how products are being developed.
ii).SCRUM:

• Scrum is one of the most popular Agile software methodology. It is a process where software is delivered in
time box edit rations. The iterations are called ‘Sprints’. Time boxing allocates a fixed time period for planned
activity.
• Scrum principles are used to guide development activities within a process that incorporates following
framework activities”
• Requirements
• Analysis
• Design
• Evolution
• Delivery
Scrum Roles: There are three roles in Scrum.
• Product owner
• Scrum Team
• Scrum Master
Product owner maintains a product backlog- a place holder for high level requirements to be implemented.
Scrum Team will perform software development and participate in daily standup meetings. There will be close
interacting with business during development. Scrum Team will consider top high priority tickets to be
implemented from product backlog for sprint. This activity is known as sprint planning and happens during
start of each sprint. Sprint review happens at end of each sprint where new features implemented are
demonstrated to stakeholders.
A team leader, called Scrum Master, leads the meeting and accesses the responses from each person.
Responsible for enacting scrum values and practice. Remove impediments/politics, keeps every one predictive.
iii).DYNAMIC SYSTEMS DEVELOPMENT METHOD (DSDM):

• The Dynamic Systems Development Method (DSDM) is an agile software development approach. It is an
iterative , incremental approach that is largely Rapid Application Development RAD methodology. This method
provides four phases Frame work consisting of
• Feasibility Study and Business Study
• Functional Model Iteration
• Design and Building Iteration
• Implementation
Feasibility study establishes the basic business requirements and constraints associated with the application to
be built and then assesses whether the application is a viable candidate for the DSDM process.
Business study establishes the functional and information requirements that will allow the application to
provide business value; also, defines the basic application architecture and identifies the maintainability
requirements for the application.
Functional model iteration: The requirements are finalized and prioritized in business and feasibility study,
then built a functional prototype model. This stage further subdivided into smaller substages.
• Identifies functional prototype
• Accept plan and schedule
• Create a functional prototype
• Review the functional prototype(invite end users)
Design and build iteration: This phase first begins with ensuring that the functionalities as built meet end users
expectations and can function well in practical and operational environment. This stage comprises four sub
stages.
• Identifies design prototype
• Accept plan and schedule
• Create a design prototype
• Review the design prototype
Implementation: Tested application is put up in live environment and is made available to end users. Training
to end users is also provided. It is broken down into 4 sub parts.
• User approval and guidelines
• Train users
• Implement
• Review business
iv).CRYSTAL:

• Crystal methodology is one of the most light weight adaptable approaches to software development. Crystal is
a family of process models with same “genetic code” but different methods for adapting to project
characteristics.
• Crystal is actually comprised of family of agile methods such as crystal yellow, Crystal clear, Crystal orange and
other by several factors such as team size, system criticality and project priorities. This crystal family addresses
realization that each project may require a slightly tailored set of policies, practices and processes in order to
meet projects unique characteristics.
• Comfort[C], Discretionary Money [D], Essential Money [E] and Life[L] are the four levels of criticality. There is
no size restriction in a project, it allows the maximum number of people involvement.
• Ex: L40 –Project with 40 people developing life critical system.

v).FEATURE DRIVE DEVELOPMENT (FDD):

• Feature Driven Development (FDD) was originally conceived by Peter Coad and his colleagues as a practical
process model for object-oriented software engineering. FDD adopts a philosophy that
• emphasizes collaboration among people on an FDD team;
• Manages problem and project complexity using feature-based decomposition followed by the integration of
software increments, and
• Communication of technical detail using verbal, graphical, and text-based.
• In the context of FDD, a feature “is a client-valued function that can be implemented in two weeks or less” .
The emphasis on the definition of features provides the following benefits:
• Because features are small blocks of deliverable functionality, users can describe them more easily; understand
how they relate to one another more readily; and better review them for ambiguity, error, or omissions.
• Features can be organized into a hierarchical business-related grouping.
• Since a feature is the FDD deliverable software increment, the team develops operational features every two
weeks.
• Because features are small, their design and code representations are easier to inspect effectively.
• Project planning, scheduling, and tracking are driven by the feature hierarchy, rather than an arbitrarily
adopted software engineering task set.
• Coad and his colleagues suggest the following template for defining a feature:
• <action>the<result><by for of to>a(n) <object>, where an <object> is “a person, place, or thing. Examples of
features for an e-commerce application might be:
• Add the product to shopping cart
• Display the technical-specifications of the product Store the shipping-information for the customer
• A feature set groups related features into business-related categories and is defined as:
• <action><-ing> a(n) <object>
For example:-
• Making a product sale is a feature set that would encompass the features noted earlier and others. The FDD
approach defines five “collaborating” framework activities (in FDD these are called “processes”) as shown in
below Figure (3).

vi).LEAN SOFTWARE DEVELOPMENT (LSD)

• Lean Software Development (LSD) has adapted the principles of lean manufacturing to the world of software
engineering. The lean principles that inspire the LSD process can be summarized as
• Eliminate waste,
• Build quality in,
• Create knowledge,
• Defer commitment,
• Deliver fast,
• Respect people and
• Optimize the whole.
• Each of these principles can be adapted to the software process. For example, eliminate waste within the
context of an agile software project can be interpreted to mean :
• adding no extraneous features or functions,
• assessing the cost and schedule impact of any newly requested requirement,
• removing any superfluous process steps,
• establishing mechanisms to improve the way team members find information,
• ensuring the testing finds as many errors as possible,
• reducing the time required to request and get a decision that affects the software or the process that is applied
to create it, and
• streamlining the manner in which information is transmitted to all stakeholders involved in the process.
vii).AGILE MODELING (AM)

• AM is a methodology for modeling and documenting software system based on best practices. Itis collection of
values and principles that can be applied on software development project. Am suggests wide array of core
and supplementary principles which are:
• Model with a purpose. A developer who uses AM should have a specific goal(e.g., to communicate information
to the customer or to help better understand some aspect of the software) in mind before creating the model.
Once the goal for the model is identified, the type of notation to be used and level of detail required will be
more obvious.
• Use multiple models. There are many different models and notations that can be used to describe software.
Only a small subset is essential for most projects. AM suggests that to provide needed insight, each model
should present a different aspect of the system and only those models that provide value to their intended
audience should be used.
• Travel light. As software engineering work proceeds, keep only those models that will provide long-term value
and jettison the rest. Every work product that is kept must be maintained as changes occurs.
• Content is more important than representation. Modeling should impart information to its intended audience.
• Know the models and the tools you use to create them. Understand the strengths and weaknesses of each
model and the tools that are used to create it.

viii).AGILE UNIFIED PROCESS (AUP)

• The Agile Unified Process (AUP) adopts a“serial in the large” and “iterative in the small” philosophy for building
computer-based systems. By adopting the classic UP phased activities—inception, elaboration, construction,
and transition. AUP provides a serial overlay that enables a team to visualize the overall process flow for a
software project. However, within each of the activities, the team iterates to achieve agility and to deliver
meaningful software increments to end users as rapidly as possible. Each AUP iteration addresses the following
activities
• Modeling. UML representations of the business and problem domains are created. However, to stay agile,
these models should be “just barely good enough” to allow the team to proceed.
• Implementation. Models are translated into source code.
• Testing. Like XP, the team designs and executes a series of tests to uncover errors and ensure that the source
code meets its requirements.
• Deployment. It focuses on the delivery of a software increment and the acquisition of feedback from end
users.
• Configuration and project management. In the context of AUP, configuration management addresses change
management, risk management, and the control of any persistent work products that are produced by the
team. Project management tracks and controls the progress of the team and coordinates team activities.
• Environment management. Environment management coordinates a process infrastructure that includes
standards, tools, and other support technology available to the team.
Project management concepts:

For properly building a product, there’s a very important concept that we all should know in software project planning
while developing a product. There are 4 critical components in software project planning which are known as
the 4P’s namely:
 Product
 Process
 People
 Project

These components play a very important role in your project that can help your team meet its goals and objective. Now,
Let’s dive into each of them a little in detail to get a better understanding:

 People
The most important component of a product and its successful implementation is human resources. In building a
proper product, a well-managed team with clear-cut roles defined for each person/team will lead to the success of
the product. We need to have a good team in order to save our time, cost, and effort. Some assigned roles in
software project planning are project manager, team leaders, stakeholders, analysts, and other IT professionals.
Managing people successfully is a tricky process which a good project manager can do.
 Product
As the name inferred, this is the deliverable or the result of the project. The project manager should clearly define
the product scope to ensure a successful result, control the team members, as well technical hurdles that he or she
may encounter during the building of a product. The product can consist of both tangible or intangible such as
shifting the company to a new place or getting a new software in a company.
 Process
In every planning, a clearly defined process is the key to the success of any product. It regulates how the team will
go about its development in the respective time period. The Process has several steps involved like, documentation
phase, implementation phase, deployment phase, and interaction phase.
 Project
The last and final P in software project planning is Project. It can also be considered as a blueprint of process. In
this phase, the project manager plays a critical role. They are responsible to guide the team members to achieve
the project’s target and objectives, helping & assisting them with issues, checking on cost and budget, and making
sure that the project stays on track with the given deadlines.

You might also like