SlideShare ist ein Scribd-Unternehmen logo
1 von 82
Release Your Refactoring
Superpower
By:
Adam Culp
Twitter: @adamculp
2
Release Your Refactoring Superpower
â—Ź
About me
– OSS Contributor
– PHP Certified
– Zend Certification Advisory Board
– PHP-Fig voting member (IBM i Toolkit)
– Consultant at Zend Technologies
– Organizer SoFloPHP (South Florida)
– Organizer SunshinePHP (Miami)
– Long distance (ultra) runner
– Photography Enthusiast
– Judo Black Belt Instructor
3
Release Your Refactoring Superpower
â—Ź
About me
– OSS Contributor
– PHP Certified
– Zend Certification Advisory Board
– PHP-Fig voting member (IBM i Toolkit)
– Consultant at Zend Technologies
– Organizer SoFloPHP (South Florida)
– Organizer SunshinePHP (Miami)
– Long distance (ultra) runner
– Photography Enthusiast
– Judo Black Belt Instructor
I am the
PHP Ninja!!!
4
Release Your Refactoring Superpower
â—Ź
Fan of iteration
– Pretty much everything requires iteration to do well:
â—Ź
Long distance running
â—Ź
Judo
â—Ź
Development
â—Ź
Evading project managers
â—Ź
Refactoring!
5
Release Your Refactoring Superpower
â—Ź
What Can I Do?
– Estimation
6
Release Your Refactoring Superpower
â—Ź
What Can I Do?
– Estimation
– Coding (actual refactoring)
7
Release Your Refactoring Superpower
â—Ź
What Can I Do?
– Estimation
– Coding (actual refactoring)
– Algorithms
8
Release Your Refactoring Superpower
â—Ź
What Can I Do?
– Estimation
– Coding (actual refactoring)
– Algorithms
– Convince Business
9
Release Your Refactoring Superpower
â—Ź
What Can I Do?
– Estimation
– Coding (actual refactoring)
– Algorithms
– Convince Business
– Silver Bullet
10
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
11
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
12
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
13
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
14
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
15
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
16
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
â—Ź
Perceived need
17
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
â—Ź
Perceived need
â—Ź
To gain something
– Speed
– Functionality
18
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
â—Ź
Perceived need
â—Ź
To gain something
– Speed
– Functionality
– When?
â—Ź
Next 6 months, year(s), decade
19
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
â—Ź
Perceived need
â—Ź
To gain something
– Speed
– Functionality
– When?
â—Ź
Next 6 months, year(s), decade
â—Ź
Realistic time
20
Release Your Refactoring Superpower
â—Ź
Modernization?
– How?
â—Ź
New infrastructure (servers, technology, etc.)
â—Ź
New frameworks or libraries
â—Ź
New programming language
â—Ź
New DB
– Why?
â—Ź
Desire
â—Ź
Bored
â—Ź
Perceived need
â—Ź
To gain something
– Speed
– Functionality
– When?
â—Ź
Next 6 months, year(s), decade
â—Ź
Realistic time
â—Ź
NOW!
21
Release Your Refactoring Superpower
â—Ź
Rewrite FTW!
22
Release Your Refactoring Superpower
â—Ź
Typical Loop
– Business Responses
â—Ź
No time
23
Release Your Refactoring Superpower
â—Ź
Typical Loop
– Business Responses
â—Ź
No time
â—Ź
No money
24
Release Your Refactoring Superpower
â—Ź
Typical Loop
– Business Responses
â—Ź
No time
â—Ź
No money
â—Ź
No need
25
Release Your Refactoring Superpower
â—Ź
Typical Loop
– Business Responses
â—Ź
No time
â—Ź
No money
â—Ź
No need
â—Ź
Things are “good enough”
26
Release Your Refactoring Superpower
â—Ź
The Fix
27
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
28
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
– Business critical, resisting modification as failure would cause significant impact
on business
29
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
– Business critical, resisting modification as failure would cause significant impact
on business
– Based on outdated technology but critical day-to-day operations
30
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
– Business critical, resisting modification as failure would cause significant impact
on business
– Based on outdated technology but critical day-to-day operations
– Built when processing and storage was much more expensive
31
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
– Business critical, resisting modification as failure would cause significant impact
on business
– Based on outdated technology but critical day-to-day operations
– Built when processing and storage was much more expensive
– Poorly documented
32
Release Your Refactoring Superpower
â—Ź
Case Study
– Managing legacy system costs: A case study of a meta-assessment model
to identify solutions in a large financial services company – 2017 (by
James Crotty, Ivan Horrocks) -
https://www.sciencedirect.com/science/article/pii/S221083271630126
0#b0025
â—Ź
2001 Brooke and Ramage defined legacy as:
– Old information system remaining in operation within an Organization
– Business critical, resisting modification as failure would cause significant impact
on business
– Based on outdated technology but critical day-to-day operations
– Built when processing and storage was much more expensive
– Poorly documented
– Lack of design
33
Release Your Refactoring Superpower
â—Ź
Case Study
– Modernization Drivers
â—Ź
Skillset shortages (old technologies)
34
Release Your Refactoring Superpower
â—Ź
Case Study
– Modernization Drivers
â—Ź
Skillset shortages (old technologies)
â—Ź
Technical needs
35
Release Your Refactoring Superpower
â—Ź
Case Study
– Modernization Drivers
â—Ź
Skillset shortages (old technologies)
â—Ź
Technical needs
â—Ź
Business needs
36
Release Your Refactoring Superpower
â—Ź
Case Study
– Modernization Drivers
â—Ź
Skillset shortages (old technologies)
â—Ź
Technical needs
â—Ź
Business needs
â—Ź
Personal bias
37
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
38
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
39
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
40
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
41
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
42
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
43
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
â—Ź
Wrapping
44
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
â—Ź
Wrapping
â—Ź
Outsource?
45
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
â—Ź
Wrapping
â—Ź
Outsource?
â—Ź
Freeze
46
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
â—Ź
Wrapping
â—Ź
Outsource?
â—Ź
Freeze
â—Ź
Carry On
47
Release Your Refactoring Superpower
â—Ź
Case Study
– Cost Reduction Strategies
â—Ź
Ordinary maintenance
â—Ź
Reverse engineering
â—Ź
Restructuring
â—Ź
Re-engineering
â—Ź
Migration
â—Ź
Discard
â—Ź
Wrapping
â—Ź
Outsource?
â—Ź
Freeze
â—Ź
Carry On
â—Ź
Replacement with commercial off-the-shelf software and discarding
48
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Measurement
â—Ź
A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane
Ransom, Ian Sommerville, and Ian Warren) -
http://citeseerx.ist.psu.edu/viewdoc/download?
doi=10.1.1.128.9889&rep=rep1&type=pdf
– Legacy = business critical = cost not justifiable
49
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Measurement
â—Ź
A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane
Ransom, Ian Sommerville, and Ian Warren) -
http://citeseerx.ist.psu.edu/viewdoc/download?
doi=10.1.1.128.9889&rep=rep1&type=pdf
– Legacy = business critical = cost not justifiable
– Company and project specific
50
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Measurement
â—Ź
A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane
Ransom, Ian Sommerville, and Ian Warren) -
http://citeseerx.ist.psu.edu/viewdoc/download?
doi=10.1.1.128.9889&rep=rep1&type=pdf
– Legacy = business critical = cost not justifiable
– Company and project specific
– Continuously refined
51
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Measurement
â—Ź
A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane
Ransom, Ian Sommerville, and Ian Warren) -
http://citeseerx.ist.psu.edu/viewdoc/download?
doi=10.1.1.128.9889&rep=rep1&type=pdf
– Legacy = business critical = cost not justifiable
– Company and project specific
– Continuously refined
– Gains depth of understanding of business
52
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
53
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
54
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
55
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
56
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
â—Ź
Roles: organizational roles of people
57
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
â—Ź
Roles: organizational roles of people
â—Ź
View of information: resource analysis
58
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
â—Ź
Roles: organizational roles of people
â—Ź
View of information: resource analysis
â—Ź
Costs: major costs, both financial and nonfinancial
59
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
â—Ź
Roles: organizational roles of people
â—Ź
View of information: resource analysis
â—Ź
Costs: major costs, both financial and nonfinancial
â—Ź
Benefits: both financial and nonfinancial
60
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Criteria
â—Ź
Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and
M. Munro) - ftp://ftp.inf.puc-
rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf
– Based more upon organizational points
â—Ź
Boundary: the unit of analysis
â—Ź
Vision: global summary of the unit
â—Ź
Logic: rationale for vision
â—Ź
Structure: of the organisation
â—Ź
Roles: organizational roles of people
â—Ź
View of information: resource analysis
â—Ź
Costs: major costs, both financial and nonfinancial
â—Ź
Benefits: both financial and nonfinancial
â—Ź
Risks: major sources of risk
61
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Structure
â—Ź
A Framework to Assess Legacy Software Systems - 2014 (by Basem Y.
Alkazemi) -
https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa
4e5a7.pdf
– Strategies
â—Ź
Replacing
62
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Structure
â—Ź
A Framework to Assess Legacy Software Systems - 2014 (by Basem Y.
Alkazemi) -
https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa
4e5a7.pdf
– Strategies
â—Ź
Replacing
â—Ź
Maintaining
63
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Structure
â—Ź
A Framework to Assess Legacy Software Systems - 2014 (by Basem Y.
Alkazemi) -
https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa
4e5a7.pdf
– Strategies
â—Ź
Replacing
â—Ź
Maintaining
â—Ź
Re-architecting
64
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Structure
â—Ź
A Framework to Assess Legacy Software Systems - 2014 (by Basem Y.
Alkazemi) -
https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa
4e5a7.pdf
– Strategies
â—Ź
Replacing
â—Ź
Maintaining
â—Ź
Re-architecting
â—Ź
Extending by wrapping
65
Release Your Refactoring Superpower
â—Ź
How Do We Know?
– Application
â—Ź
A Decisional Framework to Measure System Dimensions of Legacy Application
for Rejuvenation through Reengineering - 2011 (by Er. Anand Rajavat, Dr.
(Mrs.) Vrinda Tokekar) -
https://www.ijcaonline.org/volume16/number2/pxc3872674.pdf
– System domain
â—Ź
Customer requirements
â—Ź
Orgs strategic goals
â—Ź
Operational env
â—Ź
Risk management
i. Organizational
ii. Resource
iii.Development
iv.Personal
v. User Requirement
vi.Specialization
vii.Team
viii.Communication
66
Release Your Refactoring Superpower
-
67
Release Your Refactoring Superpower
-
68
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #1 - Does application meet or exceed definition of “Legacy”?
â—Ź
Answers: Yes, No, Maybe, Don’t know
– Business Critical
– Old
– Changed to meet organizational needs
– Degrades as changes made
– Maintenance cost increase as changes made
– Obsolete languages
– Poor, if any, documentation
– Inadequate data management
– Limited support capability
– Limited support capacity
– Lacks architecture to evolve to meet emerging requirements
69
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #1 – Technical value attribute assessment
â—Ź
Answers: Yes, No, Don’t know
– Maintainability
â—Ź
LOC
â—Ź
Control Flow
â—Ź
Cyclomatic complexity
â—Ź
Dead code fate
– Decompostability/Architecture
â—Ź
Modularity
â—Ź
% of modules with separation of concerns
â—Ź
Consumption
â—Ź
Extensibility
â—Ź
Style
â—Ź
Interoperability
70
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #1 – Cont’d
â—Ź
Answers: Yes, No, Don’t know
– Deterioration
â—Ź
Backlog increase
â—Ź
Defect rate increase
â—Ź
Response-time increase
â—Ź
Maintanance time per request increase
– Obsolescence
â—Ź
System age
â—Ź
Operating system version
â—Ź
Hardware version
â—Ź
Technical support availability
â—Ź
Security
â—Ź
Legality
â—Ź
System evolution required for business goals?
71
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #2 – Business value attribute assessment
â—Ź
Answers: Yes, No, Don’t know
– Economic value
â—Ź
Market value
â—Ź
Profitability index
â—Ź
IRR
– Data value
â—Ź
% of mission critical archives
â—Ź
% of application dependent archives
– Utility
â—Ź
Business function coverage rate
â—Ź
Actual usage frequency
â—Ź
Customer/user satisfaction metric
– Specialization
â—Ź
% of highly specialized functions
â—Ź
% of generic functions
72
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #3 – Organizational infrastructure attribute assessment
â—Ź
Answers: Yes, No, Don’t know
– Development & maintenance internal or outsourced?
– Technical maturity
– Commitment to training
– Skill level of system support
– Response to change
73
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #4 – Calculations
– Calculate all responses to 1 – 5 values (don’t know = 0)
– To easily plot on decisional matrix
74
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #5 – Conversion
– Convert Y, N, DK to numeric values and Avg %
75
Release Your Refactoring Superpower
â—Ź
Case Study
– Example Assessment
â—Ź
Step #6 – Plotting
– Display points on the decisional matrix
76
Release Your Refactoring Superpower
â—Ź
Superhero
– Status Granted
â—Ź
It’s YOU!
77
Release Your Refactoring Superpower
â—Ź
Supervillain
– Professor LOC
â—Ź
Fighting tools
– PHPLoc
– PHPmd (codesize)
78
Release Your Refactoring Superpower
â—Ź
The Data
– PHPLoc
79
Release Your Refactoring Superpower
â—Ź
The Data
– PHPmd
80
Release Your Refactoring Superpower
â—Ź
Ray Gun
– Docker Images
81
Release Your Refactoring Superpower
â—Ź
Arsenal
– 1 million commits
â—Ź
Rename Variable/Method/Class 77%
â—Ź
Extract Constant
â—Ź
Make Type Global
â—Ź
Rename Refactoring Command
â—Ź
Move/Extract Class 1%
â—Ź
Move/Extract Method 13%
â—Ź
Modify Method Parameters
â—Ź
Thank you!
– Code: https://github.com/adamculp/
Adam Culp
http://www.geekyboy.com
http://RunGeekRadio.com
Twitter @adamculp
Questions?

