Uploaded by zaffaraqeel01

Light weight models in software development

advertisement
ASSIGNMENT 01
Software Project Management
NOVEMBER 8, 2022
AQEEL ZAFFAR
UW-19-CS-BS-001
Table of Contents
1.
Lightweight Software Development .................................................................................................. 2
Introduction ................................................................................................................................................. 2
2.
1.1
Scrum (1995)................................................................................................................................ 2
1.2
Crystal Clear ............................................................................................................................... 4
1.3
Extreme Programming (1996) ................................................................................................... 6
1.4
Adaptive Software Development ............................................................................................... 8
1.5
Feature-Driven Software Development..................................................................................... 9
1.6
Dynamic Systems Development Methods (1995) .................................................................... 11
Which Software process model is suitable for which environment? ............................................ 13
1. Lightweight Software Development
Introduction
Lightweight processes are beginning to replace more formal methods. The motivation for this
transition is based on many factors. The Internet, time to market, cost reduction, quality increases,
market pressures, as well as the popularization of these programming methods. This series of
articles will investigate the various lightweight methods, their impact on the management of
software development projects, and the processes by which managers can determine the
appropriateness and usefulness of the various processes. The definition of a lightweight Process is
more difficult than it would first appear.
A lightweight methodology is a software development method that has only a few rules and
practices, or only ones that are easy to follow. Examples of lightweight methodologies include1:

Adaptive Software Development by Jim Highsmith, described in his 1999 book Adaptive
Software Development.

Crystal Clear family of methodologies with Alistair Cockburn.

Extreme Programming (XP), promoted by people such as Kent Beck and Martin Fowler.

Feature Driven Development (FDD) developed (1999) by Jeff De Luca and Peter Coad.

ICONIX process, developed by Doug Rosenberg: An UML Use Case driven approach that
purports to provide just enough documentation and structure to the process to allow flexibility,
yet produce software that meets user and business requirements.
1.1 Scrum (1995)
Scrum is an agile project management methodology involving a small team led by a Scrum master,
whose main job is to remove all obstacles to getting work done. Work is done in short cycles called
sprints, and the team meets daily to discuss current tasks and any roadblocks that need clearing.
Scrum is a method for managing projects that allows for rapid development and testing, especially
within a small team. Scrum uses Iterative process2.
Silent features of Scrum are:
1
https://en.wikipedia.org/wiki/Lightweight_methodology#:~:text=A%20lightweight%20methodology%20i
s%20a,considered%20a%20%22heavyweight%20methodology%22.
2
https://www.geeksforgeeks.org/scrum-software-development/

Scrum is light-weighted framework

Scrum emphasizes self-organization

Scrum is simple to understand

