XPday London

Developing a Sense of Smell

Presenter: Kevin Rutherford & Lindsay McEwan

Objective(s) of the session:

Participants will learn:

  • How to discuss code quality in terms of Smells; they will also gain some understanding of when smells indicate real problems, and when they are more benign.
  • Why technical debt is a financial drain on the business; how Smells can present opportunities to improve your, and your team's performance.
  • Why not all design patterns are necessarily Smell-free; it often depends on how and when they are applied.

Contents:

Code Smells, like a pattern language, can help explain why some code is harder to change than it might otherwise be, i.e. why that code is hindering your progress on your current feature or bug-fix. Using Smells in such discussions, we feel, is less vague and less subjective, meaning a way forward is quicker and easier reached.

Participants will review some source code in the light of specific change requests and will explore the communication value of Code Smells as both a pattern language and a design vocabulary. We will discuss how Smells can indicate what code has become hard to change, and why that is a drain on the business.

Participants will also review some common programming and design patterns in the light of what has been learned, discovering tensions between the need for change and idealistic "by-the-book" design.

Format and length: 90 mins workshop

The session will be a workshop. Participants will work on code in pairs or small groups, and will discuss their findings as a group. The discussions and work sessions will be punctuated by brief presentations of new material.

Process and timetable:

The following outline will be refined in due course:

  1. Participants will review some prepared source code, in pairs or small groups, in the light of a specific change request
  2. The whole group will discuss the "quality" of the code
  3. Participants will be armed with information about some key code smells
  4. The pairs will then review the code again and the group will discuss the smells' use in communication and design.
  5. We will take a look at some major types of code smell and discuss their scope in the context of system architectures and popular design patterns.

Intended audience and prerequisites:

  • Programmers, designers, architects, anyone looking to improve their team's performance.
  • Anyone who wants to write better code, but who doesn't really know where to begin.
  • Anyone who wants to understand why changeable code helps team performance, and why "technical debt" is a real cost to the business.

What do the presenters expect to learn from the session?

We want to explore whether the "anti-pattern language" of code smells can be used as a basis to:

  • discuss and visualise change;
  • de-mystify "technical debt";
  • direct refactoring effort.

Materials needed, room layout, limitations...:

  • We may ask participants to bring a laptop
  • We plan to show some powerpoint slides
  • The room should be laid out as a schoolroom, with desks for pairing.

Comments

From Lindsay McEwan [80.175.92.189] - 2009-09-01

Hi Anna.  Thanks for the feedback.  Our mini-bios:

Dr Kevin Rutherford is a senior agile project leader, coach and
developer with over 25 years' experience in hands-on software
delivery. He is a Chartered Engineer and a Certified ScrumMaster, has
been Managing Director of a successful consulting business and
architect of several million-pound enterprise solutions; and in recent
years he has coached numerous software teams to more than double their
speed and quality of delivery. He is one of the leaders of the agile
community in the UK, and founder of the AgileNorth group. Kevin is
also author of the forthcoming book Refactoring in Ruby.

Lindsay McEwan has been programming for over 20 years, in-between
stints as coach and manager.  He has worked on projects for
GlaxoSmithKline, HMRC, the Fire & Rescue Service, AstraZeneca,
Accenture, EADS, and Amersham Pharmacia Biotech.  Lindsay has been
experimenting with Code Smells as both a design tool and an aid to
team commication, on recent projects.

The workshop is indeed based on our experiences.

 

From Anna Shipman [91.125.55.53] - 2009-08-29

This sounds like it could be really useful. It would be helpful to have a little bit more information on the background though, a link to your mini-CVs maybe, a bit of information on the background of the talk - is this from research? experience? etc

Page

New
Edit
Rename
Versions

Menu

Edit Menu
Versions

Site

Changes
Index
Search
Templates

User

Log In

 
 

Last Modified 2009-08-11