Weitere ähnliche Inhalte

Ă„hnlich wie Release your refactoring superpower

From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioMáté Lang
 
ERP - Implementation is The Challenge
ERP - Implementation is The ChallengeERP - Implementation is The Challenge
ERP - Implementation is The Challengevinaya.hs
 
Data ops in practice - Swedish style
Data ops in practice - Swedish styleData ops in practice - Swedish style
Data ops in practice - Swedish styleLars Albertsson
 
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfOSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfAltinity Ltd
 
Beyond Projects/#NoProjects
Beyond Projects/#NoProjectsBeyond Projects/#NoProjects
Beyond Projects/#NoProjectsallan kelly
 
software-dev-life.pptx
software-dev-life.pptxsoftware-dev-life.pptx
software-dev-life.pptxPhilipAdenekan1
 
Scrum an Agile Methodology
Scrum an Agile MethodologyScrum an Agile Methodology
Scrum an Agile MethodologyZahra Golmirzaei
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matterAgile Austria Conference
 
7 Steps Big Data Journey for Enterprises
7 Steps Big Data Journey for Enterprises7 Steps Big Data Journey for Enterprises
7 Steps Big Data Journey for EnterprisesRaju Shreewastava
 
An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012Tomo Popovic
 
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...Sri Ambati
 
Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteGeoff Halprin
 
