REFACTORING

2 days

Reshape your code to accomodate new requirements easily, without breaking your software


Refactoring is the secret sauce of Agile delivery. As our code grows, it gets more complex, harder to understand and harder to change - making it much harder for teams to respond to changing business needs.

On this course, you will learn to reshape your code to enable you to sustain the pace of change and respond to user feedback and changing business requirements without breaking your software. You will also learn how to refactor legacy code safely to accomodate new requirements without risking existing operations.

With an emphasis on the practical, this workshop is packed full of hands-on demonstrations (20%) and exercises (80%). Participants learn together with pair and mob programming.

Available Online & On-Site*

High-quality instructor-led training remotely for small teams and in-person for teams small and large

* Currently, all training is delivered remotely. Onsite training will resume in 2022

In This Workshop...

Learn why simple, readable, modular code is essential for sustaining the pace of innovation, and how to measure the impact code quality has on software delivery.

Learn how to safely reshape the internal design of your software one small, atomic, undoable step at a time, and how to use unit tests to ensure nothing's broken

Learn how to recognise the signs that your code is "rotting", and to identify problems with:

* Readability
* Complexity
* Coupling
* Redundancy
* Duplication

Practice refactoring the following common code smells:

* Long methods/functions
* Comments
* Large classes/modules
* Divergent change
* Long parameter lists
* Duplicate code
* Copy & paste inheritance
* Message chains
* Feature envy
* Inappropriate intimacy
* Data classes
* Data clumps
* Switch statements

Learn a simple process for safely making changes to legacy code that enables you to add unit tests where you need them and to improve the surrounding code to make changes even easier in the future.

Learn a fun and challenging game that improves your practical refactoring skills

Mobirise

Video Demo

Check out our free videos on refactoring

Languages

This course is available in C# and Java versions (JavaScript and Python coming soon)

Pricing

Prices are per person, and do not include travel expenses and VAT.

Pricing Band£
First 4-6 people (online)800
Next 7-12 people (online & onsite)550
Next 13-20 people (onsite only)300
Additional people on the day800

FAQ

This training workshop is aimed at C# and Java developers with at least one year's experience programming in their chosen language. It's often attended by technical leaders who wish to keep their code craft skills up-to-date, too.

You will need a suitable computer with your favourite C# or Java editor/IDE installed. On-site courses will require a room large enough to comfortably accomodate all participants, good, reliable Internet access (Wi-Fi), and a data projector or suitably large TV (with HDMI input) that will allow participants to read code from the back of the room. You will find a pen and paper handy.

Online training is available whereever you are, pretty much. (There are a few countries it's sadly not possible to do business with, of course.) Onsite training is available across the UK, Europe and many other regions. Ask us.

9/10 times, the trainer will be Codemanship founder and course author Jason Gorman. Jason has 38 years' programming experience and three decades of professional experience as a developer, technical lead and software architect. He's run hundreds of code craft training workshops over the last 20 years, and is a very experienced teacher and mentor. If, for any reason, Jason isn't available for your workshop, we'll inform you well in advance and offer you a trainer of similar industry seniority.

Yes. You will most definitely be writing code in this workshop. Business analysts, testers, project managers etc may find it useful to sit in and observe -at no charge - if they want to gain an understanding of Test-Driven Development and how it fits into the overall software development cycle, but this is 100% a hands-on workshop.

Since 2009, we've delivered training for developers working in C++, Swift, Go, Kotlin, Groovy, Ruby and many other languages. Ask us about customised courses.