Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
The Nature of Software
Development
Based on the book byRon Jeffries
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
Value● What is value?
By nattanan23 From: https://pixabay.com/photos/money-coin-investment-business-2724241/
By rawpixel From: https://pixabay.com/photos/adult-hand-man-people-business-3147854/
By ktphotography From: https://pixabay.com/photos/concert-confetti-party-event-club-2527495/
By sathyatripodi From: https://pixabay.com/photos/brothers-family-siblings-boys-love-457237/
Value● Value is “what we want”.
How to produce “value”● Guiding● Organizing● Planning● Building● Slicing● Quality
From Ron Jeffries, The Nature of Software Development.
How value is delivered● Choices:
– In big chunk, or in small chunk– Now, or later
● Delivered as:– Features
Value / efforts
Value
Effort
How to prioritize
Valuedelivered
Time
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)
In picture (ideally)
A D C T
In picture (reality)
A D C T
Comparison
A D C T
Feature by feature
How to organize teams● Traditional
– Specialized team– Organized by
functions
● Feature-based– Cross functional team– Organized by features
Planning● Planning is important.● But the plan is not as important as the act of
planning.– The plan can be discarded.
By stevepb From: https://pixabay.com/photos/building-blocks-construction-play-674828/
Architectures
From: https://pixabay.com/photos/bridge-pylon-underneath-perspective-918575/
ArchitecturesBy PIRO4D From: https://pixabay.com/photos/architecture-gang-modern-3357028/
ArchitecturesFrom: https://pixabay.com/photos/building-construction-site-cranes-768815/
From: https://pixabay.com/photos/building-disrepair-decayed-690177/
By qimonoFrom https://pixabay.com/photos/ balance-hierarchic-structure-4097793/
By Kaz From: https://pixabay.com/photos/zen-stones-stones-zen-balance-2774524/
By 3844328 From: https://pixabay.com/photos/architecture-blueprint-floor-plan-1857175/
By Capri23auto From: https://pixabay.com/photos/roof-truss-entablature-architecture-3339206/
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
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.
Agile frameworks: quick introduction● Example:
– Scrum– eXtreme programming
From: https://www.scrum.org/resources/scrum-framework-poster
eXtreme programming practices● Fine scale
– Pair programming– Planning game– TDD (common today)– Whole team
● Processes– Continuous
integration (common today)
– Refactoring– Small releases
By geralt From: https://pixabay.com/illustrations/yoga-silhouette-woman-relaxation-544970/
By moise_theodor From: https://pixabay.com/photos/juggler-trick-magician-magic-1216853/
By Myriams-Fotos From: https://pixabay.com/photos/fisherman-fishing-boat-boat-fishing-2739115/
By Myriams-Fotos From: https://pixabay.com/photos/girl-woman-joy-of-life-dance-2940655/