SlideShare a Scribd company logo
Technical Mentoring
What works and not
stanly@odd-e.com
@stanlylau
Lives in Singapore
Software development coach / mentor
Agile Singapore 2013, 2014, 2016
http://www.marketingfirepower.info/the-minefield-you-didn’t-know-you-were-in
Code Smells &
Refactoring
Original program:
Making changes:
More changes:
Without refactoring With refactoring
Small change
Refactor
Etc
Mentoring
“A structured self-development method that provides
support to help individuals manage their own learning
and realize their full potential. It is out of the reporting
line, where the experience gap (not the status gap) and
the mentee drive the relationship.”
Parsloe, 2000; Clutterbuck, 2004
Experiments
(informal)
TDD workshop followed by pairing
with team members for two weeks
Tried
• 70% lectures, 30% exercises
• Code exercises from public
• Pairing happens random
Learned
• Pairing related to code were slim
• Assess the current state of automated build
• Some people were defensive
Tried
• StringCalculator exercise
• 20 people, most are new to TDD
Learned
• Most have trouble writing test first
• Questions of applying on their existing systems
• What if we focus only on refactoring first?
Community Mini-Coderetreat
Refactoring Kata
Refactoring Kata
Outcome
• They felt confident changing code
• Inspired them to add tests at work
• They added and was unmaintainable
One-on-one Mentoring
Tried
• Prepare a few topics
• Share with me their reflection/learnings
Learned
• Don’t know where to start in long method
• Draw/Model the classes
• Skills often mentioned
One-on-one Mentoring
Common mentioned skills
• Hotkeys
• Understanding Single Responsibility Principle
• Return null vs empty list
• Refactor multiple returns to single return
• Distance of behavior and data (domain object)
• Working with 3rd party webservice API
• Name closer to the business language
Tried
• Remove mines on larger minefield
• More guidance at the beginning & more questions later on
• Ruby on Rails + Travis CI + Heroku + Github
• Topics widen to continuous delivery
Learned / Outcome
• More than half picked up fast
• A few were inspired by the special project
• Prod. release takes < 30 minutes instead of a day
2-week Mentoring with Senior Developers
Four Stages of Competence
https://en.m.wikipedia.org/wiki/Four_stages_of_competence
• Start with Code Smells & Refactoring Workshop
• Code exercises from product’s codebase
• Series of progressive one-day workshops
• One-on-one sessions between workshops
• Hands-on exercises then debrief
• Maximum of 8 participants
• Two co-leaders, me & another from the company
• Platform for growing mentors
Technical Training Program
Anonymised
• One week of preparation
• More than 10 exercises
• Remove code smells always
• Context limited to within the method
• Repetition + little different
• Respectfully intrude and challenge
Refactoring Workshop #1
What aspects of the course were most
successful in helping you to learn?
“Use Resharper hotkeys”
“Use real production code to practise”
“Approach towards a problem, especially all those
shared examples are very commonly seen code
smells.”
What improvements to the course do you
suggest?
“More examples on how to identify code smells such
as primitive obsession”
“Sometimes I am lost after the trainer expect me to do
the refactoring on the code”
“More sessions"
• More than one week of preparation
• 7 exercises
• Context includes callers and call-ees
• Lesser repetition
• New code smells
• Characterisation tests
• Simplify code using library e.g. JSONConvert
• Model/Draw the classes and interactions
Refactoring Workshop #2
What aspects of the course were most
successful in helping you to learn?
“Hands on, new library feature introduction”
“Explanation on speculative generality with diagrams”
“Trying out by ourself how to identify and refactor”
What improvements to the course do you
suggest?
“No comment. But look forward for more workshops
like this in future.”
“More practice examples to be more familiar in
recognizing and tackle the similar code smell.”
“Give some starters before getting our hands dirty.
Some of us might not be that creative and might not
be able to make full use of the allotted time.”
Assignments as a Pre-requisite
Tried
• Part 1: Review a recent code that was refactored
• Part 2: Remove the smells in a refactoring kata
• I’ll respond with my thoughts about their code
Learned / Outcome
• Excellent way to find out where they are
• Opportunity to hear their thoughts
Assignments as a Pre-requisite
“Actually I knew this code smell in my code but I
don’t know any good way to remove this smell, so I
hope I can attend workshop #2 to learn more about
refactoring.”
How many workshops does it take to
reduce the smells in commits?
?
Summary
What works
• Facilitative mentoring for effective learning
• Skill to assess where individuals are
• Appropriate challenge for progressive learning
• A structure to facilitate follow up
• Derive exercises from existing codebases
• Engage and grow internal mentors
What’s not
• Workshop/Training alone is insufficient
• Weak self-awareness of communication style
Thank you
stanly@odd-e.com

