Unveiling Software Development and Collaboration
1. Crack the egg
2. Add the egg to the pan
3. Cover when the edges turn white
4. Serve
Algorithm
Getting things DONE
Programming is cool
Many users
Something broke
Angry users
No Gandalf Principle
Corner case: cooking without gravity
Prevent impact to users
Corner cases
Regressions
Avoid breaking what already works
Increased development speed
# TESTING
Diving depressurization
Decompression sickness
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?
Programming with others 🌝
Initial contributor
New contributors
What do you prefer?
Code style
The social aspect
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
Two Pizza Team
6 members = 15 links
12 members = 66 links
50 members = 1225 links!!!!
The Architect Elevator
@Gregor Hohpe