Successfully reported this slideshow.
Your SlideShare is downloading. ×

More XP-rience

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
More XP-rience:
What more have I learned
about eXtreme Programming
in the last 15 years?
By Niall Ross, Cincom Systems
@ci...
The core of eXtreme Programming
• Test-driven development
• Refactoring
• Pair-programming
• Tools
• Psychology
(which I w...
©2016 Cincom Systems Inc. All Rights Reserved.3
The first IT cartoon
I ever saw

YouTube videos are no longer supported on SlideShare

View original on YouTube

Loading in …3
×

Check these out next

1 of 13 Ad

More XP-rience

Download to read offline

More XP-rience
Video: https://youtu.be/DoFrzbpECCY
Thu, August 25, 4:00pm – 4:30pm

First Name: Niall
Last Name: Ross

Email Address: nross@cincom.com

Title: More XP-rience

Type: Talk

Abstract: In the 15 years since I last presented my 'XP-rience' of
eXtreme Programming to ESUG, I've had a lot more experience: of
working in partly and wholly not-colocated teams; of how I and others
actually think while doing XP; of the disadvantages and positive
advantages of non-colocation; of what is most used and most needed in
tools. This talk will let you (and me) discover if I've learned
anything in the last decade and a half.

Bio: Niall ended his undergraduate career with two intellectual
interests: computing and the theory of relativity. A quick check of
how much commercial work was available to relativity and gravitation
theorists made him decide to do academic research in that field and
then seek a commercial job in computing, rather than the other way
round. Niall started working commercially in IT in 1985. At first, he
was assigned to designing and implementing software engineering
process improvements; only after three years did he begin significant
writing and delivery of commercial software. This experience taught
him that intelligent people can form foolish ideas about software
engineering if they have not worked at the coding coalface of real,
large commercial projects.

Learning from this, Niall spent the nineties working on software to
manage complex, rapidly changing telecoms networks. A side effect of
this work was that it taught him much about how scale and rate of
change affects software. Early in the nineties, he discovered
Smalltalk. The more he used it the more he came to recognize its power
in this area. This perception was strengthened when he spent a year
delivering a telecoms management system in Java.

At the end of the decade, Niall formed his own software company to
offer consultancy in meta-data system design, Smalltalk and agile
methods. Over the next decade, he worked on a variety of
meta-data-driven systems, mostly in the financial domain.

Niall joined the Cincom Smalltalk Engineering Team nearly eight years
ago. His first task was to lead the team that does the weekly
VisualWorks builds - an experience he likened to doing brain surgery
on yourself every Friday (e.g., "Prepare new memory for insertion,
remove old memory … uh, I can't remember what I was going to do
next!").

Currently, he leads the Glorp and Database team. He also leads the
Custom Refactoring open-source project, which he co-founded, and the
SUnit open-source project.

More XP-rience
Video: https://youtu.be/DoFrzbpECCY
Thu, August 25, 4:00pm – 4:30pm

First Name: Niall
Last Name: Ross

Email Address: nross@cincom.com

Title: More XP-rience

Type: Talk

Abstract: In the 15 years since I last presented my 'XP-rience' of
eXtreme Programming to ESUG, I've had a lot more experience: of
working in partly and wholly not-colocated teams; of how I and others
actually think while doing XP; of the disadvantages and positive
advantages of non-colocation; of what is most used and most needed in
tools. This talk will let you (and me) discover if I've learned
anything in the last decade and a half.

Bio: Niall ended his undergraduate career with two intellectual
interests: computing and the theory of relativity. A quick check of
how much commercial work was available to relativity and gravitation
theorists made him decide to do academic research in that field and
then seek a commercial job in computing, rather than the other way
round. Niall started working commercially in IT in 1985. At first, he
was assigned to designing and implementing software engineering
process improvements; only after three years did he begin significant
writing and delivery of commercial software. This experience taught
him that intelligent people can form foolish ideas about software
engineering if they have not worked at the coding coalface of real,
large commercial projects.

Learning from this, Niall spent the nineties working on software to
manage complex, rapidly changing telecoms networks. A side effect of
this work was that it taught him much about how scale and rate of
change affects software. Early in the nineties, he discovered
Smalltalk. The more he used it the more he came to recognize its power
in this area. This perception was strengthened when he spent a year
delivering a telecoms management system in Java.

At the end of the decade, Niall formed his own software company to
offer consultancy in meta-data system design, Smalltalk and agile
methods. Over the next decade, he worked on a variety of
meta-data-driven systems, mostly in the financial domain.

Niall joined the Cincom Smalltalk Engineering Team nearly eight years
ago. His first task was to lead the team that does the weekly
VisualWorks builds - an experience he likened to doing brain surgery
on yourself every Friday (e.g., "Prepare new memory for insertion,
remove old memory … uh, I can't remember what I was going to do
next!").

Currently, he leads the Glorp and Database team. He also leads the
Custom Refactoring open-source project, which he co-founded, and the
SUnit open-source project.

Advertisement
Advertisement

More Related Content

Viewers also liked (18)

Similar to More XP-rience (20)

Advertisement

More from ESUG (20)

Recently uploaded (20)

Advertisement

More XP-rience

  1. 1. More XP-rience: What more have I learned about eXtreme Programming in the last 15 years? By Niall Ross, Cincom Systems @cincomsmalltalk (Twitter) #ESUG16
  2. 2. The core of eXtreme Programming • Test-driven development • Refactoring • Pair-programming • Tools • Psychology (which I will now talk about in reverse order)
  3. 3. ©2016 Cincom Systems Inc. All Rights Reserved.3 The first IT cartoon I ever saw
  4. 4. Pair-program all the time? Maybe not. • There are two temperaments: • Introvert: gains energy when alone, expends it when with others • Extrovert: gains energy from others, loses it when alone Some Smalltalkers are talkative, not shy of airing opinions – yet are introverts • Make some minimum obligatory: • Replace all one-one discussions / reports with pair-programming sessions • If you pair-program with someone regularly, you’ll know their progress • Thou shalt pair for at least X hours per week • Suggest a vague length - a “we can end after” time ©2016 Cincom Systems Inc. All Rights Reserved.4 So we need some Pair-programming – how much? @cincomsmalltalk #esug16
  5. 5. • Sharing knowledge on a common task: • Domain expert with code expert • Experts in two required frameworks • Leader and follower: • Old-timer with newbie • Handover • Equal in skill, not in temperament: • Innovator versus completer • Clean-code versus get-it-working • Cloners, overriders and respecters ©2016 Cincom Systems Inc. All Rights Reserved.5 Unequal and equal pairings @cincomsmalltalk #esug16
  6. 6. • “The combative engagement of creative intellects“ • “The creative engagement of combative intellects“ Which will it be this time? ©2016 Cincom Systems Inc. All Rights Reserved.6 Persuading the paired programmer to try your idea @cincomsmalltalk #esug16
  7. 7. Any good reasons • Trivial reasons to delay or halt-resume • Refamiliarise with area • Clean-up • Design • Think and talk at the same time? • Avoid tunnel vision • “Blessed is the man who, having nothing to say, refrains from giving long-winded evidence of the fact.” • And finally, the worst reason of all • “When pairing, if I’m driving, I can’t be lazy.” ©2016 Cincom Systems Inc. All Rights Reserved.7 When and why should one not pair-program @cincomsmalltalk #esug16
  8. 8. And I thought I had learned little in fifteen years ! • 15 years ago, my team of 6 pair/multi-programmed with: • NetMeeting (Windows only, otherwise good: instant, set-up, easy mouse handover) • Headsets with boom microphones (clean sound quality) on conference calls (robust) • Today, in mostly-smaller teams, I pair-program with: • Basic Skype (no mouse or keyboard sharing) or Lyncs (no Mac as yet) • WebEx or TeamViewer (mouse-sharing not quite as easy as NetMeeting) • VNC (good, needs both client and server to pair, takes a bit of set-up) and (often) • microphones embedded in the computer, carried over (less reliable) Skype ©2016 Cincom Systems Inc. All Rights Reserved.8 Screen-sharing Tools for Pair-programming @cincomsmalltalk #esug16
  9. 9. Anything I do more of than I did 15 years ago? • Inline method • Convert calling chain into one method • Re-break it into methods chunking the behaviour differently • Add/remove parameter • Usually adding – behaviour migrates upward, state downward • Removing - behaviour migrates from parameter to state • Convert to Sibling • Great when you (rarely) need it • I’m sure the UI could be clearer ©2016 Cincom Systems Inc. All Rights Reserved.9 Refactoring @cincomsmalltalk #esug16
  10. 10. “Solve the problem to understand the problem” - makes writing initial tests hard as well • Early tests • Script in a test, not a workspace • Agree a test, not words • A test framework is empowering • when you add fresh tests, think: refactor test framework? • Tests you don’t work on right away? • nagging tests • aspirational tests ©2016 Cincom Systems Inc. All Rights Reserved.10 Test-Driven Development @cincomsmalltalk #esug16
  11. 11. Humans are not that good at it • Smalltalk pushes the boundary of what you can do • Fight the problem, not the language • eXtreme Programming does the same • Make it run (wrong!) • Make it right (less wrong!) • Make it fast (er) I get by with a little help from my friends • pair-program – as much as you can (bear) ESUG 2016.11 Programming is not that easy @cincomsmalltalk #esug16
  12. 12. ©2016 Cincom Systems Inc. All Rights Reserved.12 Thank You! Suzanne Fortman Program Director / Engineering Manager sfortman@cincom.com @SuzCST (Twitter) Arden Thomas Product Manager athomas@cincom.com @ArdenTCST (Twitter) Niall Ross Senior Research Engineer nross@cincom.com @cincomsmalltalk (Twitter) @cincomsmalltalk #esug16

×