Agile design or emergent design relies heavily on timely refactoring efforts that aim to improve existing design. Yet often, when the code base grows or when someone else's code is handed over to us, there is a reluctance to refactor existing code - despite an obvious design smell. While the reasons to avoid refactoring may be well-grounded – lack of time, lack of understanding or fear of breaking it – in the long term, delaying code refactoring makes the code rot further. And, as a result, technical debt continues to pile up.

This session begins by reviewing common design smells, discusses five key features of good code and then discusses a common yet often overlooked design smell in detail – big methods. Using an example of a big method, it proposes a refactoring strategy that will ensure that a refactoring effort does not cause any negative side effects. During the session, participants are walked through a real code refactoring example – step by step.

Though the session focuses on one particular design smell (big methods), the proposed refactoring strategy should apply equally well to other design smells too.


Outline/Structure of the Case Study

Introduction – 2 min

Slide Presentation – 20 min

Code refactoring exercise – 30 min

Q&A – 8 min

Learning Outcome

A Quick Review of Design Smells

Why Big Methods are considered a design smell?

Why code refactoring is an essential practice to contain Technical Debt?

A proven strategy for refactoring existing code without breaking it

Walkthrough of a code refactoring example

Target Audience

Developers, Tech leads, Architects, Managers

schedule Submitted 6 years ago

  • Saikat Das

    Saikat Das - Switch from Sprint Retrospective to Toyota Kata

    45 Mins

    You have been doing agile for a few years now.

    With a regular cadence you have retrospectives and a lot of problems and great improvement opportunities are raised but nothing seems to really improve. Stop doing retrospectives!

    Can we shift form collecting problems and start improving? Create the habits of continuous improvement.

    It can be done is time to start using Toyota Kata!

    Toyota Kata is two behavior patterns, or Kata’s, that is the foundation in Toyota’s continuous improvement work.