Talk: Keeping Code Agile: The Six Aspects of Agile Code
Speakers directory
Speaker:
David Legge
Talk description
Title:
Keeping Code Agile: The Six Aspects of Agile Code
Short synopsis:
Any developer will have worked on less desirable code and will recognise Legacy Code, which is more of a comment on its quality than its age. But what do we mean by Agile Code and what does it look like? In this session we will explore both, drawing out Six Aspects of Agile Code, and supplying tools and techniques for working with them. The session is language neutral, aimed at developers of any level as well as their leadership, and covers technical practices to make the code Agile.
Max size: 500 chars
Long synopsis (optional):
This is assuming a 45 minute talk. A 90min interactive 'workshop' version is also available. Legacy Code is a well understood term in a general sense at any level of experience; however it can also be an amorphous term; here we try to extract the essence of what we mean with specific symptoms. Agile Code, a term which I have coined, can be taken to mean both code that is easy to change in a literal sense, but also Clean Code that is not cleaned for its own sake but kept to good state for business need. Having run a number of workshops and got participants to discuss what is and isn’t Legacy Code and Agile Code, I have analysed the results and drawn common theme; grouping the points raised into aspects. In short, the six aspects I have identified/proposed are: Design - eg SOLID, immutability, loose coupling, clean APIs etc, Style - concise, short methods & classes, naming, no side affects, comments, etc Source Control - your using it, small daily commits, minimal branching, known points, Build - works out of the box, reliable & quick, automated, single click release/deploy, Tests - good coverage, sensible blend (pyramidical - lots of unit, a few system), not brittle, tests the right things Team - shared ownership, responsive to build failures, confident to change code, no Bracket Wars™, learning environment To accommodate both Agile Code and the antiproblem (Legacy Code), the group as a whole will be split to consider the two sides. Having asked small groups or pairs to discuss what they would see as symptoms of being Legacy or Agile Code, these points will be collated, discussed and divided between the different aspects, probably before naming them. For the final section, before wrapping up and taking questions, I can fill in any missed areas. Structure: A duration of 45 minutes is assumed; 60 minutes would be achieved by using the greater durations 5 mins - Introduction 5 mins - What is Legacy Code and what do we mean by Agile Code 5-10 mins - Small group or pairs discussion identifying signs of Legacy & Agile Code 10-15 mins - Collate items from groups with discussion 10-15 mins - Discuss ways to tackle each aspect 5 mins - Conclusions 5 mins - Questions and Wrap-up
Max size: 5000 chars
Tags:
Speaker directory:
Listed in directory
Not listed
Speakers directory