Business Analysis Study Notes
Business Analysis Study NotesBusiness Analysis Study Notes
Business Analysis Study NotesGeet Sehgal
 
Building A Production-Level Machine Learning Pipeline
Building A Production-Level Machine Learning PipelineBuilding A Production-Level Machine Learning Pipeline
Building A Production-Level Machine Learning PipelineRobert Dempsey
 
A Space X Industry Day Briefing 7 Jul08 Jgm R4
A Space X Industry Day Briefing 7 Jul08 Jgm R4A Space X Industry Day Briefing 7 Jul08 Jgm R4
A Space X Industry Day Briefing 7 Jul08 Jgm R4jmorriso
 
A Journey into the Digital World
A Journey into the Digital WorldA Journey into the Digital World
A Journey into the Digital WorldAVEVA Group plc
 
Kylin Engineering Principles
Kylin Engineering PrinciplesKylin Engineering Principles
Kylin Engineering PrinciplesXu Jiang
 
Using big data_to_your_advantage
Using big data_to_your_advantageUsing big data_to_your_advantage
Using big data_to_your_advantageJohn Repko
 

Ă„hnlich wie Release your refactoring superpower (20)

From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.io
 
Operationalizing Analytics in Forestry
Operationalizing Analytics in ForestryOperationalizing Analytics in Forestry
Operationalizing Analytics in Forestry
 
