37
The Nature of Software Development Based on the book by Ron Jeffries

The Nature of Software Development

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Nature of Software Development

The Nature of Software

Development

Based on the book byRon Jeffries

Page 2: The Nature of Software Development

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

Value● What is value?

Page 4: The Nature of Software Development

By nattanan23 From: https://pixabay.com/photos/money-coin-investment-business-2724241/

Page 5: The Nature of Software Development

By rawpixel From: https://pixabay.com/photos/adult-hand-man-people-business-3147854/

Page 6: The Nature of Software Development

By ktphotography From: https://pixabay.com/photos/concert-confetti-party-event-club-2527495/

Page 7: The Nature of Software Development

By sathyatripodi From: https://pixabay.com/photos/brothers-family-siblings-boys-love-457237/

Page 8: The Nature of Software Development

Value● Value is “what we want”.

Page 9: The Nature of Software Development

How to produce “value”● Guiding● Organizing● Planning● Building● Slicing● Quality

Page 10: The Nature of Software Development

From Ron Jeffries, The Nature of Software Development.

Page 11: The Nature of Software Development

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

Value / efforts

Value

Effort

Page 13: The Nature of Software Development

How to prioritize

Valuedelivered

Time

Page 14: The Nature of Software Development

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

In picture (ideally)

A D C T

Page 16: The Nature of Software Development

In picture (reality)

A D C T

Page 17: The Nature of Software Development

Comparison

A D C T

Feature by feature

Page 18: The Nature of Software Development

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

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

By stevepb From: https://pixabay.com/photos/building-blocks-construction-play-674828/

Page 21: The Nature of Software Development

Architectures

From: https://pixabay.com/photos/bridge-pylon-underneath-perspective-918575/

Page 22: The Nature of Software Development

ArchitecturesBy PIRO4D From: https://pixabay.com/photos/architecture-gang-modern-3357028/

Page 23: The Nature of Software Development

ArchitecturesFrom: https://pixabay.com/photos/building-construction-site-cranes-768815/

Page 24: The Nature of Software Development

From: https://pixabay.com/photos/building-disrepair-decayed-690177/

Page 25: The Nature of Software Development

By qimonoFrom https://pixabay.com/photos/ balance-hierarchic-structure-4097793/

Page 26: The Nature of Software Development

By Kaz From: https://pixabay.com/photos/zen-stones-stones-zen-balance-2774524/

Page 27: The Nature of Software Development

By 3844328 From: https://pixabay.com/photos/architecture-blueprint-floor-plan-1857175/

Page 28: The Nature of Software Development

By Capri23auto From: https://pixabay.com/photos/roof-truss-entablature-architecture-3339206/

Page 29: The Nature of Software Development

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

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

Agile frameworks: quick introduction● Example:

– Scrum– eXtreme programming

Page 32: The Nature of Software Development

From: https://www.scrum.org/resources/scrum-framework-poster

Page 33: The Nature of Software Development

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

By geralt From: https://pixabay.com/illustrations/yoga-silhouette-woman-relaxation-544970/

Page 35: The Nature of Software Development

By moise_theodor From: https://pixabay.com/photos/juggler-trick-magician-magic-1216853/

Page 36: The Nature of Software Development

By Myriams-Fotos From: https://pixabay.com/photos/fisherman-fishing-boat-boat-fishing-2739115/

Page 37: The Nature of Software Development

By Myriams-Fotos From: https://pixabay.com/photos/girl-woman-joy-of-life-dance-2940655/