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 5 years ago

  • Saket Bansal

    Saket Bansal - How to fix team dysfunction?

    Saket Bansal
    Saket Bansal
    schedule 5 years ago
    Sold Out!
    45 Mins

    Many teams suffer from dysfunction where they lack trust and have huge communication overhead. Can we fix it? I do not have directly plug and play solution for this but I have done some experiments in this area which I would like to share during this talk. 

     To give some idea things like following will get presented with real life experience

    1. Right Information radiators
    2. Culture of Accountability
    3. Transparency
    4. Fixing the Process or work allocation and monitoring
    5. Promote Healthy Conflict
    6. Show vulnerable side of you
    7. And many more… I am still exploring.