An interview with Charlie Poole

Ferdinando Santacroce from Italian Agile Movement interviewed Charlie Poole, keynoter of IAD17.
A short chat, but full of content and previews both for those who will be part of the workshop on Friday, and for those who will attend the Saturday keynote.

Ferdinando Santacroce: Mr. Poole, I’m very happy to talk with you! I learnt TDD using NUnit, and now I’m excited to talk to him who laid the foundation for the project.
Everyone knows you for NUnit, but you have 40 years of experience in the software development behind you: tell us a little about your career

Charlie Poole: I came a little late to the business of software development, which is why I have so few years of experience! With university training in French Literature, I didn’t have a technical background but I started as a business analyst. However, I spent a lot of my spare time mastering programming on the mainframe and some early hobby computers like the venerable KIM-1. That allowed me to make a transition into the more technical side of software development early on.

In the early years, I worked in Fortan for engineering applications and PL/I for business. At the time most business work was done in Cobol, and I occasionally had to use it, but I always felt a strong dislike for the syntax. I worked for a small department at the City of Seattle – the Water Department. Because of the small size, we were in constant contact with our direct users. I think that experience – back in the 70s – prepared me to accept XP and Agile as the most natural way to develop software.

I was lucky enough to be the first “computer guy” hired by the department and was able to form my own group eventually. This put me in a position to learn whatever technology I wanted to learn and then apply it. Not many people in that time had so much freedom! As I prepared to retire from my job in 1995, I trained myself in Microsoft technologies, hoping I could do something with it.

After retirement, I began working as an independent consultant. I worked at Microsoft and other firms in the Seattle area, specializing in C++ and COM.

 

Ferdinando Santacroce: Wow, you lived very intense years, indeed! Today we know that the advent of eXtreme Programming (XP for short) and Agile Manifesto changed the rules in software development field; tell us a little bit on how you met them, and what they meant to you.

Charlie Poole: The turning point for me came in 2001, when I was working on a project that was not making a lot of forward progress. After the management removed a few people, I was asked to take over the project – temporarily, because I didn’t really want to give up my consulting career. At the time, I had been reading about XP and this seemed like a great opportunity to try it. I only had books to go by, so I asked for help on the original Wiki, created and run by Ward Cunningham. The answers I got from the XP community were my “training course” in XP. I used the advice I got to turn the project around and deliver the first working prototype of our software. You can still read the story of that first experience here: http://wiki.c2.com/?ThreeWeekProjectTurnaround

The following year, with that job behind me, I decided I wanted to get a better, broader exposure to XP. I feel like I made a critical decision there. I had the choice of attending a particular agile conference in Chicago or going to XP2002, which was held in Alghero, Sardinia that year. Although I had never heard of the place, a quick look on the web was enough to tell me that I should visit Sardinia. In that particular year, the conference was relatively small and I was able to meet many of the folks who started the Agile movement, learn from them and tell them about my own experiences. From then until 2015, I took part in the XP conference every year.

After I discovered XP, I began to work as a coach and trainer rather than a technical consultant. I spent time in a lot of different companies and hopefully left them in a better place each time. For the past few years, I have only taken occasional engagements and spend my professional time working on Open Source (Ed. Nunit.org).

 

Ferdinando Santacroce: Very fascinating story! Testing is one of the topics you have dedicated most of your career; what does testing mean for you? What’s beyond TDD, BDD, and all the other forms of testing we know?

Charlie Poole: Testing is everything – at least if you understand it in a certain way. If we want to carry out any directed activity in our lives, we need to know why we are doing it.

Let’s say I work late tonight. Why? Perhaps it’s for more money or perhaps for the satisfaction of getting the work done or perhaps so I can take off a few days next week. That “why” is the heart of testing. At some time in the future, I will know if I succeeded. I’ll get more money or not. I’ll feel satisfied or not. I’ll take off that time from work or not. If I meet my goals, that’s a passing test. If I don’t, the test has failed. Either way, I can remember the outcome the next time I decide whether to work late. We call this feedback.

In software development, only some tests are like that. That is, only some tests can wait until the end of the project. Mostly, those are “Business Tests”. If the project had a goal of saving money, for example, the business can examine whether that really happened. But for the development team, we need a proxy of some kind for our eventual success. For us, tests are a very low-level proxy for the eventual success of the software and of the business for which we are developing it.

I’ll elaborate more on this in my workshop on Test-Centric Development. In brief, however, TDD gives us tests that form a proxy measurement of the stability and correctness of the software. BDD helps us determine whether the software is doing what it is supposed to do at a feature level. What I call “Team Tests” help us determine whether the practices and processes of the team are the right ones for us. And management and business tests are there to determine if what we did is eventually useful to the business. That’s Test-Centric Development in an nutshell.

All of this relates to my keynote topic as well: Back to Basics. Of all the basics I’ll talk about, the most basic principle is that our software is always for something. If it doesn’t actually further the goals for which it is being written, nothing else matters. Quality, maintainability, even correctness are irrelevant if the software doesn’t do what it is supposed to do… if it doesn’t serve the needs of the people for whom we are writing it. Tests can tell us that better than any other technique that has been invented up to now.

 

Ferdinando Santacroce: Wonderful, can’t wait to learn more about it. We understand you will be living in Italy! Why did you choose our “BelPaese”? Tell us something about yourself, things you like and how you planned to enjoy your retirement.

Charlie Poole: After retiring from my long-time government job, I had time to travel with my wife between gigs. Italy has called to us many times over the years. As you probably know, the XP conference originated in Italy and has been held here a number of times over the years. In 2014, I was the general organizer of the XP conference in Rome and my wife and I spent about 10 weeks traveling around the country afterwards. That trip and a later one two years after led to our decision that we would like to live in Italy for at least a year.

There’s something about the ambience of Italian life and culture that is very attractive to both of us. And then, of course, there’s the food! As it happens, I enjoy learning languages and I have discovered that it’s exceptionally easy in Italy to find people who are patient and willing to communicate with a struggling foreigner. Perhaps I’ll do a part of my keynote in Italian, so we can all see how well I’m progressing. At least it might demonstrate how patient the audience is!

Right now we are working on simplifying our lives back in the US so that we can make a move to Italy for an extended period, without complications.There are legalities involved, so it’s not completely certain if we will be able to do it. In the worst case, as US citizens, we can spend 90 out of 180 days in Italy, so if we can’t get permission to stay longer we’ll simply keep returning.

Now that I’m retired, I only do very small gigs, usually to get teams started on the Agile path or to help them review their technical practices. I’m still spending my time working on Open Source software and I expect to put out a new framework aimed at micro-testing in the next year. It’s not yet published but I might have something to say about it in Urbino. On the non-professional front, it’s family, reading, travel, photography, enjoying nature and – of course – conferences like this one!

Ferdinando Santacroce: Mr. Poole, thank you for sharing your memories and thoughts with us. We will look forward to meet you in Urbino, and to hear something more from your living voice!