personal kaizen
DESCRIPTION
Personal Kaizen - how to improve your daily work as developerThis talks is a personal view on tools, resources and techniques which can help you becoming a better developer. Hardy explains what ideas from books like "My Job Went to India" (Chad Fowler), "The Pragmatic Programmer" (Andrew Hunt) and "Pragmattic Thinking and Learning" (Andrew Hunt) mean to him and how he tries to become a better developer every day by applying some of these ideas. Becoming a better developer, however, requires also to understand our own software better. Only if we understand ourselves we are able to learn effectively and tap into otherwise dormant resources. In this context the Dreyfus model of skill acquisition is explained as well as the different operational modes of our brain (linear vs rich).Hardy Ferentschik, RedhatTRANSCRIPT
Personal Kaizen
Tuesday, October 25, 11
About me
• Hibernate team member w/ focus on Validator and Search• +10 years experience in software development➡ Worked for small (10), medium (100) and big (3000+) companies ➡ Everything from Team Lead to System Administrator ➡ Developed in C++, Perl, Ruby, ... and of course Java
• Want to be a Software Craftsman
Tuesday, October 25, 11
Tuesday, October 25, 11
Tuesday, October 25, 11
• 改 “kai” = change/make better
• 善 "zen" = good
改善
Tuesday, October 25, 11
• 改 “kai” = change/make better
• 善 "zen" = good
改善
• 改 善 “kaizen” = (continuous) improvement
Tuesday, October 25, 11
Tuesday, October 25, 11
Tuesday, October 25, 11
Need to understand bits & bytes and ourselves!Tuesday, October 25, 11
Dreyfus Model
Competent
Proficient
Expert
Advanced Beginner
Novice
Tuesday, October 25, 11
Dreyfus Model
Competent
Proficient
Expert
Advanced Beginner
Novice
10 years
Tuesday, October 25, 11
Dreyfus Model
Competent
Proficient
Expert
Advanced Beginner
Novice
10 years
Tuesday, October 25, 11
Dreyfus Model
Competent
Proficient
Expert
Advanced Beginner
Novice
10 years
Tuesday, October 25, 11
Practice Practice Practice
Tuesday, October 25, 11
Tuesday, October 25, 11
Know your basic tools
Tuesday, October 25, 11
Resurrect deleted files
Tuesday, October 25, 11
Resurrect deleted files
$ git rev-list -n 1 HEAD -- foo.txt
Tuesday, October 25, 11
Resurrect deleted files
$ git rev-list -n 1 HEAD -- foo.txt
b193eecf895e45b4f875eb4e6030f2c2e9fac897
Tuesday, October 25, 11
Resurrect deleted files
$ git rev-list -n 1 HEAD -- foo.txt
$ git checkout b193eecf895e45^ -- foo.txt
b193eecf895e45b4f875eb4e6030f2c2e9fac897
Tuesday, October 25, 11
Tuesday, October 25, 11
Know your bash ;-)
Tuesday, October 25, 11
Find all jar files in your JBoss installation containing a given class
Problem
Tuesday, October 25, 11
for i in `find . -name "*.jar"`; do count=$(jar -tvf $i | grep -c "MyClass") ; if [ "$count" -gt "0" ]; then echo "Match in $i" ; fi; done
Possible solution
Tuesday, October 25, 11
Possible solution
function findClass() { for i in `find $1 -name "*.jar"`; do count=$(jar -tvf $i | grep -c "$2") ; if [ "$count" -gt "0" ]; then echo "Match in $i" ; fi; done}
Tuesday, October 25, 11
Keep solutions log!
Tuesday, October 25, 11
Know your resources
•refcardz.dzone.com•stackoverflow.com
Tuesday, October 25, 11
Tuesday, October 25, 11
Tuesday, October 25, 11
Tuesday, October 25, 11
From Novice to Expert
Competent
Proficient
Expert
Advanced Beginner
Novice
Relevant Focus
Considers Everything
Intuition
Rules
Part of System
Detached Observer
Tuesday, October 25, 11
L + R modes
CPU #1
linear, slow non-linear, fast
shared bus
Tuesday, October 25, 11
L and R characteristics
• Verbal• Analytic• Symbolic• Abstract• Rational• Logical
L
Tuesday, October 25, 11
L and R characteristics
• Verbal• Analytic• Symbolic• Abstract• Rational• Logical
L
• Non-verbal• Synthetic • Concrete• Analogic• Non-rational• Intuitive
R
Tuesday, October 25, 11
• Remember the Milk• Mindmaps• Pen and notepad
Capture insight 24x7
Tuesday, October 25, 11
Feed the R mode • Try to find and use metaphors • Free-Form Journaling➡ Write Drunk, Revise Sober➡ Morning Pages Technique➡ Fieldstone method
• Change your routines➡ Change your neural wiring
• Go for a walk!
Tuesday, October 25, 11
Feed the R mode • Try to find and use metaphors • Free-Form Journaling➡ Write Drunk, Revise Sober➡ Morning Pages Technique➡ Fieldstone method
• Change your routines➡ Change your neural wiring
• Go for a walk!
Tuesday, October 25, 11
Tuesday, October 25, 11
Friedrich August Kekule
Benzene
Tuesday, October 25, 11
Tuesday, October 25, 11
Thomas Edison
Tuesday, October 25, 11
Thomas Edison
Tuesday, October 25, 11
Q + A
Tuesday, October 25, 11
Want to know more?
• Pragmatic Thinking & Learning, Andy Hunt• Practices of an Agile Developer, Venkat Subramaniam • My Job Went to India, Chad Fowler• Software Craftsmanship, Pete McBreen
Tuesday, October 25, 11
Links
• http://refcardz.dzone.com• http://stackoverflow.com• http://www.javaspecialists.eu• http://www.rememberthemilk.com• http://www.thoughtworks.com/radar
Tuesday, October 25, 11