After a bit of silence I finally managed to continue my "Heroes of Java" interview series. The 16th edition is about Werner Keil.
Among his earlier clients are Sony where Werner designed and implemented micro-format based tags for Sony Music.
Besides work for major companies he runs his own creative, talent and consulting agency Creative Arts & Technologies. In his spare time, he runs and supports open-source projects, writes song lyrics, novels, screenplays and technical articles. He is committing member of the Eclipse Foundation and Java Community Process, including his role as JSR-275 Spec Lead and Executive Committee Member(SE/EE).
Who are you?
I am Founder/Owner of a consultancy, Creative Arts & Technologies, Agile Coach, Java "Godfather" (founded or raised many Java projects and standard), Individual Executive Committee Member at JCP.org. Beside that I am involved in a couple of other Open Source communities like Eclipse, Apache, Java.net, Sourceforge or GitHub.
Your offical job title at your company?
Do you care about it?
I founded or helped found many projects and initiatives, so maybe the founder
Do you speak foreign languages? Which ones?
German, a little bit of French and some understanding of all languages derived from Latin (Italian, Spanish mostly)
How long is your daily "bootstrap" process? (Coffee, news, email)
News, Short Messages or email in most cases on a tablet. Coffee I save the office, unless I stay in a place (hotel, B&B) where it's ready before I leave
You have a twitter handle? Why?
@wernerkeil It is a quick and often also direct way of communication. Some people or companies you also get attention there best;-)
Whom are you following in general?
Interesting people or accounts. Creative personalities or people I work with, mostly IT professionals
Do you have a personal "policy" for twitter?
Not really. I try to keep feeds by Android games or other channels away from it, funnel them e.g. into Facebook, but beside that I tweet both personal and professional.
Does your company restricts or encourages you with your twitter usage?
There were very few clients, especially in India (not that it would have increased their own productivity;-) who restricted it or preferred us to use Twitter only outside office hours. As it helps, e.g. to check with colleagues from a particular field very fast when you have a problem, most other clients these days tolerate or even appreciate it. Especially those clients and teams who really work in an Agile way, and not just claim to do so.
What's your daily development setup? (OS/IDE/VC/other Tools)
Depends a lot on the project. Windows is usually the desktop OS, but some environments like the current one use it only to host a multitude of Virtual Linux instances. There tools are often console-based or plain text editors like VI or Emacs. When I develop Java in most cases an IDE is involved, either Eclipse or for tasks it's better suited NetBeans. Occasionally I use other IDEs like IntelliJ or JDeveloper, mostly if a team or work item prefers to use these.
Which is the tool providing most productivity to your work?
Hard to say, for the current requirement there are mostly Console based based Linux tools and programs. Too many to mention. The fact, that Eclipse makes products and tools feel familiar, even if you work with many different languages and environments is of course a benefit.
Your prefered way of interacting with co-workers?
If everybody is closely located, talking face to face is usually best. Otherwise some Instant Messenger, either internal or over the Internet (like Twitter, Google, MSN or Yahoo) works best. Email for longer conversations or if you need to attach more than an occasional image. I rarely use the phone, except for conference calls in some projects.
What's your favorite way of managing your todo's?
A Kanban board or tool
If you could make a wish for a job at your favorite company: What would that be?
Chief Architect, Evangelist or a role close to that. CTO maybe. The favorite company would probably a solid start-up either in a Social or Mobile business, or combination of both
You're programming in Java. Why?
I got a bit sick of Microsoft languages and runtimes often behaving badly by turning my UI controls into a black or white rectangle. If just a single DLL had changed or similar configuration differences occured. Neither of these components were transparent or sources available. While not all of Java was when it came out, a much greater part of the system could be looked at and understood, how things work or why something doesn't. This way e.g. I managed to translate all of Swing into a Dozen languages, years before Sun did. Imagine that with most Microsoft solutions even today.
What's least fun with Java?
Boiler-plate code can be tedious to write, when you may just need a rather simple Business task. Lack of modularity and related classpath issues is probably worse.
If you could change one thing with Java, what would that be?
The classpath system I'd say, see above. There are more sometimes smaller things, but thanks to the JCP I already am involved in some changes.
What's your personal favorite in dynamic languages?
Fantom. Though it may be lesser known than e.g. Scala, it got some of the basic principles you need more often than you think like Date, Time or ther Measurement Units better supported than Java. Makes it a more Functional language. The only equivalent case would be F#, but Fantom is also among the few languages running either on the JVM or .NET CLR.
Which programming technique has moved you forwards most and why?
XTreme Programming, ideally going hand in hand with sufficient amount of Unit Tests written. There are a number of Java Enterprise Design Patterns like "Value List Handler" just to name one example, I applied and created frameworks for prior to it being named and identified by Sun or other industry players.
What was the biggest project you've ever worked on?
There were a few. DeutschePostWorldNet could be among the biggest in range and the people it reached. It also indirectly helped shape some Java standards like JSR-170 straight from our team of BEA, Day and Individual Consultants like myself. Nokia, part of Ovi probably another good example. The largest team in one place was I guess a bank that no longer exists by that name. We had up to 100 people in a single Stand-Up(!) far too many, but the Scrum Master managed that better than other projects I saw since then with 1/3 or less people;-D
Which was the worst programming mistake you did?
I was involved in writing an Application Server based on EJB 1 EntityBeans a long time ago. While it provided a lot of insight into e.g. the first version of JBoss ever written in the making, it went along a different path, involving a few Antipatterns those who defined the requirements demanded. I left the project eventually. And heard to little surprise, it took them at least 12x more time to write. And users 4-6x more memory on each client to run.