ERP - Implementation is The Challenge
ERP - Implementation is The ChallengeERP - Implementation is The Challenge
ERP - Implementation is The Challenge
 
Data ops in practice - Swedish style
Data ops in practice - Swedish styleData ops in practice - Swedish style
Data ops in practice - Swedish style
 
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdfOSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
OSA Con 2022 - Scaling your Pandas Analytics with Modin - Doris Lee - Ponder.pdf
 
Beyond Projects/#NoProjects
Beyond Projects/#NoProjectsBeyond Projects/#NoProjects
Beyond Projects/#NoProjects
 
software-dev-life.pptx
software-dev-life.pptxsoftware-dev-life.pptx
software-dev-life.pptx
 
Scrum an Agile Methodology
Scrum an Agile MethodologyScrum an Agile Methodology
Scrum an Agile Methodology
 
Agile Development – Why requirements matter
Agile Development – Why requirements matterAgile Development – Why requirements matter
Agile Development – Why requirements matter
 
7 Steps Big Data Journey for Enterprises
7 Steps Big Data Journey for Enterprises7 Steps Big Data Journey for Enterprises
7 Steps Big Data Journey for Enterprises
 
An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012
 
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...
HR Analytics: Using Machine Learning to Predict Employee Turnover - Matt Danc...
 
Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynote
 
