fabio casati 1. learning objectives what is a software development process why we need it different...
TRANSCRIPT
![Page 1: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/1.jpg)
Fabio Casati
1
![Page 2: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/2.jpg)
Learning objectivesWhat is a software development processWhy we need itDifferent process types
waterfallSpiralRUPAgile methods (XP, Scrum, Crystal)Open source development
Understand basic principles, benefits, limitations, and applicability of each
2
![Page 3: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/3.jpg)
Software process modelAttempt to organize the software lifecycle
by defining activities involved in software production order of activities and their relationships
Goals of a software dev processstandardization, predictability (?), productivity,
high product quality, ability to plan (?) time and budget requirements
Enable the consistent delivery of quality products and solutions
3
![Page 4: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/4.jpg)
A waterfall modelfeasibility
Requirements
Design
Coding
Test/Fix
Deployment
Maintenance
![Page 5: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/5.jpg)
Waterfall with feedbackfeasibility
Requirements
Design
Coding
Test/Fix
Deployment
Maintenance
![Page 6: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/6.jpg)
Critical evaluation of the waterfall model+sw process subject to discipline, planning, and
management+postpone implementation to after understanding
objectives– Assumes you understand objectives before
implementation – linear, rigid, monolithic
– Assumes requirements are clear and do not change– Assumes perfect execution of all phases– Assumes underlying technology does not change
during the process (or that we do not capture the benefits of new products, e.g. a new app server )
6
![Page 7: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/7.jpg)
Incremental and Iterative modelsIncremental: Build and deliver in increments –
possibly build one part at a time, integrate progressivelyOpposite of big bang integrationNot necessarily build the whole system and improve
Iterative: go through improvement cycles In practice, terms used together, or mixed. Benefits:
Deliver early (based on what is needed, and what can be done)
Get feedbackRevise goals and plan
Many variants available: "do it twice" (F. Brooks, 1995), evolutionary prototype, “extreme” variants
Some mix of waterfall and evolutionary is commonly used
7
![Page 8: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/8.jpg)
8
Spiral modelB. Boehm, 1988(simplified)
![Page 9: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/9.jpg)
9
Define goals, alternatives, constraints
eval alternatives, resolve risks
Develop - next iteration
Plan
![Page 10: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/10.jpg)
Rational Unified ProcessDeveloped at rational software, late 80s,
90sDevelopment of an OO systemUses the UML notation throughout the
processSupports an iterative and incremental
processDecomposes a large process into controlled
iterations (mini projects)
10
![Page 11: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/11.jpg)
Six principles1. Adapt the process2. Balance stakeholder priorities3. Collaborate across teams4. Demonstrate value iteratively5. Elevate the level of abstraction6. Focus continuously on quality
11
![Page 12: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/12.jpg)
12
Objective milestone
Agreements on scope, estimates. Main use cases.
Operational capability milestone
Iterations of development. Generates release 1
Architecture milestone
Most use cases, dev plan, architecture, prototype
Product release milestonetraning, beta testing, depolyment
![Page 13: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/13.jpg)
13
![Page 14: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/14.jpg)
14
![Page 15: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/15.jpg)
The manifesto: “we value…Individuals and interactions over processes
and toolsWorking software over comprehensive
documentationCustomer collaboration over contract
negotiationResponding to change over following a plan
http://agilemanifesto.org/
15
![Page 17: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/17.jpg)
17
![Page 18: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/18.jpg)
18
![Page 19: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/19.jpg)
19
![Page 20: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/20.jpg)
20
![Page 21: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/21.jpg)
21
![Page 22: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/22.jpg)
Manifesto: the principles (1-6)Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
22
![Page 23: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/23.jpg)
Manifesto: the principles (7-12)Working software is the primary measure of progress.Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity --the art of maximizing the amount of work not done-- is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
23
![Page 24: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/24.jpg)
Iterations
Common Agile Practices
© ThoughtWorks 2008
Release
UserStories
UserStories
UserStories
UserStories
UserStories
UserStories
UserStories
UserStories
Iterations Iterations
![Page 25: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/25.jpg)
25
![Page 26: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/26.jpg)
26
stories
Exploration
storiesstoriesstories
Planning
Priorities,
Effort estimates
Iterations to release
Analysis, design, implementation, unit
test
testing Collective codebase
![Page 27: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/27.jpg)
XP PrinciplesTest-driven, continuous integration (see
test cases) - tests firstRefactoringCustomer on sitePair programming (code+tests)Small releasesSimplicityCollective ownershipNo overtime
27
![Page 28: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/28.jpg)
SCRUM
28
![Page 29: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/29.jpg)
Scrum
29
![Page 30: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/30.jpg)
PreparationBusiness case
show it is makes sense for your companyProject vision
Short doc that describes goalsInitial project backlog
All reqs, even bold or strange ones. Put em there Anybody contributes. Owner prioritizes
Initial Release Plan And effort estimate
Stakeholder buy-inAssemble team, and logistics
30
![Page 31: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/31.jpg)
31
![Page 32: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/32.jpg)
Scrum rolesOwner
ROI, scope
Team~7 self-organized
members
Scrum masterProtect team, manage
process, call meetings
32
![Page 33: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/33.jpg)
Scrum process
33
![Page 34: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/34.jpg)
Scrum daily meetingEach Team member should respond to the
following questions:What have you done?What will you do? What impedes you from performing your work as
effectively as possible?
Team members should not digress. The ScrumMaster is responsible for moving the meeting along briskly from person to person.
Team members should address the Team, not the master
Chickens can attend, not talk.34
![Page 35: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/35.jpg)
Sprint rulesNo one outside the Team should provide directionThe Team commits to deliver Backlog items during
the Planning meeting. No changes from outside. If the Sprint proves to be not viable, the
ScrumMaster can modify or terminate the Sprint Team members have admin responsibilities
attend the Daily Scrum Meetingkeep the status of Sprint Backlog items up-to-date, e.g.
estimated hours remaining. If Team members report the same item more than
one day, they need to decompose the tasksThe Team must conform to existing standards
35
![Page 36: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/36.jpg)
Open source development processOpen/collaborative development vs open
sourceCollaboration on everything, including
requirements definitionBased on free will contributions
Essentially made possible by:The WebSoft eng tools (collaboration, versioning)Rigorous testing
36
![Page 37: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/37.jpg)
Principles (Karl Fogel)Participants are people, not companiesMake it rewarding to do things rightMake it easy to do things rightMake decisions in publicDocument the cultureDon't work – amplify other people's workNo obstacles: act now, audit later
37
![Page 38: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/38.jpg)
REWARD
I N V E S T M E N T
Step Function = High-Barrier Community
![Page 39: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/39.jpg)
REWARD
I N V E S T M E N T
Linear Function = Low-Barrier Community
![Page 40: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/40.jpg)
Up Next: CMMI for DevelopmentMaturity levels for development processs
40
![Page 41: Fabio Casati 1. Learning objectives What is a software development process Why we need it Different process types waterfall Spiral RUP Agile methods (XP,](https://reader038.vdocuments.mx/reader038/viewer/2022110321/56649ce35503460f949af3d0/html5/thumbnails/41.jpg)
References Agile overview: “Agile software development methods -
review and analysis”http://www.inf.vtt.fi/pdf/publications/2002/P478.pdf
XP: http://advisor.com/doc/13571RUP: reference above, the book, or the wikipedia article is
well done http://en.wikipedia.org/wiki/Rational_Unified_Process
Spiral: original article http://www.sce.carleton.ca/faculty/ajila/4106-5006/Spiral%20Model%20Boehm.pdf
Scrum: http://scrumforteamsystem.com/ProcessGuidance/ProcessGuidance.html
Open source: http://producingoss.com/41