Saturday, December 24, 2011

The 10th part of my "Heroes of Java" series. This is the Christmas edition and I would like to thank all readers for their interest in my series! If you have ideas for interview partners: Let me know!

Rod Johnson

is the father of Spring, which grew out of his influential book, “Expert One-on-One J2EE Design and Development,” which initiated the “lightweight” transformation of enterprise Java. Rod co-founded SpringSource, where he served as CEO until its 2009 acquisition by VMware, where he is now a Senior Vice President and leading VMware’s SpringSource product division.
Rod is an authority on enterprise Java architecture, a thought leader on open source development and business models, and a popular speaker at conferences around the world. He remains actively involved in guiding the direction of Spring and is a member of the Java Community Process (JCP) Executive Committee (EC). Rod has over 15 years technology, management and business experience. He holds a BA with Honors in Computer Science, Mathematics and Musicology as well as a PhD from the University of Sydney.

General partWho are you?
I’m a musician, computer scientist and businessman. The order changes
every so often.

I spent several years as a Java developer and architect, wrote two
books on enterprise Java architecture based on that experience, and
out of that founded the Spring Framework, and then a business around
that.

Your offical job title at your company?
I’m Senior Vice President, Application Platform, at VMware. Prior to
that I was CEO of SpringSource.

Do you care about it?
I believe in what we’re doing and I really like working with my
colleagues. I think VMware has some really good values as a company.
Do you speak foreign languages? Which ones?
I read French fluently, or at least I used to. My spoken French is
extremely limited, however. Unfortunately, as for most English
speakers, my foreign language skills are very poor.

How long is your daily "bootstrap" process? (Coffee, news, email)
It varies how much I have time for. The two essentials are a shower
followed by a latte, which I prefer to make myself: I love the ritual.
I’m not a morning person, so I need a kickstart. All up it takes about
30 minutes before I’m ready to leave the house, or go into my study if
I’m working from home.

I also scan my email on my phone, to see if there’s anything urgent I
need to think about or respond to. On the weekends I have time to read
the New York Times and Sydney Morning Herald on my iPad, and cook
breakfast for the family.

When I’m in the States I like to listen to NPR on the drive to work,
when I’m not on conference calls.

TwitterYou have a twitter handle? Why?
I originally got into twitter as a marketing tool [Ed.: @springrod]. But I always felt
that it had to be authentic, so I would never tweet anything unless I
truly cared about it and meant it. Today I often go a long time
without tweeting, but I also tweet some personal stuff. My wife once
got offended when I tweeted about her broken leg. I’m not sure why
twitter can get addictive, but it does, at least from time to time.

Whom are you following in general?
Mainly other tech people whose thoughts interest me. And also friends.
I’m happy to avoid celebrities. I don’t follow too many people, as I
don’t want to be overwhelmed and find twitter another source of
stress. There are enough already.

Do you have a personal "policy" for twitter?
Not really. I do think privacy is important, so I would never tweet
things about other people that they might not want publicized. I’ve
been surprised when people have tweeted things that I would have
thought were better kept among friends.

I do believe it’s important that everything I tweet is honest. If I
can’t say what I truly feel about something, I’ll shut up.

Does your company restricts or encourages you with your twitter usage?
There’s no formal policy. Certainly no restriction. We encourage
people to tweet to interact with the developer community. Essentially,
just to be themselves.

WorkWhat's your daily development setup? (OS/IDE/VC/other Tools)
SpringSource Tool Suite. I love the convenience of an integrated
distribution, optimized for the things I care about. And Powerpoint,
unavoidably.

Which is the tool providing most productivity to your work?
Probably my smartphone. It’s incredible to think this technology
didn’t exist just a few years ago. I couldn’t live without it.

Your preferred way of interacting with co-workers?
Anything but email! Email is a scourge on productivity and happiness
at work. It’s evil, and most emails are pointless.

We’ve always used Skype a lot at SpringSource. It’s handy to be able
to IM and then slip into a voice or video conversation as needed.

Face to face communication is best of all, but we have always been a
distributed team.

What's your favorite way of managing your todo's?
I tend to use handwritten lists a lot. I’m most productive when I’m
working through a list.

Lists are great, but pen and paper is a bit primitive. Tasktop is a
nice way of linking a todo list with applications running on the
desktop. It’s based on the Eclipse platform, too!

If you could make a wish for a job at your favorite company: What would that be?
I’d want to be either CEO, or in a purely technical role as an
architect/developer.

JavaYou're programming in Java. Why?
It’s the most popular language in the world, for some good reasons. It
runs nearly everywhere, it performs well, it has comprehensive
libraries, and it’s easy to understand code written in it. The last
point is really important. Take C++, Perl or Ruby: A lot of code
written in those languages is hard to pick up except by the author.

I find Java the most useful language for most of the things I want to
do. It’s not perfect, but it’s a good tool.

If you could change one thing with Java, what would that be?
There are quite a few things that could be made less verbose, like
variable declarations. I still miss default method argument values
from C++. On the whole I think the improvements being made in the
language in 7 and 8 are on the right track, and will make it nicer to
program in Java.

I’m not really a language purist or language geek. In general I think
it’s more important what’s available around a language than in the
language itself. Frameworks and libraries give a language leverage and
make it useful.

What's your personal favorite in dynamic languages?
I’ve played around with Ruby and Groovy most, but I haven't fallen in love yet.
Which programming technique has moved you forwards most and why?
I think it was when I truly got object orientation. It’s such an
elegant means of modeling a lot of domains.

What was the biggest project you've ever worked on?
Definitely the Spring Framework project. Not so much in terms of lines
of code, but in terms of level of activity and team collaboration and
how critically important it is as infrastructure relied on by millions
of developers. I’ve worked on a number of big industry projects,
especially in banking, but they were less challenging.

Which was the worst programming mistake you did?
I’ve made many mistakes, but at least I do tend to refactor them away!
Unless Juergen gets to them first.