Clean Code in Practice -
Getting your R&D on Board
Ruth Sperer
Tech Lead @ AT&T Israel
20 years experience in Software Industry
BA in Computer Science - Tel-Aviv
University
M.Sc. In Computer Science – UMD
Algorithms in
search engines
speech recognition
image processing
Why Clean Code?
AT&T Israel Center of Excellence
R&D Center
500 Employees
AT&T – a learning organization
2012/3 – Agile
2013/4 – Engineering Practices
Focus Areas
Design
Coding
Unit Testing
and... Continuous Integration
AT&T – Implementing Engineering Practices
• Introductory lecture
• Hands-on workshop
• Team coaching (10 days per scrum)
• Champions naming and training
• “Show and Tell” sessions
The process of restructuring existing computer code without
changing its external behavior.
Just like house cleaning..
Do it on a regular basis
Handle one room at a time
If it smells, it’s definitely time to
clean..
Code Refactoring - Definition
Code Refactoring – Baby Steps
“Didn’t change a thing” (© Eran Peer)
• Rename
• Extract variable
• Extract method
• Extract interface
• Move
• Introduce parameter
Code Refactoring….. And what if you don’t…
Code Review - Motivation
Definition: The analysis of source code in order to find defects
• Early bug detection
• Knowledge sharing
• Code improvements
• Social communication
• Understanding
Code Review – Practical guide
• Let the tools work for you:
• Formatter
• Lint
• Find problems, not solutions
• As a reviewer – be kind
• As a reviewed – leave your ego in the drawer
• Don’t skip it (no valid excuses)
The commitment
double edged sword
Real Life Implementation – Process Conflicts
Real Life Implementation – The People
• Keeping the momentum
• The champion dilemma
• The various stakeholders
• Team
• Tech leadR&D leader
• Product owner
• Projects manager
• Marketing
• Engage all stake holders
• Include it in your estimations
• Refactoring backlog
• Refactoring in each sprint
• Show it in your demo
• New project – do it right from
the start
• It’s a journey..
Real Life Implementation – Solutions
Clean Code Matters
Take a Stand
Thank You!
Email: rsperer@gmail.com

Clean code - Getting your R&D on board

  • 1.
    Clean Code inPractice - Getting your R&D on Board Ruth Sperer Tech Lead @ AT&T Israel
  • 2.
    20 years experiencein Software Industry BA in Computer Science - Tel-Aviv University M.Sc. In Computer Science – UMD Algorithms in search engines speech recognition image processing
  • 4.
  • 5.
    AT&T Israel Centerof Excellence R&D Center 500 Employees
  • 6.
    AT&T – alearning organization 2012/3 – Agile 2013/4 – Engineering Practices Focus Areas Design Coding Unit Testing and... Continuous Integration
  • 7.
    AT&T – ImplementingEngineering Practices • Introductory lecture • Hands-on workshop • Team coaching (10 days per scrum) • Champions naming and training • “Show and Tell” sessions
  • 8.
    The process ofrestructuring existing computer code without changing its external behavior. Just like house cleaning.. Do it on a regular basis Handle one room at a time If it smells, it’s definitely time to clean.. Code Refactoring - Definition
  • 9.
    Code Refactoring –Baby Steps “Didn’t change a thing” (© Eran Peer) • Rename • Extract variable • Extract method • Extract interface • Move • Introduce parameter
  • 10.
    Code Refactoring….. Andwhat if you don’t…
  • 11.
    Code Review -Motivation Definition: The analysis of source code in order to find defects • Early bug detection • Knowledge sharing • Code improvements • Social communication • Understanding
  • 12.
    Code Review –Practical guide • Let the tools work for you: • Formatter • Lint • Find problems, not solutions • As a reviewer – be kind • As a reviewed – leave your ego in the drawer • Don’t skip it (no valid excuses)
  • 13.
    The commitment double edgedsword Real Life Implementation – Process Conflicts
  • 14.
    Real Life Implementation– The People • Keeping the momentum • The champion dilemma • The various stakeholders • Team • Tech leadR&D leader • Product owner • Projects manager • Marketing
  • 15.
    • Engage allstake holders • Include it in your estimations • Refactoring backlog • Refactoring in each sprint • Show it in your demo • New project – do it right from the start • It’s a journey.. Real Life Implementation – Solutions
  • 16.
  • 17.

Editor's Notes

  • #3 Title insignificance – best compliment is great programmer
  • #5 Agile is about constant change and such cannot happen without clean code World of constant change – requirements, product, people – clean code makes it easier to adapt
  • #6 Interwise – acquired in 2007 Main Interest: Telecommunication applications, now also big data
  • #7 Design: templates, patterns, reviews Coding: standards, review, static code analysis Unit testing: methodology, coverage, execution
  • #9 Q: how often do you do it? Term first introduced in 1990, by 1992 was used in context of OOC Personally only heard in in the late 2000’s – beforehand - rewrite
  • #10 Q: what tools do you use Aiding tools: IntelliJ, Eclipse, Resharper, CodeRush
  • #11 Invest when you can – use when you have to Code rots over time Debt has deficit Too much will lead to bankruptcy
  • #12 * Expectations vs. Actual
  • #13 No valid excuses (what happens when I skip it) Harder to submit to one
  • #14 So we’ve got refactoring and Code Review, how do they play with Agile dev? In the short term it takes longer to write clean code (Churchill)