More Related Content

What's hot

Agile Development and Implementing Scrum
Agile Development and Implementing ScrumAgile Development and Implementing Scrum
Agile Development and Implementing Scrum
Emre ŞAHİN
 
Java Training In Coimbatore
Java Training In CoimbatoreJava Training In Coimbatore
Java Training In Coimbatore
appincoimbatore
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017
Aliza Carpio
 
Smes
SmesSmes
IntroEngineering.org Wiki
IntroEngineering.org WikiIntroEngineering.org Wiki
IntroEngineering.org Wiki
Jay Brockman
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad Design
guest446c0
 
User Stories
User StoriesUser Stories
User Stories
James Peckham
 
Understanding the Collaborative Relationship between Instructional Designers ...
Understanding the Collaborative Relationship between Instructional Designers ...Understanding the Collaborative Relationship between Instructional Designers ...
Understanding the Collaborative Relationship between Instructional Designers ...
Rob Moore
 
2 anton muzhailo - team development techniques you must know to be a valuab...
2   anton muzhailo - team development techniques you must know to be a valuab...2   anton muzhailo - team development techniques you must know to be a valuab...
2 anton muzhailo - team development techniques you must know to be a valuab...
Ievgenii Katsan
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
OVHcloud
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
Enterprise PHP Center
 

What's hot (11)

Agile Development and Implementing Scrum
Agile Development and Implementing ScrumAgile Development and Implementing Scrum
Agile Development and Implementing Scrum
 
Java Training In Coimbatore
Java Training In CoimbatoreJava Training In Coimbatore
Java Training In Coimbatore
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017
 
Smes
SmesSmes
Smes
 
IntroEngineering.org Wiki
IntroEngineering.org WikiIntroEngineering.org Wiki
IntroEngineering.org Wiki
 
The Smells Of Bad Design
The Smells Of Bad DesignThe Smells Of Bad Design
The Smells Of Bad Design
 
User Stories
User StoriesUser Stories
User Stories
 
Understanding the Collaborative Relationship between Instructional Designers ...
Understanding the Collaborative Relationship between Instructional Designers ...Understanding the Collaborative Relationship between Instructional Designers ...
Understanding the Collaborative Relationship between Instructional Designers ...
 
2 anton muzhailo - team development techniques you must know to be a valuab...
2   anton muzhailo - team development techniques you must know to be a valuab...2   anton muzhailo - team development techniques you must know to be a valuab...
2 anton muzhailo - team development techniques you must know to be a valuab...
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
 
Accelerate the ROI of PHP in your Enterprise
	Accelerate the ROI of PHP in your Enterprise	Accelerate the ROI of PHP in your Enterprise
Accelerate the ROI of PHP in your Enterprise
 

Viewers also liked

Metrics that Matter
Metrics that MatterMetrics that Matter
Metrics that Matter
Rob Brown
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Naresh Jain
 
Be Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing StoriesBe Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing Stories
Raj Indugula
 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
Puneet Khanduri
 
Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016
Joshua Kerievsky
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work Here
Jez Humble
 
The Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade MeThe Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade Me
Sandy Mamoli
 
Sandy Mamoli (Nomad8)
Sandy Mamoli (Nomad8)Sandy Mamoli (Nomad8)
Sandy Mamoli (Nomad8)
AgileNZ Conference
 
Agile india leading managing-following - keynote v5 for sharing
Agile india leading managing-following - keynote v5 for sharingAgile india leading managing-following - keynote v5 for sharing
Agile india leading managing-following - keynote v5 for sharing
Isabel Evans
 
Mindfulness - Cultivating Agile Minds
Mindfulness - Cultivating Agile MindsMindfulness - Cultivating Agile Minds
Mindfulness - Cultivating Agile Minds
Vishweshwar Hegde
 
The Six pillars for Building big data analytics ecosystems
The Six pillars for Building big data analytics ecosystemsThe Six pillars for Building big data analytics ecosystems
The Six pillars for Building big data analytics ecosystems
taimur hafeez
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
Kent McDonald
 
Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)
Jez Humble
 
BDX 2016- Monal daxini @ Netflix
BDX 2016-  Monal daxini  @ NetflixBDX 2016-  Monal daxini  @ Netflix
BDX 2016- Monal daxini @ Netflix
Ido Shilon
 
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'AnnaBig Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
Data Driven Innovation
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain
 
Agile india2017 devops IT transformation
Agile india2017 devops IT transformationAgile india2017 devops IT transformation
Agile india2017 devops IT transformation
Prasad Prabhakaran
 
E l sector asegurador venezolano
E l sector asegurador venezolanoE l sector asegurador venezolano
Big Data Analytics in Energy & Utilities
Big Data Analytics in Energy & UtilitiesBig Data Analytics in Energy & Utilities
Big Data Analytics in Energy & Utilities
Anders Quitzau
 

Viewers also liked (20)

Metrics that Matter
Metrics that MatterMetrics that Matter
Metrics that Matter
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
Be Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing StoriesBe Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing Stories
 
Diffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ TwitterDiffy : Automatic Testing of Microservices @ Twitter
Diffy : Automatic Testing of Microservices @ Twitter
 
Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016Modern Agile - Keynote at Agile2016
Modern Agile - Keynote at Agile2016
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work Here
 
The Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade MeThe Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade Me
 
Sandy Mamoli (Nomad8)
Sandy Mamoli (Nomad8)Sandy Mamoli (Nomad8)
Sandy Mamoli (Nomad8)
 
Agile india leading managing-following - keynote v5 for sharing
Agile india leading managing-following - keynote v5 for sharingAgile india leading managing-following - keynote v5 for sharing
Agile india leading managing-following - keynote v5 for sharing
 
Mindfulness - Cultivating Agile Minds
Mindfulness - Cultivating Agile MindsMindfulness - Cultivating Agile Minds
Mindfulness - Cultivating Agile Minds
 
The Six pillars for Building big data analytics ecosystems
The Six pillars for Building big data analytics ecosystemsThe Six pillars for Building big data analytics ecosystems
The Six pillars for Building big data analytics ecosystems
 
Examining the Product Owner Role
Examining the Product Owner RoleExamining the Product Owner Role
Examining the Product Owner Role
 
Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)Why Scaling Agile Doesn't Work (and What to Do About It)
Why Scaling Agile Doesn't Work (and What to Do About It)
 
BDX 2016- Monal daxini @ Netflix
BDX 2016-  Monal daxini  @ NetflixBDX 2016-  Monal daxini  @ Netflix
BDX 2016- Monal daxini @ Netflix
 
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'AnnaBig Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
Big Data and Data Science @ BNL - D. Morgagni & L. Dell'Anna
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
Agile india2017 devops IT transformation
Agile india2017 devops IT transformationAgile india2017 devops IT transformation
Agile india2017 devops IT transformation
 
E l sector asegurador venezolano
E l sector asegurador venezolanoE l sector asegurador venezolano
E l sector asegurador venezolano
 
