Personal kaizen

Post on 01-Nov-2014

2.707 views 3 download

Tags:

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

Personal Kaizen

hardy@hibernate.org

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

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

Wrapup

hardy@hibernate.org

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

hardy@hibernate.org

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

hardy@hibernate.org

Tuesday, October 25, 11