Kung Fu Programming Agile Programming lessons from Kung Fu Panda*
Vishnu Vettrivel - @cloudronin
* Kung fu Panda is a property of Dreamworks Animation
Test Yourself
Start where you are Know where you are Better to fail fast The more rigorous the better The more variety the better Automated Test are the best Keep adding to your Test Gauntlet
Improve yourself Integrate Frequently (Every
day) Run different kinds of Tests
Unit Tests Integration Tests Accuracy tests
Run tests with every check-in Use CI Tools like Jenkins Use plugins to measure and
analyze Never leave anything
unintegrated at the end of the day
Live by a Common Code Tabs vs Spaces Curly braces Coding conventions Naming conventions Source code layout Test frameworks Languages and Libraries Tools and Platforms Build systems Code Review process Branching workflows
Pair up
Pair Program when you can One Drives, other Navigates Helps reduce bugs Helps troubleshoot Spreads Knowledge Long-term productivity goes up
Especially useful to do when: mentoring new hires high-risk tasks Start of a new project Adopting a new technology
Team up
Meetings need not always be scheduled
Hallway conversations are good Be within earshot of your team Ask for help if you get stuck Succeed and Fail as a Team Self organized teams are the ideal.
Live in the now
Things are simpler when you do
Design for Future, Code for the Now Remember You Aren’t
Gonna Need It (YAGNI) Remember the KISS principle
Strive for Simplicity Don’t code for more than
what's needed by the acceptance criteria
Ship tested, prod ready code every sprint
There is no magic Ingredient
Find your Inner Peace
Distractions are everywhere Feature adds Bug Fixes
Distractions add to Tech Debt Refactoring is meditation Trigger events for refactoring:
Distractions Code Duplication Code smells
Learn to Balance distractions and Meditation every Sprint Maintain your Inner peace