You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

Llewellyn Falco

Llewellyn  Falco

Independent Agile Coach

Llewellyn Falco is an independent agile coach. He discovered strong-style pair programming. He is creator of the open source testing tool ApprovalTests( www.approvaltests.com ). He spends most of his time programming in Java and C# specializing in improving legacy code.He is the co-founder of TeachingKidsProgramming.org & co-author of Mob Programming Guidebook

Presentations

Practical Refactoring - Tiny Steps to Better Code

9:00 AM MDT

The goal: Clean Code That Works, and getting there is half the fun. Working with a legacy mess can be frustrating, boring, dangerous, and time-consuming. When FIBS occur (FIBs = Fixes that Introduce Bugs) you often enter an endless Test and Fix cycle that can quickly escalate into a nightmare. I've been there, you've been there. How do we return to pleasant dreams?

In this code-centric workshop we'll look at ways to introduce sanity and calmness into the process of maintaining and improving buggy, poorly written, poorly designed code. Few slides, mostly code. Learn how to turn any project around and have fun doing it.

Hands-on: Let's save some Legacy Code

8:30 AM MDT

Like everyone else, you have a large product that is hard to work with. We're going to change that in 75 minutes. Together we will save some gnarly legacy code (one thousand-line function). We will start with something hard to read, untested, and possibly buggy. We will finish with code that is stupidly easy to modify. You'll learn 6 trivial techniques that you can apply over and over to fix 95% of the messiest code you have. You can take home this exercise to help the rest of your team learn these techniques. You'll also learn how your team can teach itself a bunch more techniques to handle the other 5%.

We are going to save some legacy code. In 90 minutes. While adding features. We will mob program; you will save this legacy code. We won't introduce any bugs along the way. We will spend the time that you would normally use reading code to instead make it readable. You can apply these techniques and reduce the cost of coding within 48 hours of getting home.
We have done this exercise with dozens of teams. They code differently now. Changing existing code is actually safer and cheaper than writing new code. Their designs get a little better each day. This session will improve your code and show you what skills to learn to gain further improvements.

Learning Outcomes:
Know the 6 refactorings required for reading code by refactoring it.
Differentiate between refactoring and micro-rewrites (code editing), and choose each where appropriate.
Have fluency in the key refactorings with one tool set and know how to spread that fluency to other tools and to broaden the skills within that tool set.
Able to start successfully saving legacy code without making major investments, even with no tests.
See an obvious path for continuing to learn design and refactoring skills - know where and how to get feedback and can create own curriculum for next 1.5-3 years of improvements.

Developing Design Sense for your Code

10:30 AM MDT

“In order to make delicious food…. you need to develop a palate capable of discerning good and bad. Without good taste,
you can't make good food.” - Jiro Ono (World’s Best Sushi Chef)

Many of us are stuck with messy code. We know it’s not great but it works and what can we do? Where and how do you start?

We are going to use some cutting edge training to train your pattern recognition section of your brain to instantly recognize common, reoccurring anti-pattern (smells) in your code.

Then we will learn very specific techniques to start improving on these specific smells.

Once you are trained to see these anti-patterns you’ll recognize them everywhere. Now that you are equipped to handle them your code will start to transform into something beautiful and easy to work with.

Mob Exploratory Testing Workshop

1:00 PM MDT

“All the brilliant people, working on the same thing, at the same time, in the same space, and at the same computer.“ - that is Mob Programming. When the activity we mob on is exploratory testing, or the viewpoint to being a programming mob is that of an exploratory tester, we call it Mob Testing. Mob testing - a group testing activity utilizing one computer - voices out the tacit knowledge in the group of individuals on shared tasks. Facilitated by an expert, it makes a great mechanism for building habits and transferring skills over passing knowledge.

In this workshop, we amp up our testing skills by learning from one another, and learn in a mob, getting the best knowledge out of the team into the task at hand. With mob testing, we get a glimpse into the head of the testers while they test because “for an idea to go from your head to the computer, it must go through someone else’s hands”. This is a specific communication style called Strong-style pairing, and it connects the group of brilliant minds in the mob in a shared experience.

The workshop gives you ideas on:
How mobbing gets the tacit knowledge out in a team in an actionable format
How to introduce learning in mobbing format at your place of work
What would it look like to think like an exploratory tester, with intent of understanding coverage while uncovering useful information
What would it look like to apply testing skills while joining a group programming activity
How you can improve your collaboration skills in hands-on work

We will set the room up to two main roles: the mob and the observers in the fashion shown in the picture below. Observers can rotate into the mob and throughout the session play a significant role in regular retrospectives distilling learnings. Don't be afraid, you will not need technical skills to join the mob.