InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

InfoQ Interview: Dave Thomas on the Joys of Life-long Learning

Posted by Deborah Hartmann Preuss on Jan 24, 2008

Sections
Process & Practices,
Architecture & Design
Topics
Training / Certification ,
Methodologies ,
Agile ,
Stories & Case Studies ,
University Programs
Tags
Complementary Practices ,
Kata ,
Book ,
Criticism
During a lull at QconLondon 2007, while InfoQ-ers ran around organizing conference tracks, Jim Coplien helped out by speaking with "Pragmatic" Dave Thomas for InfoQ. This energetic 30-minute interview runs the gamut of Dave's wide-ranging interests: from 'agile' publishing and how to turn what you love doing into a book, to staying pragmatic and passionate about one's work as a professional software developer. Dave's energy is inspirational, as he talks about how, after many years as a professional, he's still "having a blast" in his work, and developing his skillset.

After hearing about how Pragmatic Press came to be, the conversation shifted to some of Dave's software development practices and philosophies. Both Dave and Jim were among the 17 authors of the Agile Manifesto seven years earler. Asked "Is there a life after Agile? Where is Agile right now from where you sit?", Dave's reply included:
...Agility has moved from the kind of wild and wacky into conservative mainstream. ...people have recognized that agility is valid, is here to stay and it's a valid way to build software projects. ...The trouble is that once you passed that barrier you then get a bunch of people flooding in that don't really know what it means to be Agile.

I think, as a community, we are doing a pretty good job but we could do a better job of trying to make people understand what it really means to be Agile, what the true meaning of it is. It doesn't mean I am doing XP or I am doing Scrum; it's really a question of what I feel when I am doing it, what's the philosophy of it. Because you certainly don't have to do XP or Scrum or one of these standard methodologies to be doing Agile software development. That's the challenge that we are facing now, as we grow as a community and as the adoption rates increase, how do we keep it right and how do we stop it from being diluted?
Dave's passion for his work was evident throughout, prompting Jim to ask him directly about being a passionate person, and creating passionate people: "What can we do to incite this passion to drive on the learning of our industry and to raise up the level  of things?"
Ask the question differently: think about all the 5 years olds you know, they are full of passion, they are passionate about everything, whether it is Power Rangers or Star Trek, they have passion for everything they do. They do everything with gusto, they enjoy it, they don't mind making mistakes, they laugh when they make mistakes, it's so cool being a 5 year-old. By the time they get to 25 we have stamped that out of them, somehow we've destroyed their passion. So, it's not a question of instilling passion, we can't instill passion into someone, but what you can do is stop killing it in people.
He went on to cite industry examples, such as Google, which prove this can be done in the workplace.

Jim then turned to the subject of academia, touching on whether this work is even an appropriate subject for Academia (Dave quit his PhD because he didn't feel that there were valid PhDs in software), and asking
"What advice can you give to the academics in terms of how they can help their people develop?"
That is a really important question because I think, to some extent, the tone of the industry is set by Academia, because most people coming out are expected to have a degree in, typically, Computer Science. ...If you are an academic ... you are dealing with a very delicate product in your students, and ultimately when a student gets into the industry it is not how well they can analyze a particular function or the depth of knowledge in this particular architecture, it is their passion that drives them forward. And as an academic I think you have a responsibility not to squash that passion, I think you have to find ways of nurturing it.

I think it is really important to be well-rounded ... so you need, for example, to not just write Java code for 4 years as part of your degree. ...I think you have to understand that there is a certain beauty to computing, that you may not see if all you have been exposed to is Java. I think that is important. And ... a lot of colleges are focused on computing for the computing students, so you sit there and you have all your courses in software on whatever it might be. Some of the best hires that I have ever done have been music majors, history majors, philosophy majors, who never saw a computer in college, they saw probably the inside of a bar most, and they turned out to be really really good developers. Because they cared, they were smart, they could synthesize, they could draw parallels, all these kind of things that you have to do when you are working with clients in a real software situations. You could teach some of the programming language but you can't teach someone how to work the parallels between this and that.
Jim closed with a great question: Is the industry still a fun place to be? Dave's reply:
For some people yes, for other people no. There are clearly people who are enjoying themselves, having a blast. They are trying new things, doing great work, and for them it's a wonderful place to be. I mean, after all, when you think about (this is not me, this is Fred Brooks): "Software is like poetry: you start with a blank piece of paper and anything you can imagine you can create," and that's a unique place to be as an industry. But it is also really challenging, it is very hard work. So a lot of people don't get that part of it, they don't enjoy that part of it, for them it's a job: they turn up, they do the work, they go home. Which is fine but it's a really really hard way to make a living.

...Frankly, if you are not enjoying it, you are not writing good code: you might ask yourself: "Am I really in the right job? In the right industry?" Because I think everybody has the right to be happy. When you spend 8 hours a day, half of your waking life doing something, I think you deserve to be happy doing it.

I think the question is "As an industry are we happy?". Some yes, some not. "As an industry should we be happy?" Absolutely! I would say that the people who are not happy really deserve to ask themselves "Am I really in the right place?" and then do something to make themselves happy. Everybody has the ability to find something that does make them happy. They have a right to do that. And I think now for the first time in a long long time we actually live in a world where that is possible.
Enjoy the whole InfoQ interview on video: Pragmatic Dave on Passion, Skill and Having A Blast.
  • This article is part of a featured topic series on Agile

Related Sponsor

In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!

..of a 5 year old? by Michael Neale Posted
Re: ..of a 5 year old? by Deborah Hartmann Posted
...on helping others follow their passion... by Joe Miller Posted
  1. Back to top

    ..of a 5 year old?

    by Michael Neale

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

  2. Back to top

    Re: ..of a 5 year old?

    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...

    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

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.