Scrum framework help the team to work together
Life Cycle of Scrum
a) Sprint
A Sprint is a time-box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.
b) Release
When the product is completed then it goes to the Release stage.
c) Sprint Review
If the product still have some non-achievable features then it will be checked in this
stage and then the product is passed to the Sprint Retrospective stage.
d) Sprint Retrospective
In this stage quality or status of the product is checked.
e) Product Backlog
According to the prioritize features the product is organized.
f) Sprint Backlog
Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint
planning meeting.
Advantages of using the 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.
Examples of Scrum
Bill meets with a customer to discuss her company’s needs. Those needs are the product backlog.
Bill chooses the most important tasks to work on in the next two weeks. His team meets in a daily
scrum to target work for the day ahead and address roadblocks. At the end of the sprint, Bill
delivers the work, reviews the backlog, and sets the goal for the next sprint. The cycle repeats until
the software is complete.
1.2 Crystal Clear
Crystal Clear focuses on people rather than processes. It is not at all prescribed and stresses
flexibility. Teams using RVP, XP, or other methodologies can “borrow” useful techniques from
Crystal Clear and vice versa.
Crystal Clear is a book of what worked best for teams on successful projects. It describes the things
that make the most difference to the success or failure of a project.
Principles and Goals of Crystal Clear
Crystal Clear methodology operates on a set of 7 principles, three of which are paramount and the
remaining four are optional but highly advisable3.
a) Frequent Delivery
It is more critical to deliver working frequently, proper codes to users otherwise you may
find that you provided a useless product when it is too late to make changes.
b) Reflective Improvement
Crystal Clear isn’t prescriptive and surrenders many things over to the team to think about
them and agree after discourse. Experimentation is vital here. Thus, the team should
cooperate to find out which ideas work better and how they enhance their future
functioning practices.
c) Osmotic Communication
The team should work in the same room. Doing this enables members to gain from each
other regardless of whether it is inactively and gradual. This way the project gets completed
without so much structure.
d) Personal Safety
Members should accept and respect the ideas of one another without ridiculing or
reprimanding them. The main thing here is that there should exist mutual trust within the
team so that members can work through their problems and improve performance.
e) Focus
Project leaders should set priorities for the project and communicate them clearly to the
team. Afterward, team members should be given space and time to work on their tasks
without interruption.
f) Easy Access to Expert Users
Developers should put their software out there and listen to users feedback. They have to
do this frequently so that they can use the feedback to improve their products.
3
https://www.agilest.org/scaled-agile/crystal-clear/
g) Technical Environment
The project should be undertaken under suitable environment, fully equipped with
automates tests, frequent integration, and effective configuration management.
Examples of Crystal Clear
The most popular example of the Crystal agile methodology is the development of IBM’s Orange
platform, which was developed to help companies maintain compliance and security over their
technological devices, such as servers, desktop computers, laptops, and mobile devices. Cockburn
developed this strategy in response to the need for fast product delivery, close communication, and
frequent testing, feedback, and modification.
This methodology is also ideal for app development where small teams are involved. Frequent
testing and user input allow teams to identify errors early on in the developmental phase, which
not only helps the company save money but also speeds up the delivery time. Additionally, osmotic
or close communication is crucial for this type of development process4.
While Crystal agile is considered a lightweight methodology, it still requires the use of effective
communication and reporting tools.
1.3 Extreme Programming (1996)
Extreme Programming (XP) is an agile software development framework that aims to produce higher
quality software, and higher quality of life for the development team. XP is the most specific of the
agile frameworks regarding appropriate engineering practices for software development5.
The easiest way to understand XP is to think of it as Scrum with an added layer of coding best
practices. XP takes agile principles, gives you some processes like Scrum, and tells you exactly
how to approach coding.
XP starts with an idea that software development is hard. That's why, according to XP, the 4 most
important things in software development are:
Extreme Programming Practices
a) Small releases
Finished work is delivered to the customer at the end of each week, so the customer gets
value sooner rather than later.
4
5
https://monday.com/blog/project-management/agile-crystal/
https://asana.com/resources/extreme-programming-xp
b) Weekly cycle
The team plans what features to deliver at the end of each week, works in one-week cycles,
and reviews progress each Friday. If some feature takes more time, it's broken down into
several cycles.
c) Quarterly cycle
Because work is delivered in small releases, you need some long-term strategy to make
sure stories fit together and software doesn't end up all over the place.
Workflow in Extreme Programming
1.4 Adaptive Software Development
ASD is a development methodology that encourages continuous learning throughout the software
development project. It believes that this is the only correct way to sail through software
development’s inherent complexity smoothly6.
ASD Life Cycle7
a) Speculate
The term plan is too deterministic and indicates a reasonably high degree of certainty about
the desired result. The implicit and explicit goal of conformance to plan, restricts the
manager's ability to steer the project in innovative directions.
In Adaptive Software Development, the term plan is replaced by the term speculate. While
speculating, the team does not abandon planning, but it acknowledges the reality of
uncertainty in complex problems. Speculate encourages exploration and experimentation.
Iterations with short cycles are encouraged.
b) Collaborate
Complex applications are not built, they evolve. Complex applications require that a large
volume of information be collected, analysed, and applied to the problem. Turbulent
6
7
https://www.geeksforgeeks.org/adaptive-software-development-asd/
https://www.bacancytechnology.com/blog/adaptive-software-development
environments have high rates of information flow. Hence, complex applications require
that a large volume of information be collected, analysed, and applied to the problem. This
results in diverse Knowledge requirements that can only be handled by team collaboration.
Collaborate would require the ability to work jointly to produce results, share knowledge
or make decisions.
In the context of project management, Collaboration portrays a balance between managing
with traditional management techniques and creating and maintaining the collaborative
environment needed for emergence.
c) Learn
The Learn part of the Lifecycle is vital for the success of the project. Team has to enhance
their knowledge constantly, using practices such as:

Technical Reviews

Project Retrospectives

Customer Focus Groups
Reviews should be done after each iteration. Both, the developers and customers examine
their assumptions and use the results of each development cycle to learn the direction of the
next. The team learns:

About product changes

More fundamental changes in underlying assumptions about how the products are
being developed
The iterations need to be short, so that the team can learn from small rather than large
mistakes.
1.5 Feature Driven Software Development
FDD stands for Feature-Driven Development. FDD was first applied in the year 1997 on a realworld application by Jeff De Luca for large software development with specific needs of 15-month
and 50 persons and published as a discussion in book Java Modeling in Color with UML in the
year 19998.
8
https://www.geeksforgeeks.org/fdd-full-form/
It is an agile iterative and incremental model that focuses on progressing the features of the
developing software. The main motive of feature-driven development is to provide timely updated
and working software to the client. In FDD, reporting and progress tracking is necessary at all
levels.
Feature Driven Development Life Cycle
Characteristics of FDD9
a) Short iterative
FDD lifecycle works in simple and short iterations to efficiently finish the work on time
and gives good pace for large projects.
b) Customer Focused
This agile practice is totally based on inspection of each feature by client and then pushed
to main build code.
c) Structured and feature focused
Initial activities in lifecycle builds the domain model and features list in the beginning of
timeline and more than 70% of efforts are given to last 2 activities.
9
https://www.planview.com/resources/articles/fdd-agile/
d) Frequent releases
Feature-driven development provides continuous releases of features in the software and
retaining continuous success of the project.
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.
1.6 Dynamic Systems Development Methods (1995)
The Dynamic Systems Development technique (DSDM) is an associate degree agile code
development approach that provides a framework for building and maintaining systems. The
DSDM philosophy is borrowed from a modified version of the sociologist principle 80 % of an
application is often delivered in twenty percent of the time it’d desire deliver the entire (100
percent) application.
DSDM is an iterative code method within which every iteration follows the 80% rule that simply
enough work is needed for every increment to facilitate movement to the following increment. The
remaining detail is often completed later once a lot of business necessities are noted or changes
are requested and accommodated10.
Dynamic Systems Development Methods Life Cycle Stages11
a) Feasibility Study
It establishes the essential business necessities and constraints related to the applying to be
designed then assesses whether or not the application could be a viable candidate for the
DSDM method.
10
11
https://www.agilebusiness.org/business-agility/what-is-dsdm.html
https://www.geeksforgeeks.org/dynamic-systems-development-method-dsdm/
b) Business Study
It establishes the use and knowledge necessities that may permit the applying to supply
business value; additionally, it is the essential application design and identifies the
maintainability necessities for the applying.
c) Functional Model Iterations
It produces a collection of progressive prototypes that demonstrate practicality for the
client.
d) Design and build iteration
It revisits prototypes designed throughout useful model iteration to make sure that everyone
has been designed during a manner that may alter it to supply operational business price
for finish users.
e) Implementation
It places the newest code increment (an “operationalized” prototype) into the operational
surroundings. It ought to be noted that:

the increment might not 100% complete or,

changes are also requested because the increment is placed into place. In either
case, DSDM development work continues by returning to the useful model iteration
activity.
2. Which Software process model is suitable for which environment?
There are many kinds of process models for meeting different requirements. We refer to these
as SDLC models (Software Development Life Cycle models). The most popular and important
SDLC models are as follows:

Waterfall Model

V Model

Agile Model

Iterative and Incremental Model

Spiral Model
No. Software Process Model
1
Waterfall Model
Suitable Environment




Simple small or mid-sized projects
with clearly defined and unchanging
requirements (small company website
development).
Projects with the need for stricter
control, predictable budget and
timelines
(e.g.,
governmental
projects).
Projects that must adhere to multiple
rules and regulations (healthcare
projects).
Projects where a well-known
technology stack and tools are used.
2
V Model

Projects
where
failures
and
downtimes are unacceptable (e.g.,
medical software, aviation fleet
management software).
3
Agile Model

Practically any startup initiatives,
when end users’ early feedback is
required.
Most of mid-sized projects in custom
software development where business
requirements cannot be confidently
translated to detailed software
requirements.
Large projects that are easy to divide
into small functional parts and can be


4
Iterative and Incremental Model

6
Spiral Model



developed incrementally over each
iteration.
Large, mission-critical enterprise
applications that preferably consist of
loosely coupled parts, such as micro
services or web services.
Projects with unclear business needs
or
too
ambitious/innovative
requirements.
Projects that are large and
complicated.
Research and development (R&D)
activity or the introduction of a new
service or a product.
Download