Business Analysis Study Notes
Business Analysis Study NotesBusiness Analysis Study Notes
Business Analysis Study Notes
 
Building A Production-Level Machine Learning Pipeline
Building A Production-Level Machine Learning PipelineBuilding A Production-Level Machine Learning Pipeline
Building A Production-Level Machine Learning Pipeline
 
A Space X Industry Day Briefing 7 Jul08 Jgm R4
A Space X Industry Day Briefing 7 Jul08 Jgm R4A Space X Industry Day Briefing 7 Jul08 Jgm R4
A Space X Industry Day Briefing 7 Jul08 Jgm R4
 
Agile Methodologies - Project Management with SCRUM
Agile Methodologies - Project Management with SCRUMAgile Methodologies - Project Management with SCRUM
Agile Methodologies - Project Management with SCRUM
 
A Journey into the Digital World
A Journey into the Digital WorldA Journey into the Digital World
A Journey into the Digital World
 
Kylin Engineering Principles
Kylin Engineering PrinciplesKylin Engineering Principles
Kylin Engineering Principles
 
Using big data_to_your_advantage
Using big data_to_your_advantageUsing big data_to_your_advantage
Using big data_to_your_advantage
 

Mehr von Adam Culp

Hypermedia
HypermediaHypermedia
HypermediaAdam Culp
 
php-1701-a
php-1701-aphp-1701-a
php-1701-aAdam Culp
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdam Culp
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
 
Containing Quality
Containing QualityContaining Quality
Containing QualityAdam Culp
 
Debugging elephpants
Debugging elephpantsDebugging elephpants
Debugging elephpantsAdam Culp
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshopAdam Culp
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffAdam Culp
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend FrameworkAdam Culp
 
Accidental professional
Accidental professionalAccidental professional
Accidental professionalAdam Culp
 
Build great products
Build great productsBuild great products
Build great productsAdam Culp
 
Does Your Code Measure Up?
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?Adam Culp
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsAdam Culp
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing DevelopmentAdam Culp
 
Refactoring Legacy Code
Refactoring Legacy CodeRefactoring Legacy Code
Refactoring Legacy CodeAdam Culp
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Adam Culp
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorialAdam Culp
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101Adam Culp
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developersAdam Culp
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized DevelopmentAdam Culp
 

Mehr von Adam Culp (20)

Hypermedia
HypermediaHypermedia
Hypermedia
 
php-1701-a
php-1701-aphp-1701-a
php-1701-a
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Containing Quality
Containing QualityContaining Quality
Containing Quality
 
Debugging elephpants
Debugging elephpantsDebugging elephpants
Debugging elephpants
 
Zend expressive workshop
Zend expressive workshopZend expressive workshop
Zend expressive workshop
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework Blastoff
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
 
Accidental professional
Accidental professionalAccidental professional
Accidental professional
 
Build great products
Build great productsBuild great products
Build great products
 
Does Your Code Measure Up?
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?
 
Practical PHP Deployment with Jenkins
Practical PHP Deployment with JenkinsPractical PHP Deployment with Jenkins
Practical PHP Deployment with Jenkins
 
Virtualizing Development
Virtualizing DevelopmentVirtualizing Development
Virtualizing Development
 
Refactoring Legacy Code
Refactoring Legacy CodeRefactoring Legacy Code
Refactoring Legacy Code
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorial
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101
 
Essential git for developers
Essential git for developersEssential git for developers
Essential git for developers
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized Development
 

KĂĽrzlich hochgeladen

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

