Towards a Better Code Quality: Ways to Improve


Writing code is easy, writing good quality, maintainable code, takes effort. We all have read about creating good quality code but it’s often a constant struggle, for individuals and teams, to apply on a day to day basis.
However, it’s incredibly hard to be agile if the quality of code is poor. With increasing pressure to deliver software faster, better quality code can help us towards sustainable agile development.
In this workshop we will dive into ways individuals and teams can help to improve the quality of code, in order to create code that is easier to understand, more maintainable, is testable, and deliver faster.
Learn from hands-on practical code exercises that will help to practice the concepts we discuss.

Course contents

This workshop is hands-on and includes several coding exercises. Attendees are encouraged to pair and work on the labs. The workshop involves live-coding and is highly interactive. The topics covered include:
1. Motivations and reasons to care about code quality:
Impact on quality on agility and productivity
Getting a sense of code quality
Identifying code Smells
Identifying Design Smells
Hands-on Exercises
2. Refactoring to deodorize code:
Approaching refactoring
Analyzing code
Incremental and iterative approach
Key elements for refactoring
Hands-on Exercises
3. Measuring quality code:
Tools and approaches
Individual efforts
Collaborative efforts
Reevaluating quality after refactoring
Design qualities
Perils of long methods
Hands-on Exercises
4. Object-Oriented code concerns:
Measuring cohesion
Dealing with coupling
Class level issues
Perils of improper and unnecessary state
Proper use of inheritance
Dealing with needless complexity
Hands-on Exercises
5. Functional Style code concerns:
Idioms of programming in Functional style
Patterns and antipatters of functional style
Dos and don’t of working with lambda expressions
Functional purity and perils of violation
Hands-on Exercises

Target audience and prerequisites

Software developers, programmers, leads, architects, technical managers who are keenly interested in improving the productivity of their teams and the pace of development
 - 26 October 2022