title: Ego-less Programming: The Philosophy of Better Code class: wrapper, animation-fade layout: true --- class: wrapper, center, middle # {{title}} --- class: wrapper, center, middle ###
# Piotr Gaczkowski ![DoomHammer](img/doomhammer.jpg)
| [@doomhammerng](https://twitter.com/doomhammerng)
--- class: wrapper, center, middle # What is Ego? --- background-image: url(ego.jpg) background-size: 100% 100% --- class: wrapper # What is Ego? - The driving force that makes us "us". -- - Puts our own interest over everyone else's -- - Our inner critic --- class: wrapper, center, middle # The Dangers of Ego --- class: wrapper - Terrible API -- - Not Invented Here -- - Ego Clashes -- - (entrenched) Code ownership --- # A Brief Guide to Philosophy --- background-image: url(img/philosophers.jpg) background-size: 100% 100% --- ## Stoicism What is under my control? --- background-image: url(img/stoic.jpg) background-size: 100% 100% --- ## Soli Deo Gloria Glory to God alone. -- ## Ad Maiorem Dei gloriam For the greater glory of God. --- background-image: url(img/cathedral.jpg) background-size: 100% 100% --- ## Buddhism and Zen I am a part of a greater Universe. --- background-image: url(img/hotdog.jpg) background-size: 100% 100% --- ## DevOps - closing the gap between the client and development - short release cycles - iterative approach to design - reducing waste (often by automation) --- background-image: url(img/devops.png) background-size: 100% 100% --- # DevOps and the Other Philosophies Devops requires: - Communication - Sharing goals Communication requires listening thus putting one's ego aside. --- # How Ego Disrupts DevOps? - Terrible API - Not Invented Here - Ego Clashes - (entrenched) Code ownership ---
--- # Cultural Tools for Ego-less Programming - safety, vulnerability, shared future - formal processes - code reviews - pair programming --- background-image: url(img/bruces.jpg) --- # Software Tools for Ego-less Programming - linters ([pylint](https://www.pylint.org/)) - code formatters ([yapf](https://github.com/google/yapf)) - aux tools ([PyAnnotate](https://github.com/dropbox/pyannotate) and [mypy](http://www.mypy-lang.org/)) - Git Hooks (
) --- # Software Tools for Ego-less Programming - build scripts (Makefiles) - Continuous Integration/Continuous Delivery - opinionated Frameworks - Behaviour Driven Development --- # Tales of horror --- # Using the tools can help you write better code and reduce waste -- ## This way you can work less and play more --- background-image: url(img/ball.gif) background-size: 100% 100% --- class: wrapper, center, middle # Thank you! ![DoomHammer](img/doomhammer.jpg)
| [@doomhammerng](https://twitter.com/doomhammerng)
###
--- class: small Photos courtesy of: - Andre Mouton on Unsplash - Alex Block on Unsplash - Bonnie Kittle on Unsplash - Ash Lambert on Unsplash - Joyce Romero on Unsplash - Dirk Wouters from Pixabay - Wikipedia - Monty Python's Flying Circus - Kiszkiloszki