KĂĽrzlich hochgeladen (20)

Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Release your refactoring superpower

  • 2. 2 Release Your Refactoring Superpower â—Ź About me – OSS Contributor – PHP Certified – Zend Certification Advisory Board – PHP-Fig voting member (IBM i Toolkit) – Consultant at Zend Technologies – Organizer SoFloPHP (South Florida) – Organizer SunshinePHP (Miami) – Long distance (ultra) runner – Photography Enthusiast – Judo Black Belt Instructor
  • 3. 3 Release Your Refactoring Superpower â—Ź About me – OSS Contributor – PHP Certified – Zend Certification Advisory Board – PHP-Fig voting member (IBM i Toolkit) – Consultant at Zend Technologies – Organizer SoFloPHP (South Florida) – Organizer SunshinePHP (Miami) – Long distance (ultra) runner – Photography Enthusiast – Judo Black Belt Instructor I am the PHP Ninja!!!
  • 4. 4 Release Your Refactoring Superpower â—Ź Fan of iteration – Pretty much everything requires iteration to do well: â—Ź Long distance running â—Ź Judo â—Ź Development â—Ź Evading project managers â—Ź Refactoring!
  • 5. 5 Release Your Refactoring Superpower â—Ź What Can I Do? – Estimation
  • 6. 6 Release Your Refactoring Superpower â—Ź What Can I Do? – Estimation – Coding (actual refactoring)
  • 7. 7 Release Your Refactoring Superpower â—Ź What Can I Do? – Estimation – Coding (actual refactoring) – Algorithms
  • 8. 8 Release Your Refactoring Superpower â—Ź What Can I Do? – Estimation – Coding (actual refactoring) – Algorithms – Convince Business
  • 9. 9 Release Your Refactoring Superpower â—Ź What Can I Do? – Estimation – Coding (actual refactoring) – Algorithms – Convince Business – Silver Bullet
  • 10. 10 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.)
  • 11. 11 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries
  • 12. 12 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language
  • 13. 13 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB
  • 14. 14 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire
  • 15. 15 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored
  • 16. 16 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored â—Ź Perceived need
  • 17. 17 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored â—Ź Perceived need â—Ź To gain something – Speed – Functionality
  • 18. 18 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored â—Ź Perceived need â—Ź To gain something – Speed – Functionality – When? â—Ź Next 6 months, year(s), decade
  • 19. 19 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored â—Ź Perceived need â—Ź To gain something – Speed – Functionality – When? â—Ź Next 6 months, year(s), decade â—Ź Realistic time
  • 20. 20 Release Your Refactoring Superpower â—Ź Modernization? – How? â—Ź New infrastructure (servers, technology, etc.) â—Ź New frameworks or libraries â—Ź New programming language â—Ź New DB – Why? â—Ź Desire â—Ź Bored â—Ź Perceived need â—Ź To gain something – Speed – Functionality – When? â—Ź Next 6 months, year(s), decade â—Ź Realistic time â—Ź NOW!
  • 21. 21 Release Your Refactoring Superpower â—Ź Rewrite FTW!
  • 22. 22 Release Your Refactoring Superpower â—Ź Typical Loop – Business Responses â—Ź No time
  • 23. 23 Release Your Refactoring Superpower â—Ź Typical Loop – Business Responses â—Ź No time â—Ź No money
  • 24. 24 Release Your Refactoring Superpower â—Ź Typical Loop – Business Responses â—Ź No time â—Ź No money â—Ź No need
  • 25. 25 Release Your Refactoring Superpower â—Ź Typical Loop – Business Responses â—Ź No time â—Ź No money â—Ź No need â—Ź Things are “good enough”
  • 26. 26 Release Your Refactoring Superpower â—Ź The Fix
  • 27. 27 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization
  • 28. 28 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization – Business critical, resisting modification as failure would cause significant impact on business
  • 29. 29 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization – Business critical, resisting modification as failure would cause significant impact on business – Based on outdated technology but critical day-to-day operations
  • 30. 30 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization – Business critical, resisting modification as failure would cause significant impact on business – Based on outdated technology but critical day-to-day operations – Built when processing and storage was much more expensive
  • 31. 31 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization – Business critical, resisting modification as failure would cause significant impact on business – Based on outdated technology but critical day-to-day operations – Built when processing and storage was much more expensive – Poorly documented
  • 32. 32 Release Your Refactoring Superpower â—Ź Case Study – Managing legacy system costs: A case study of a meta-assessment model to identify solutions in a large financial services company – 2017 (by James Crotty, Ivan Horrocks) - https://www.sciencedirect.com/science/article/pii/S221083271630126 0#b0025 â—Ź 2001 Brooke and Ramage defined legacy as: – Old information system remaining in operation within an Organization – Business critical, resisting modification as failure would cause significant impact on business – Based on outdated technology but critical day-to-day operations – Built when processing and storage was much more expensive – Poorly documented – Lack of design
  • 33. 33 Release Your Refactoring Superpower â—Ź Case Study – Modernization Drivers â—Ź Skillset shortages (old technologies)
  • 34. 34 Release Your Refactoring Superpower â—Ź Case Study – Modernization Drivers â—Ź Skillset shortages (old technologies) â—Ź Technical needs
  • 35. 35 Release Your Refactoring Superpower â—Ź Case Study – Modernization Drivers â—Ź Skillset shortages (old technologies) â—Ź Technical needs â—Ź Business needs
  • 36. 36 Release Your Refactoring Superpower â—Ź Case Study – Modernization Drivers â—Ź Skillset shortages (old technologies) â—Ź Technical needs â—Ź Business needs â—Ź Personal bias
  • 37. 37 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance
  • 38. 38 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering
  • 39. 39 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring
  • 40. 40 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering
  • 41. 41 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration
  • 42. 42 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard
  • 43. 43 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard â—Ź Wrapping
  • 44. 44 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard â—Ź Wrapping â—Ź Outsource?
  • 45. 45 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard â—Ź Wrapping â—Ź Outsource? â—Ź Freeze
  • 46. 46 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard â—Ź Wrapping â—Ź Outsource? â—Ź Freeze â—Ź Carry On
  • 47. 47 Release Your Refactoring Superpower â—Ź Case Study – Cost Reduction Strategies â—Ź Ordinary maintenance â—Ź Reverse engineering â—Ź Restructuring â—Ź Re-engineering â—Ź Migration â—Ź Discard â—Ź Wrapping â—Ź Outsource? â—Ź Freeze â—Ź Carry On â—Ź Replacement with commercial off-the-shelf software and discarding
  • 48. 48 Release Your Refactoring Superpower â—Ź How Do We Know? – Measurement â—Ź A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane Ransom, Ian Sommerville, and Ian Warren) - http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.128.9889&rep=rep1&type=pdf – Legacy = business critical = cost not justifiable
  • 49. 49 Release Your Refactoring Superpower â—Ź How Do We Know? – Measurement â—Ź A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane Ransom, Ian Sommerville, and Ian Warren) - http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.128.9889&rep=rep1&type=pdf – Legacy = business critical = cost not justifiable – Company and project specific
  • 50. 50 Release Your Refactoring Superpower â—Ź How Do We Know? – Measurement â—Ź A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane Ransom, Ian Sommerville, and Ian Warren) - http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.128.9889&rep=rep1&type=pdf – Legacy = business critical = cost not justifiable – Company and project specific – Continuously refined
  • 51. 51 Release Your Refactoring Superpower â—Ź How Do We Know? – Measurement â—Ź A Method for Assessing Legacy Systems for Evolution – 1998 (by Jane Ransom, Ian Sommerville, and Ian Warren) - http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.128.9889&rep=rep1&type=pdf – Legacy = business critical = cost not justifiable – Company and project specific – Continuously refined – Gains depth of understanding of business
  • 52. 52 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis
  • 53. 53 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit
  • 54. 54 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision
  • 55. 55 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation
  • 56. 56 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation â—Ź Roles: organizational roles of people
  • 57. 57 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation â—Ź Roles: organizational roles of people â—Ź View of information: resource analysis
  • 58. 58 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation â—Ź Roles: organizational roles of people â—Ź View of information: resource analysis â—Ź Costs: major costs, both financial and nonfinancial
  • 59. 59 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation â—Ź Roles: organizational roles of people â—Ź View of information: resource analysis â—Ź Costs: major costs, both financial and nonfinancial â—Ź Benefits: both financial and nonfinancial
  • 60. 60 Release Your Refactoring Superpower â—Ź How Do We Know? – Criteria â—Ź Decision Model for Legacy Systems - 1999 (by . H. Bennett, M. Ramage, and M. Munro) - ftp://ftp.inf.puc- rio.br/pub/docs/FomularioSolicitacoes/mariliaGFerreira-09-13-7.pdf – Based more upon organizational points â—Ź Boundary: the unit of analysis â—Ź Vision: global summary of the unit â—Ź Logic: rationale for vision â—Ź Structure: of the organisation â—Ź Roles: organizational roles of people â—Ź View of information: resource analysis â—Ź Costs: major costs, both financial and nonfinancial â—Ź Benefits: both financial and nonfinancial â—Ź Risks: major sources of risk
  • 61. 61 Release Your Refactoring Superpower â—Ź How Do We Know? – Structure â—Ź A Framework to Assess Legacy Software Systems - 2014 (by Basem Y. Alkazemi) - https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa 4e5a7.pdf – Strategies â—Ź Replacing
  • 62. 62 Release Your Refactoring Superpower â—Ź How Do We Know? – Structure â—Ź A Framework to Assess Legacy Software Systems - 2014 (by Basem Y. Alkazemi) - https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa 4e5a7.pdf – Strategies â—Ź Replacing â—Ź Maintaining
  • 63. 63 Release Your Refactoring Superpower â—Ź How Do We Know? – Structure â—Ź A Framework to Assess Legacy Software Systems - 2014 (by Basem Y. Alkazemi) - https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa 4e5a7.pdf – Strategies â—Ź Replacing â—Ź Maintaining â—Ź Re-architecting
  • 64. 64 Release Your Refactoring Superpower â—Ź How Do We Know? – Structure â—Ź A Framework to Assess Legacy Software Systems - 2014 (by Basem Y. Alkazemi) - https://pdfs.semanticscholar.org/da50/7665a6c3bacb5559996bd436a9f76aa 4e5a7.pdf – Strategies â—Ź Replacing â—Ź Maintaining â—Ź Re-architecting â—Ź Extending by wrapping
  • 65. 65 Release Your Refactoring Superpower â—Ź How Do We Know? – Application â—Ź A Decisional Framework to Measure System Dimensions of Legacy Application for Rejuvenation through Reengineering - 2011 (by Er. Anand Rajavat, Dr. (Mrs.) Vrinda Tokekar) - https://www.ijcaonline.org/volume16/number2/pxc3872674.pdf – System domain â—Ź Customer requirements â—Ź Orgs strategic goals â—Ź Operational env â—Ź Risk management i. Organizational ii. Resource iii.Development iv.Personal v. User Requirement vi.Specialization vii.Team viii.Communication
  • 68. 68 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #1 - Does application meet or exceed definition of “Legacy”? â—Ź Answers: Yes, No, Maybe, Don’t know – Business Critical – Old – Changed to meet organizational needs – Degrades as changes made – Maintenance cost increase as changes made – Obsolete languages – Poor, if any, documentation – Inadequate data management – Limited support capability – Limited support capacity – Lacks architecture to evolve to meet emerging requirements
  • 69. 69 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #1 – Technical value attribute assessment â—Ź Answers: Yes, No, Don’t know – Maintainability â—Ź LOC â—Ź Control Flow â—Ź Cyclomatic complexity â—Ź Dead code fate – Decompostability/Architecture â—Ź Modularity â—Ź % of modules with separation of concerns â—Ź Consumption â—Ź Extensibility â—Ź Style â—Ź Interoperability
  • 70. 70 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #1 – Cont’d â—Ź Answers: Yes, No, Don’t know – Deterioration â—Ź Backlog increase â—Ź Defect rate increase â—Ź Response-time increase â—Ź Maintanance time per request increase – Obsolescence â—Ź System age â—Ź Operating system version â—Ź Hardware version â—Ź Technical support availability â—Ź Security â—Ź Legality â—Ź System evolution required for business goals?
  • 71. 71 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #2 – Business value attribute assessment â—Ź Answers: Yes, No, Don’t know – Economic value â—Ź Market value â—Ź Profitability index â—Ź IRR – Data value â—Ź % of mission critical archives â—Ź % of application dependent archives – Utility â—Ź Business function coverage rate â—Ź Actual usage frequency â—Ź Customer/user satisfaction metric – Specialization â—Ź % of highly specialized functions â—Ź % of generic functions
  • 72. 72 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #3 – Organizational infrastructure attribute assessment â—Ź Answers: Yes, No, Don’t know – Development & maintenance internal or outsourced? – Technical maturity – Commitment to training – Skill level of system support – Response to change
  • 73. 73 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #4 – Calculations – Calculate all responses to 1 – 5 values (don’t know = 0) – To easily plot on decisional matrix
  • 74. 74 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #5 – Conversion – Convert Y, N, DK to numeric values and Avg %
  • 75. 75 Release Your Refactoring Superpower â—Ź Case Study – Example Assessment â—Ź Step #6 – Plotting – Display points on the decisional matrix
  • 76. 76 Release Your Refactoring Superpower â—Ź Superhero – Status Granted â—Ź It’s YOU!
  • 77. 77 Release Your Refactoring Superpower â—Ź Supervillain – Professor LOC â—Ź Fighting tools – PHPLoc – PHPmd (codesize)
  • 78. 78 Release Your Refactoring Superpower â—Ź The Data – PHPLoc
  • 79. 79 Release Your Refactoring Superpower â—Ź The Data – PHPmd
  • 80. 80 Release Your Refactoring Superpower â—Ź Ray Gun – Docker Images
  • 81. 81 Release Your Refactoring Superpower â—Ź Arsenal – 1 million commits â—Ź Rename Variable/Method/Class 77% â—Ź Extract Constant â—Ź Make Type Global â—Ź Rename Refactoring Command â—Ź Move/Extract Class 1% â—Ź Move/Extract Method 13% â—Ź Modify Method Parameters
  • 82. â—Ź Thank you! – Code: https://github.com/adamculp/ Adam Culp http://www.geekyboy.com http://RunGeekRadio.com Twitter @adamculp Questions?