CS0024 M3S2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

SOFTWARE ENGINEERING

Module 03
Chapter 02
Crystal method is an agile software
development approach that focuses
primarily on people and their interactions
when working on a project rather than on
processes and tools.
Developed by Alistair Cockburn, he
believed that the people’s skills and
talents as well as the way they
communicate has the biggest impact on
the outcome of the project.
• Teams can streamline their processes as their
work and become a more optimised team

• Projects are unique and dynamic and require


specific methods
1.Chartering

2.Cyclic Delivery

3.Wrap Up
Various activities involved in
this phase are creating a
development team, performing
a preliminary feasibility
analysis, developing an initial
plan and fine-tuning the
development methodology.
The main development phase consists of two or more
delivery cycles, during which the following occurs:

1. Team updates and refines the release plan


2. Implements a subset of the requirements through
one or more program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted
development methodology
The activities performed in
this phase are deployment
into the user environment,
post- deployment reviews
and reflections are
performed.
DSDM is a software development approach that
provides an agile project delivery framework. The
important aspect of DSDM is that the users are
required to be involved actively, and the teams are
given the power to make decisions. Frequent
delivery of product becomes the active focus with
DSDM.
Timeboxing: is the approach for completing the project
incrementally by breaking it down into splitting the project in
portions, each with a fixed budget and a delivery date. For
each portion a number of requirements are prioritised and
selected. Because time and budget are fixed, the only
remaining variables are the requirements. So if a project is
running out of time or money the requirements with the
lowest priority are omitted.
MoSCoW: is a prioritization technique used in
management, business analysis, project
management, and software development to reach a
common understanding with stakeholders on the
importance they place on the delivery of
each requirement. It is an acronym that stands for
Must have, Should have, Could have, and Won't
have.
Prototyping: refers to the creation of prototypes of
the system under development at an early stage of
the project. It enables the early discovery of
shortcomings in the system and allows future users
to test-drive the system. This way good user
involvement is realized, one of the key success
factors of DSDM, or any System Development
project for that matter.
1. Pre-project;
2. Feasibility Study;
3. Business Study;
4. Functional Model Iteration;
5. Design and build Iteration;
6. Implementation; and
7. Post-project.
Feature Driven Development methodology is
focused around designing and building features.
Unlike other agile methods, FDD describes very
specific and short phases of work that has to be
accomplished separately per feature. It includes
domain walkthrough, design inspection, promote to
build, code inspection and design.
1. Domain object Modeling
2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results
It is a translation of lean manufacturing principles and
practices to the software development domain. Adapted
from the Toyota Production System, it is emerging with the
support of a pro-lean subculture within the Agile community
based on the principle "Just in time production".

It aims at increasing speed of software development and


decreasing cost. Lean offers a solid conceptual framework,
values and principles, as well as good practices, derived
from experience, that support agile organizations.
1. Eliminating Waste;
2. Amplifying learning;
3. Defer commitment;
4. Early delivery;
5. Empowering the team;
6. Building Integrity; and
7. Optimize the whole.
Eliminating Wastes: If some activity could be bypassed or the
result could be achieved without it, it is waste. Partially done coding
eventually abandoned during the development process is waste.
Extra features like paperwork and features not often used by
customers are waste.

Amplifying Learning: Software development is a continuous


learning process based on iterations when writing code. Software
design is a problem-solving process involving the developers writing
the code and what they have learned. Software value is measured in
fitness for use and not in conformance to requirements.
Defer Commitment: As software development is always
associated with some uncertainty, better results should be
achieved with a set-based or options-based approach, delaying
decisions as much as possible until they can be made based on
facts and not on uncertain assumptions and predictions.

Early Delivery: The sooner the end product is delivered without


major defects, the sooner feedback can be received, and
incorporated into the next iteration. In the era of rapid technology
evolution, it is not the biggest that survives, but the fastest.
Empowering the team: the managers are taught how to listen to
the developers, so they can explain better what actions might be
taken, as well as provide suggestions for improvements. The lean
approach follows the Agile Principle “build projects around
motivated individuals and trust them to get the job done”.

Building Integrity: The customer needs to have an overall


experience of the System with integrity on how it is being
advertised, delivered, deployed, accessed, how intuitive its use is,
its price and how well it solves problem
Optimize the whole: Defects in software tend to accumulate
during the development process by decomposing the big tasks
into smaller tasks, and by standardizing different stages of
development, the root causes of defects should be found and
eliminated. Modern software systems are not simply the sum of
their parts, but also the product of their interactions.

Lean thinking has to be understood well by all members of a


project, before implementing in a concrete, real-life situation.
“Think big, act small, fail fast; learn rapidly”.
Extreme Programming technique is very helpful when there is
constantly changing demands or requirements from the
customers or when they are not sure about the functionality of
the system.

It advocates frequent “releases” of the product in short


development cycles, which inherently improves the
productivity of the system and also introduces a checkpoint
where any customer requirements can be easily implemented.
The XP develops software keeping customer in the target.
Planning
• Identification of stakeholders and sponsors
• Infrastructure Requirements
• Security related information and gathering
• Service Level Agreements and its conditions
Analysis
• Capturing of Stories in “Parking lot”
• Prioritize stories in “Parking lot”
• Scrubbing of stories for estimation
• Define Time Iteration
• Resource planning for both Development and
QA teams
Design
• Break down of tasks
• Test Scenario preparation for each task
• Regression Automation Framework
Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression tests
• Mid Iteration review
• End of Iteration review
Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of
iteration review comments
Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Support
Story Cardboard: This is a traditional way of
collecting all the stories in a board in the form of stick
notes to track daily XP activities. As this manual
activity involves more effort and time, it is better to
switch to an online form.

Online Storyboard: Online tool Storyboard can be


used to store the stories. Several teams can use it for
different purposes.
McIntyre, J. (2016). MoSCoW or Kano Models - how do you prioritize?. Retrieved
from, https://www.hotpmo.com/management-models/moscow-kano-prioritize

Moran, A. (2014). Agile Risk Management. ISBN 978-3-319-05008-9: Springer


International Publishing

Mrsic, M. (2017). Crystal Methods. Retrieved from, https://activecollab.com/


blog/project-management/crystal-methods

Plonka, L., et al. (2014). “UX Design in Agile: A DSDM Case Study.” Agile Processes in
Software Engineering and Extreme Programming: Springer International Publishing.
Poppendieck, M., and Poppendieck, T. (2003). Lean Software Development: An Agile
Tool Kit. ISBN 978-0-321-15078-3: Addison-Wesley Professional Press

Pressman, R. S. and Maxim, B. R. (2020). Software Engineering – A Practitioner’s


Approach. 9th Edition, ISBN-13 9781259872976: Mc Graw-Hill Press

Schwanber, K. (2004). Agile Project Management with Scrum. ISBN 978-


0735619937: Microsoft Press

Sommerville, I. F. (2015). Software Engineering. 10th Edition, ISBN-13 978-


0133943030: Pearson Press

You might also like