Slide 1

Slide 1 text

How to Choose Your Next Technology Stack

Slide 2

Slide 2 text

Francesco Strazzullo (AKA Strazz) @TheStrazz86 (Follow me on Twitter!) Ego Slide

Slide 3

Slide 3 text

Why are you here?

Slide 4

Slide 4 text

Choosing the “Right” Stack

Slide 5

Slide 5 text

https://www.youtube.com/watch?v=EauykEv_2iA

Slide 6

Slide 6 text

A stack is “right” for doing what?

Slide 7

Slide 7 text

What is the goal of software architecture?

Slide 8

Slide 8 text

Performances, Scalability, Velocity, Maintainability

Slide 9

Slide 9 text

Non-functional Requirements

Slide 10

Slide 10 text

“What a software should do?” VS “How a software should be?”

Slide 11

Slide 11 text

“A non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors.” Wikipedia

Slide 12

Slide 12 text

accessibility accountability accuracy adaptability reliability administrability affordability agility auditability responsiveness autonomy availability compatibility composability seamlessness configurability correctness credibility customizability simplicity debugability self-sustainability robustness dependability sustainability deployability determinability discoverability distributability usability durability effectiveness efficiency extensibility repeatability fault tolerance fidelity flexibility inspectability reusability reproducibility integrity interoperability learnability securability maintainability manageability mobility modifiability stability modularity operability evolvability performances tailorability portability wow-effect predictability resilience transparency producibility safety recoverability relevance testability

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Elevator Pitch

Slide 15

Slide 15 text

For [TARGET CUSTOMER TYPE] who want to [NEED / DESIRE], [PRODUCT / FEATURE] is a [MARKET CATEGORY] that [KEY BENEFIT].

Slide 16

Slide 16 text

SWOT Analysis

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Trade-off sliders

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

“Any programming problem can be solved by adding a level of indirection. Any performance problem can be solved by removing it.” Mario Fusco

Slide 21

Slide 21 text

Maintainability Performances

Slide 22

Slide 22 text

Architecture Compass Chart

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Pros/Cons

Slide 25

Slide 25 text

Decision-making for Software Development Teams

Slide 26

Slide 26 text

Anti-Patterns

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Jeremykemp at English Wikipedia [CC BY-SA]

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Making Mindful Decisions

Slide 33

Slide 33 text

“Programmers know the benefits of everything and the tradeoffs of nothing” Rich Hickey

Slide 34

Slide 34 text

Bring out tradeoffs

Slide 35

Slide 35 text

Understand the risks https://www.youtube.com/watch?v=FG8AAY8nzQY

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

Decisions Landscape

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

Thanks! Francesco Strazzullo strazz@flowing.it

Slide 40

Slide 40 text

New Workshop https://www.avanscoperta.it/it/training/decision-making-for-software-development-teams/

Slide 41

Slide 41 text

Bibliography https://www.amazon.it/Decision-Making-Dummies-Dawna-Jones/dp/111883366X https://www.amazon.it/Business-Model-Generation-Visionaries-Challengers/dp/0470876417 https://www.amazon.it/New-How-Creating-Solutions-Collaborative/dp/0596156251 https://www.amazon.it/Thinkers-Toolkit-Fourteen-Powerful-Techniques/dp/0812928083 https://www.amazon.it/Building-Evolutionary-Architectures-Support-Constant/dp/1491986360 https://www.amazon.it/Impact-Mapping-Software-Products-Projects/dp/0955683645