El arte de desarrollar: ¿En qué pensamos cuando pensamos en software?

A presentation at Bilbostack in January 2024 in Bilbao, Biscay, Spain by Adrià Fontcuberta

Slide 1

Slide 1

El arte de desarrollar: ¿En qué pensamos cuando pensamos en software?

Slide 2

Slide 2

Slide 3

Slide 3

Adrià Fontcuberta Software Engineer at Stripe

Slide 4

Slide 4

Slide 5

Slide 5

Slide 6

Slide 6

Slide 7

Slide 7

Slide 8

Slide 8

What if everything in software development was about creating feedback loops?

Slide 9

Slide 9

Unit test: “Does this small unit of code do what I think it does?” Code review: “Are we writing readable, maintainable code?” Daily standup: “Are we set and able to work on the right thing for the next few hours?”

Slide 10

Slide 10

Retrospective: “Did we work well, at a sustainable pace, for the last days?” Monitoring/Analytics: “Did the new feature get the expected usage and performance?” User research: “Do we understand the problem we’re trying to solve?”

Slide 11

Slide 11

Am I doing the right thing? Am I doing the thing right? Unit tests Retrospective User research Code review Monitoring/Analytics ¿Daily standup?

Slide 12

Slide 12

It’s a loop. You need to act on the result of your actions.

Slide 13

Slide 13

Doing something and not re ecting back is not a feedback loop. fl It is running in circles.

Slide 14

Slide 14

Feedback loops are not free.

Slide 15

Slide 15

Why do we use feedback loops, then?

Slide 16

Slide 16

It’s not like we have a choice. It’s the nature of software, the nature of digital products.

Slide 17

Slide 17

The nature of complex spaces.

Slide 18

Slide 18

Clear Playing Tetris Complicated Fixing a car Complex Winning a race Chaotic Playing with kids

Slide 19

Slide 19

Have you ever tried estimating a task?

Slide 20

Slide 20

Slide 21

Slide 21

Slide 22

Slide 22

Slide 23

Slide 23

Slide 24

Slide 24

Slide 25

Slide 25

This is not about moving fast. This is about learning where not to go, the sooner the better.

Slide 26

Slide 26

Creating software is a game of assumptions.

Slide 27

Slide 27

Slide 28

Slide 28

Slide 29

Slide 29

What is the level of con dence we are comfortable with? fi What is the fastest way to get there?

Slide 30

Slide 30

Agility vs. Predictability

Slide 31

Slide 31

Software is a set of complex problems (mostly).

Slide 32

Slide 32

The best way to move forward is by experimenting, iterating, and deferring decisions. We do so by leveraging feedback loops.

Slide 33

Slide 33

fl

  1. Analyze the current situation. 2. Take a step, the smallest, safest possible that gives helpful info. 3. Re ect on what you just learned. 4. Go back to step 1.

Slide 34

Slide 34

Thank you, folks! From @afontq with 💙 to Bilbostackers