{
Engineering Demystified
Unveiling Software Development and Collaboration




The fascinating world of software
I want to talk to computers
1. Crack the egg
2. Add the egg to the pan
3. Cover when the edges turn white
4. Serve
Algorithm
Developing alone





Getting things DONE
Programming is cool

Many users


Something broke
Angry users



No Gandalf Principle

Looks simple






Corner case: cooking without gravity
Code that tests code
Prevent impact to users
Corner cases
Regressions
Avoid breaking what already works
Increased development speed
# TESTING
What about Data?
Best practices

Diving depressurization

Decompression sickness
Engineering Craft
- Software patterns
- Experience tell us how to apply them
- Essentials do not change

After holidays, we forgot how our code worked

All hope is lost

Testing is a craft that can be mastered
Documenting the code helps you to remember what you did
Others have solved similar problems before
The community is always with you 💍
You do not need to know everything

Dunning-Kruger effect







We have now a successful application and are technically competent. What should we do next?
A Keep it like that
B Build a team to develop more and faster
Why a team?
- Users want more - features
- Investors want more - growth
- We want more - holidays
We need more people!


Programming with others 🌝
Initial contributor
New contributors
What do you prefer?


Code style
Peopleware
The social aspect
- Computers are easy
- Humans are complex
- Emotions play a key role
- Making others technically proficient is difficult

If we have a team of 4 members, what will be our development throughput?
A Slower than with 1 dev
B 4x faster
C 2x or 3x times faster
D More than 4x faster


Over-engineering

The friction
We have now a performant software development team. What do we do now?
A Keep it like that
B Create more teams to develop more and faster

C Make our team bigger
D Go back to 1 dev
One team is not enough!


Two Pizza Team
6 members = 15 links
12 members = 66 links
50 members = 1225 links!!!!



The Architect Elevator
@Gregor Hohpe
}
Engineering Demystified
By Darío Blanco
Engineering Demystified
Unveiling Software Development and Collaboration
- 102