Big Data Analytics in Energy & Utilities
Big Data Analytics in Energy & UtilitiesBig Data Analytics in Energy & Utilities
Big Data Analytics in Energy & Utilities
 

Similar to Technical Mentoring, What works and not

DOD Presentation V2
DOD Presentation V2DOD Presentation V2
DOD Presentation V2
Cookie Lanfear
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
Dror Helper
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
Aki Salmi
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
Bhavin Gandhi
 
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce CompanyCareer of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Vrann Tulika
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
enteritos
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
Padma Channal
 
Grandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoptionGrandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoption
Andrés García García
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
ssusercaf6c1
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Nacho Cougil
 
Surviving the technical interview
Surviving the technical interviewSurviving the technical interview
Surviving the technical interview
Eric Brooke
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
Nacho Cougil
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
Nacho Cougil
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
Mike Harris
 
Developer Career Masterplan
Developer Career MasterplanDeveloper Career Masterplan
Developer Career Masterplan
Edward Burns
 
Prototype and Test - Lokesh Sahal
Prototype and Test - Lokesh SahalPrototype and Test - Lokesh Sahal
Prototype and Test - Lokesh Sahal
Lokesh Sahal
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
Jason Nocks
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
Atish Narlawar
 
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
Dominik Lukes
 
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architectsRex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Jean-François Nguyen
 

Similar to Technical Mentoring, What works and not (20)

DOD Presentation V2
DOD Presentation V2DOD Presentation V2
DOD Presentation V2
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
 
Career of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce CompanyCareer of the Software Engineer in Modern Open-Source e-Commerce Company
Career of the Software Engineer in Modern Open-Source e-Commerce Company
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
 
Grandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoptionGrandma's recipe for DevOps adoption
Grandma's recipe for DevOps adoption
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
Surviving the technical interview
Surviving the technical interviewSurviving the technical interview
Surviving the technical interview
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Developer Career Masterplan
Developer Career MasterplanDeveloper Career Masterplan
Developer Career Masterplan
 
Prototype and Test - Lokesh Sahal
Prototype and Test - Lokesh SahalPrototype and Test - Lokesh Sahal
Prototype and Test - Lokesh Sahal
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
How Do You Know that Gal Knows Drupal? Towards an Open Source Curriculum and ...
 
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architectsRex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
 

Recently uploaded

1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
morris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdfmorris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdf
ycwu0509
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
bjmsejournal
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
ijaia
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
Yasser Mahgoub
 
AI for Legal Research with applications, tools
AI for Legal Research with applications, toolsAI for Legal Research with applications, tools
AI for Legal Research with applications, tools
mahaffeycheryld
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
edwin408357
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
aryanpankaj78
 

Recently uploaded (20)

1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
morris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdfmorris_worm_intro_and_source_code_analysis_.pdf
morris_worm_intro_and_source_code_analysis_.pdf
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
 
AI for Legal Research with applications, tools
AI for Legal Research with applications, toolsAI for Legal Research with applications, tools
AI for Legal Research with applications, tools
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
Engineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdfEngineering Standards Wiring methods.pdf
Engineering Standards Wiring methods.pdf
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
Digital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptxDigital Twins Computer Networking Paper Presentation.pptx
Digital Twins Computer Networking Paper Presentation.pptx
 

