Personal kaizen

46
Personal Kaizen [email protected] Tuesday, October 25, 11

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, Redhat

Transcript of Personal kaizen

Page 1: Personal kaizen

Personal Kaizen

[email protected]

Tuesday, October 25, 11

Page 2: Personal kaizen

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

Page 3: Personal kaizen

Tuesday, October 25, 11

Page 4: Personal kaizen

Tuesday, October 25, 11

Page 5: Personal kaizen

• 改 “kai” = change/make better

• 善 "zen" = good

改善

Tuesday, October 25, 11

Page 6: Personal kaizen

• 改 “kai” = change/make better

• 善 "zen" = good

改善

• 改 善 “kaizen” = (continuous) improvement

Tuesday, October 25, 11

Page 7: Personal kaizen

Tuesday, October 25, 11

Page 8: Personal kaizen

Tuesday, October 25, 11

Page 9: Personal kaizen

Need to understand bits & bytes and ourselves!Tuesday, October 25, 11

Page 10: Personal kaizen

Dreyfus Model

Competent

Proficient

Expert

Advanced Beginner

Novice

Tuesday, October 25, 11

Page 11: Personal kaizen

Dreyfus Model

Competent

Proficient

Expert

Advanced Beginner

Novice

10 years

Tuesday, October 25, 11

Page 12: Personal kaizen

Dreyfus Model

Competent

Proficient

Expert

Advanced Beginner

Novice

10 years

Tuesday, October 25, 11

Page 13: Personal kaizen

Dreyfus Model

Competent

Proficient

Expert

Advanced Beginner

Novice

10 years

Tuesday, October 25, 11

Page 14: Personal kaizen

Practice Practice Practice

Tuesday, October 25, 11

Page 15: Personal kaizen

Tuesday, October 25, 11

Page 16: Personal kaizen

Know your basic tools

Tuesday, October 25, 11

Page 17: Personal kaizen

Resurrect deleted files

Tuesday, October 25, 11

Page 18: Personal kaizen

Resurrect deleted files

$ git rev-list -n 1 HEAD -- foo.txt

Tuesday, October 25, 11

Page 19: Personal kaizen

Resurrect deleted files

$ git rev-list -n 1 HEAD -- foo.txt

b193eecf895e45b4f875eb4e6030f2c2e9fac897

Tuesday, October 25, 11

Page 20: Personal kaizen

Resurrect deleted files

$ git rev-list -n 1 HEAD -- foo.txt

$ git checkout b193eecf895e45^ -- foo.txt

b193eecf895e45b4f875eb4e6030f2c2e9fac897

Tuesday, October 25, 11

Page 22: Personal kaizen

Know your bash ;-)

Tuesday, October 25, 11

Page 23: Personal kaizen

Find all jar files in your JBoss installation containing a given class

Problem

Tuesday, October 25, 11

Page 24: Personal kaizen

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

Page 25: Personal kaizen

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

Page 26: Personal kaizen

Keep solutions log!

Tuesday, October 25, 11

Page 27: Personal kaizen

Know your resources

•refcardz.dzone.com•stackoverflow.com

Tuesday, October 25, 11

Page 28: Personal kaizen

Tuesday, October 25, 11

Page 29: Personal kaizen

Tuesday, October 25, 11

Page 30: Personal kaizen

Tuesday, October 25, 11

Page 31: Personal kaizen

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

Page 32: Personal kaizen

L + R modes

CPU #1

linear, slow non-linear, fast

shared bus

Tuesday, October 25, 11

Page 33: Personal kaizen

L and R characteristics

• Verbal• Analytic• Symbolic• Abstract• Rational• Logical

L

Tuesday, October 25, 11

Page 34: Personal kaizen

L and R characteristics

• Verbal• Analytic• Symbolic• Abstract• Rational• Logical

L

• Non-verbal• Synthetic • Concrete• Analogic• Non-rational• Intuitive

R

Tuesday, October 25, 11

Page 35: Personal kaizen

• Remember the Milk• Mindmaps• Pen and notepad

Capture insight 24x7

Tuesday, October 25, 11

Page 36: Personal kaizen

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

Page 37: Personal kaizen

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

Page 38: Personal kaizen

Tuesday, October 25, 11

Page 39: Personal kaizen

Friedrich August Kekule

Benzene

Tuesday, October 25, 11

Page 40: Personal kaizen

Tuesday, October 25, 11

Page 41: Personal kaizen

Thomas Edison

Tuesday, October 25, 11

Page 42: Personal kaizen

Thomas Edison

Tuesday, October 25, 11

Page 43: Personal kaizen

Wrapup

[email protected]

Tuesday, October 25, 11

Page 44: Personal kaizen

Q + A

Tuesday, October 25, 11

Page 45: Personal kaizen

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

[email protected]

Tuesday, October 25, 11

Page 46: Personal kaizen

Links

• http://refcardz.dzone.com• http://stackoverflow.com• http://www.javaspecialists.eu• http://www.rememberthemilk.com• http://www.thoughtworks.com/radar

[email protected]

Tuesday, October 25, 11