Refactoring (the brain) for developers

18
Refactoring (the Brain) for Developers Today about The Basics of our Brain…. next time will be about Thinking & Learning Ionel Condor, Cluj-Napoca, Romania, January 16, 2012

description

Refactoring (the brain) for developers ;a collection of basic ideas about how to advance in career as software engineers and how to improve our brain to support this effort

Transcript of Refactoring (the brain) for developers

Page 1: Refactoring (the brain) for developers

Refactoring (the Brain) for Developers Today about The Basics of our Brain…. next time will be about Thinking & Learning

Ionel Condor, Cluj-Napoca, Romania, January 16, 2012

Page 2: Refactoring (the brain) for developers

Agenda

Attention warm-up exercise

Our story: A never ending journey from Novice to Expert

Our Brain

Today it’s an intro to brain teasers… in pairs of 2 (these are not IQ tests)

Page 3: Refactoring (the brain) for developers

Attention warm-up exercise Quick! say aloud what color you see in every word, NOT the word you read.

Source: http://snre.umich.edu/eplab/demos/st0/stroop_program/stroopgraphicnonshockwave.gif

Page 4: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

Intro to the Dreyfus model

Skill acquisition

5 levels : Novice, Advanced Beginner, Competent, Proficient, Expert

Page 5: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

Source: http://www.coderfriendly.com/2009/05/22/when-do-we-reach-the-expert-stage/

Page 6: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

A Novice needs rules in form of: Checklists

How-to lists

Focused trainings for his daily activities

A mentor/mentorship

To be helped

An Advanced Beginner needs: Controlled Simulations

Environments where to try out things in safety

Mailing Lists/ Communities (eg. stackoverflow.com, …) to ask questions and find solutions to common problems

Assignments to practice his new found skills

Source: http://www.learninggeneralist.com/2009/08/using-dreyfus-model-to-engage-people-in.html

Page 7: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

A Competent needs:

Case Studies to support their grow by understanding other (similar) problems& solutions

Continue their social exposure to read about real problems and solutions

Read books and blogs, listen podcasts, attend conferences and webinars

A lot of practice – daily work !

Source: http://www.learninggeneralist.com/2009/08/using-dreyfus-model-to-engage-people-in.html

Page 8: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

Source: http://www.learninggeneralist.com/2009/08/using-dreyfus-model-to-engage-people-in.html

Page 9: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

A recommended rule: Favor rules for Novice and intuition plus creativity for Experts

A sad true: Most people are and will remain as Advanced Beginners

“performing the tasks they need and learning new tasks as the need arises but never do some extra miles if not requested” (e.g. using Google as part of IDE for copy&paste )

!!! R&D does not stand for “Rip off and duplicate” !!!

Page 10: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

Do you want to be an expert in a field?

BAD NEWS: You need to budget 10 years of effort in the same subject area

AND practice in an environment where:

- Tasks are well defined (for your level of expertise)

- Tasks are challenging & doable

- The environment (context) gives you feedback that you can use

- The environment provides opportunities for repetition and correction

GOOD NEWS: Once you become an expert in one field, it becomes much easier to gain experience in another (acquisition skills, model-building abilities)

Page 11: Refactoring (the brain) for developers

Our story: A never ending journey from Novice to Expert

WARNING 1: Winners do not carry losers: A group is only as good as its weakest link

WARNING 2: “if you think you are standing firm, be careful that you don't fall!”(The Holly Bible, The New Testament, Corinthians 10), SO WE NEED TO KEEP PRACTICE AND KEEP STUDY

WARNING 3: Alienate experienced practitioners in favor of novices: usually by creating general rules and ask the experts to follow them

WARNING 4: Mystification, slogans all over (es. “We are Agile in planning”)

WARNING 5: There is no substitute (rule, tool, methodology, standard, formal method, etc) for thinking

Page 12: Refactoring (the brain) for developers

Our Brain

Looks like this

Or these… funny:

Source: http://science-techquest.blogspot.com/2011/05/universe-of-brain.html

http://www.guy-sports.com/humor/pictures/picture_male_female_brain.htm

Page 13: Refactoring (the brain) for developers

Our Brain

• L mode : analysis vs R mode: synthesis (“Don’t analyse, build it”)

• About neurons: new discovery: to grow them you need a rich environment with sensory opportunities: learn, observe, interact

Page 14: Refactoring (the brain) for developers

Our Brain

Skills and abilities we constantly use/practice will begin to dominate and more of our brain will become wired for these purposes

“use it or loose it”: want to be a better task estimator? Practice more task estimations and retrospectives

L is dominant in engineering, so to access R we need to come with something that the verbal, analythical L will turn down: some people try music, drawing, meditation…

R mode will not solve our problems but what we need is a better way of synch L & R so the whole mind can work better

“Write drunk, revise sober” – when problem solving, learn to be comfortable with uncertainty

Experiment: pair programming when you are in L and your partner in R (navigator and driver)

L & R use to meet in “metaphors” : a powerful technique to open up creativity (at the end we use metaphors all the time: window, mouse, trash, threads, zombie cloud…) or “system metaphors” (any sw module or system can be described/guided by metaphors)see Andy Hunt’s book bellow, a great book

R mode can be invited, not commanded

Many ideas cannot be fully expressed in words( but can be implemented!!!) es. you are not able to describe all the faces but someone can even draw them

When you focus on a creative goal (design, solve a problem that requires creativity, …) L mode will dominate, so you cannot solve it easy; solution? Defocus to focus see Andy Hunt’s book bellow, a great book

Source, some ideas taken from : Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers ) by Andy Hunt

Page 15: Refactoring (the brain) for developers

Some tests – a sample

In which direction is the bus travelling ?

Note: this test above will probably be a test for my daughter Ligia in kindergarten

Page 16: Refactoring (the brain) for developers

Some tests – a sample

Give your own short examples of brain teasers (exercises designed to stimulate our brain functions and grow them also)

Page 17: Refactoring (the brain) for developers

Some tests

Individual: L vs R dominancy http://similarminds.com/brain.html

In the same time: Attention and working memory: http://viscog.beckman.illinois.edu/grafs/demos/15.html

Individual: Senses : http://www.bbc.co.uk/science/humanbody/body/interactives/senseschallenge/senses.swf

Individual: Attention Skills:

http://www.vigorousmind.com/demos/demo2.html

Individual: Attention again:

http://www.vigorousmind.com/demos/demo1.html

Individual: Name two objects for every let ter in your com plete name. Work up to five objects, try ing to use dif­f er ent items each time.

Team: Pattern recognition: A blind beggar had a brother who died. What rela tion wasthe blind beggar to the brother who died?“Brother” is not the answer.(or someone may know this as “a blind masseur” )

Individual: A Brain Teaser for your peripheral vision: http://gprime.net/game.php/catchthirtythree

Team: Of the 100 peo ple at a recent party, 90 spoke Span ish, 80 spoke Ital ian, and 75 spoke Man darin. At least how many spoke all three languages?

Page 18: Refactoring (the brain) for developers

Thank you

Twitter: @ionel_condor

https://twitter.com/#!/ionel_condor

Blog: http://ionelcondor.wordpress.com/