the nature of software development
TRANSCRIPT
![Page 1: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/1.jpg)
The Nature of Software
Development
Based on the book byRon Jeffries
![Page 2: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/2.jpg)
Software Engineering: Traditional View
● Focus on “Engineering Discipline” as in building construction.
● Phases:– Analysis, Design, Code, Test
● Rigorous documents between phases● Focus on:
– Processes / Control / Contracts
![Page 3: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/3.jpg)
Value● What is value?
![Page 4: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/4.jpg)
By nattanan23 From: https://pixabay.com/photos/money-coin-investment-business-2724241/
![Page 5: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/5.jpg)
By rawpixel From: https://pixabay.com/photos/adult-hand-man-people-business-3147854/
![Page 6: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/6.jpg)
By ktphotography From: https://pixabay.com/photos/concert-confetti-party-event-club-2527495/
![Page 7: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/7.jpg)
By sathyatripodi From: https://pixabay.com/photos/brothers-family-siblings-boys-love-457237/
![Page 8: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/8.jpg)
Value● Value is “what we want”.
![Page 9: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/9.jpg)
How to produce “value”● Guiding● Organizing● Planning● Building● Slicing● Quality
![Page 10: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/10.jpg)
From Ron Jeffries, The Nature of Software Development.
![Page 11: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/11.jpg)
How value is delivered● Choices:
– In big chunk, or in small chunk– Now, or later
● Delivered as:– Features
![Page 12: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/12.jpg)
Value / efforts
Value
Effort
![Page 13: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/13.jpg)
How to prioritize
Valuedelivered
Time
![Page 14: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/14.jpg)
Guiding● Traditional
– Try to get “everything”– Do entire work in
phases:● Analysis (1 month)● Design (1 month)● Code (2 month)● Test (1 month)
● Feature by feature– Work by features– For each “small
feature”, work in any way you like to get a feature done. (In short amount of time)
![Page 15: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/15.jpg)
In picture (ideally)
A D C T
![Page 16: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/16.jpg)
In picture (reality)
A D C T
![Page 17: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/17.jpg)
Comparison
A D C T
Feature by feature
![Page 18: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/18.jpg)
How to organize teams● Traditional
– Specialized team– Organized by
functions
● Feature-based– Cross functional team– Organized by features
![Page 19: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/19.jpg)
Planning● Planning is important.● But the plan is not as important as the act of
planning.– The plan can be discarded.
![Page 20: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/20.jpg)
By stevepb From: https://pixabay.com/photos/building-blocks-construction-play-674828/
![Page 21: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/21.jpg)
Architectures
From: https://pixabay.com/photos/bridge-pylon-underneath-perspective-918575/
![Page 22: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/22.jpg)
ArchitecturesBy PIRO4D From: https://pixabay.com/photos/architecture-gang-modern-3357028/
![Page 23: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/23.jpg)
ArchitecturesFrom: https://pixabay.com/photos/building-construction-site-cranes-768815/
![Page 24: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/24.jpg)
From: https://pixabay.com/photos/building-disrepair-decayed-690177/
![Page 25: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/25.jpg)
By qimonoFrom https://pixabay.com/photos/ balance-hierarchic-structure-4097793/
![Page 26: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/26.jpg)
By Kaz From: https://pixabay.com/photos/zen-stones-stones-zen-balance-2774524/
![Page 27: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/27.jpg)
By 3844328 From: https://pixabay.com/photos/architecture-blueprint-floor-plan-1857175/
![Page 28: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/28.jpg)
By Capri23auto From: https://pixabay.com/photos/roof-truss-entablature-architecture-3339206/
![Page 29: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/29.jpg)
Building● Balance between:
– features / architecture
● Choices:– Focus entirely on features– Focus on complete architecture design from the beginning– Build them at the same time
● Spend time refining the architecture
![Page 30: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/30.jpg)
Agile Software DevelopmentWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
● Individuals and interactions over processes and tools● Working software over comprehensive documentation● Customer collaboration over contract negotiation● Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
![Page 31: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/31.jpg)
Agile frameworks: quick introduction● Example:
– Scrum– eXtreme programming
![Page 32: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/32.jpg)
From: https://www.scrum.org/resources/scrum-framework-poster
![Page 33: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/33.jpg)
eXtreme programming practices● Fine scale
– Pair programming– Planning game– TDD (common today)– Whole team
● Processes– Continuous
integration (common today)
– Refactoring– Small releases
![Page 34: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/34.jpg)
By geralt From: https://pixabay.com/illustrations/yoga-silhouette-woman-relaxation-544970/
![Page 35: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/35.jpg)
By moise_theodor From: https://pixabay.com/photos/juggler-trick-magician-magic-1216853/
![Page 36: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/36.jpg)
By Myriams-Fotos From: https://pixabay.com/photos/fisherman-fishing-boat-boat-fishing-2739115/
![Page 37: The Nature of Software Development](https://reader030.vdocuments.mx/reader030/viewer/2022012720/61b28a58651e036a793305a8/html5/thumbnails/37.jpg)
By Myriams-Fotos From: https://pixabay.com/photos/girl-woman-joy-of-life-dance-2940655/