Technical Mentoring, What works and not

  • 1. Technical Mentoring What works and not stanly@odd-e.com @stanlylau
  • 2. Lives in Singapore Software development coach / mentor Agile Singapore 2013, 2014, 2016
  • 5. Original program: Making changes: More changes: Without refactoring With refactoring Small change Refactor Etc
  • 6. Mentoring “A structured self-development method that provides support to help individuals manage their own learning and realize their full potential. It is out of the reporting line, where the experience gap (not the status gap) and the mentee drive the relationship.” Parsloe, 2000; Clutterbuck, 2004
  • 8. TDD workshop followed by pairing with team members for two weeks Tried • 70% lectures, 30% exercises • Code exercises from public • Pairing happens random Learned • Pairing related to code were slim • Assess the current state of automated build • Some people were defensive
  • 9. Tried • StringCalculator exercise • 20 people, most are new to TDD Learned • Most have trouble writing test first • Questions of applying on their existing systems • What if we focus only on refactoring first? Community Mini-Coderetreat
  • 11.
  • 12. Refactoring Kata Outcome • They felt confident changing code • Inspired them to add tests at work • They added and was unmaintainable
  • 13. One-on-one Mentoring Tried • Prepare a few topics • Share with me their reflection/learnings Learned • Don’t know where to start in long method • Draw/Model the classes • Skills often mentioned
  • 14. One-on-one Mentoring Common mentioned skills • Hotkeys • Understanding Single Responsibility Principle • Return null vs empty list • Refactor multiple returns to single return • Distance of behavior and data (domain object) • Working with 3rd party webservice API • Name closer to the business language
  • 15. Tried • Remove mines on larger minefield • More guidance at the beginning & more questions later on • Ruby on Rails + Travis CI + Heroku + Github • Topics widen to continuous delivery Learned / Outcome • More than half picked up fast • A few were inspired by the special project • Prod. release takes < 30 minutes instead of a day 2-week Mentoring with Senior Developers
  • 16. Four Stages of Competence https://en.m.wikipedia.org/wiki/Four_stages_of_competence
  • 17. • Start with Code Smells & Refactoring Workshop • Code exercises from product’s codebase • Series of progressive one-day workshops • One-on-one sessions between workshops • Hands-on exercises then debrief • Maximum of 8 participants • Two co-leaders, me & another from the company • Platform for growing mentors Technical Training Program
  • 19. • One week of preparation • More than 10 exercises • Remove code smells always • Context limited to within the method • Repetition + little different • Respectfully intrude and challenge Refactoring Workshop #1
  • 20.
  • 21.
  • 22. What aspects of the course were most successful in helping you to learn? “Use Resharper hotkeys” “Use real production code to practise” “Approach towards a problem, especially all those shared examples are very commonly seen code smells.”
  • 23. What improvements to the course do you suggest? “More examples on how to identify code smells such as primitive obsession” “Sometimes I am lost after the trainer expect me to do the refactoring on the code” “More sessions"
  • 24. • More than one week of preparation • 7 exercises • Context includes callers and call-ees • Lesser repetition • New code smells • Characterisation tests • Simplify code using library e.g. JSONConvert • Model/Draw the classes and interactions Refactoring Workshop #2
  • 25.
  • 26. What aspects of the course were most successful in helping you to learn? “Hands on, new library feature introduction” “Explanation on speculative generality with diagrams” “Trying out by ourself how to identify and refactor”
  • 27. What improvements to the course do you suggest? “No comment. But look forward for more workshops like this in future.” “More practice examples to be more familiar in recognizing and tackle the similar code smell.” “Give some starters before getting our hands dirty. Some of us might not be that creative and might not be able to make full use of the allotted time.”
  • 28. Assignments as a Pre-requisite Tried • Part 1: Review a recent code that was refactored • Part 2: Remove the smells in a refactoring kata • I’ll respond with my thoughts about their code Learned / Outcome • Excellent way to find out where they are • Opportunity to hear their thoughts
  • 29. Assignments as a Pre-requisite “Actually I knew this code smell in my code but I don’t know any good way to remove this smell, so I hope I can attend workshop #2 to learn more about refactoring.”
  • 30. How many workshops does it take to reduce the smells in commits? ?
  • 32. What works • Facilitative mentoring for effective learning • Skill to assess where individuals are • Appropriate challenge for progressive learning • A structure to facilitate follow up • Derive exercises from existing codebases • Engage and grow internal mentors What’s not • Workshop/Training alone is insufficient • Weak self-awareness of communication style