InfoQ

Interview

Pragmatic Dave on Passion, Skill and 'Having A Blast'

Interview with Dave Thomas by Jim Coplien on Jan 24, 2008 05:38 AM

Community
Agile
Topics
Stories & Case Studies ,
University Programs ,
Methodologies ,
Training / Certification
Tags
Book ,
Kata ,
Criticism ,
Complementary Practices
Summary
At QconLondon 2007 Jim Coplien spoke with "Pragmatic" Dave Thomas for InfoQ. This energetic 30-minute interview runs the gamut of Dave's wide-ranging interests: 'agile' publishing; how to turn what you love doing into a book; programming (and methodology) monocultures; staying limber with code "katas"; and advice for academics: help your students live with the passion of a 5-year old!

Bio
Dave Thomas is recognized internationally as an expert who develops high-quality software - accurate and highly flexible systems. He helped write the now-famous Agile Manifesto, and regularly speak on new ways of producing software. He is the author of six books, including the best selling The Pragmatic Programmer: From Journeyman to Master and Programming Ruby: A Pragmatic Programmer's Guide.
Jim Coplien for InfoQ: Hi Dave. Would you like to introduce yourself for our audience?
What's the most fun thing you have done in the past 5 years?
Why would a person like you, great computer guy who probably should be writing code, start up a bookstore?
That's wonderful. If someone is interested in publishing a book with you, what kind of books are you looking for? How should they approach you?
You are an Agile publisher. What does that mean, to be an Agile publisher? That's a great phrase!
Very good. And of course you know the pair programming angle with publishing, from your work in the past. When you said you were an Agile publisher, you were of course one of the signers of the manifesto. Is there a life after Agile? Where is Agile right now from where you sit?
If you were to give some advice to, respectively, a manager and a developer, on helping them understand whether they are doing Agile or not: what would you tell them - andis that the right question?
I see the same thing too. It's one size does not fit all.
And there's variety in methods. Of course there is also variety in every facet of everything we do, including programming language. I am kind of a C++ guy, becoming a Java guy, I guess you are a Ruby guy, so with respect to the whole view of programming language and where we are today, and where you would like to see people go: what are your thoughts on that?
I understand the derivative benefits very well, it's good to have seen lots of different tools to know how to more effectively use the one you are using. But there is also an issue of mastery - Alistair Cockburn called software development "group poetry writing". And the language in which you are writing it is ... the language in which you are writing it. You have to master a program pretty well and things like its idioms, so I am told, in order to be effective in it. So you said you spent a year learning a functional programming language, part of which is probably learning the computional model, and what's the advice you can give concretely for a real developer (as opposed to a manager, not someone who is going to say "What class are we going to send this people to,") but someone who will make an investment in his career: "How expert do I need to be in a language in order to avoid the sorcerer's apprentice problem?"
It is funny: you call them "katas." I misunderstood you, I thought you said "toccata," which, of course, is the same concept in music, and depending on your market, maybe you can go there too.
That's a great metaphor. Dave, have you ever been in Academia? Got the professor thing?
What advice can you give to the academics in terms of how they can help their people develop? What kind of guidelines, directions, inspirations can they give to their students to help them learn the things you feel are important? So if you were to say "Here are the 3 top things I feel that students are missing today", coming out of University, or the 3 techniques you should be using to inspire our people, what would they be? Or is this the wrong question to the wrong market?
Might it mean that computing is not a proper discipline?
So, that's for the academic side of things, and really Academia, in my experience (and I hear this from a lot of people) is a very small part of your education. And in fact there is a lot of un-learning that goes on when you have your first job. So the main focus I think, of learning and advancement, is in our own jobs, in our own careers. And you talk about passion, where does the passion come from to draw people into learning? What can we do, what can you and I do to go out there in the industry and tell them to do, to incite this passion to drive on the learning of our industry and to raise up the level of things?
I think everyone who knows you, and who's had an opportunity to see you speak in person, understands you are a passionate person. It's wonderful to see that in an individual. What are your passions today?
At 50 years old you are a 5 year-old with passion. What do you want to be when you grow up?
How long have you been in the industry now?
And it was fun then?
Is the industry still a fun place to be?
I really appreciated having the time with you here, I wish you good luck and thanks again for your thoughts and sharing with us.
show all  show all

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.
..of a 5 year old? by Michael Neale Posted Jan 25, 2008 1:01 AM
Re: ..of a 5 year old? by Deborah Hartmann Posted Jan 25, 2008 6:16 AM
...on helping others follow their passion... by Joe Miller Posted Jan 25, 2008 8:11 AM
  1. Back to top

    ..of a 5 year old?

    Jan 25, 2008 1:01 AM by Michael Neale

    Yes, copy the enthusiasm, but NOT THE ATTENTION SPAN PEOPLE ! PLEASE !

  2. Back to top

    Re: ..of a 5 year old?

    Jan 25, 2008 6:16 AM by Deborah Hartmann

    I have no idea what you m... Hey wanna go get a coffee?

  3. Back to top

    ...on helping others follow their passion...

    Jan 25, 2008 8:11 AM by Joe Miller

    A great resource on this subject can be found in the strengths-based books by Marcus Buckingham and Donald Clifton (some written while Marcus worked for Gallup). In many ways this is about following those things you are passionate about. This is all part of a greater strengths-based/positive physiology movement -- which I believe is very active currently. A couple excellent titles on this subject are: "Now, Discover Your Strengths" (2001) by Marcus Buckingham and Donald O. Clifton, Ph.D. "Go Put Your Strengths to Work" (2007) by Marcus Buckingham

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.