login
Blurts on the Art of Software Development

Today | RSS | RDF | Atom | Other Tags
Categories : All | All | CI | .NET | General | Humour | Java | Personal | Reviews | Ruby | SW Eng

I just finished listening to Johanna Rothman's interview on IT Conversations. I chose to listen to the interview because I've been doing technical phone interviews for some of our new recruits and Johanna is the author of the recent title Hiring the Best Knowledge Workers, Techies & Nerds.

The interview starts from the hiring perspective, e.g. what kind of questions to ask, what kind of things to look out for, etc., but quickly turns to Johanna telling about her thoughts regarding project management in general. Excellent stuff. I highly recommend listening this one.

Just something I've noticed lately:
I've been seeing (and hearing) a lot of small hints and nudges (a word here, another there) about the mistake this industry has made in the last couple of decades -- trying to take the human out of the equation for software development. I honestly can't remember all the places where I've seen that but it's been a lot of places both online and inside soft/hardcovers.

And obviously I agree.

It can't get any easier than this and your help is very much needed down there.

I'm currently putting together training material on test-driven development for an XP course I'm pulling off in early January and have thus been reflecting on a lot of things. One thought this process created was that TDD in fact kills my courage, in a way. In a good way, I guess. Let me explain.

I'm coding something, going from red to green and back. I've just pushed CTRL-F11 in Eclipse to launch the integrated JUnit test runner when someone walks by and says something. I look up for a split second to realize that that someone wasn't talking to me. I see the green bar. What do I do? CTRL-F11. Again.

What's happening here is that I don't trust the green bar if I don't actually see the tests flashing by and the screen to update. One level down, what's happening here? Am I exhibiting a lack of trust against the IDE? Not that far fetched, but I'm not 100% certain either. What I suspect has most to do with my need to re-run the tests is that I've become so accustomed to having the safety of combining small steps and unit tests that I'm literally addicted to seeing the tests run before I continue.

What I meant by this being a good thing was, of course, the fact that being unable to continue without running the tests would seem to indicate that I've grown slightly less vulnerable to slip from a good practice.

Have you noticed something similar? What do you think about my self-diagnosis? I'd love to hear about it.

All abstract thought is based on metaphors. The question is not whether you will think metaphorically or not. The question is whether you will become aware of your metaphors and choose them consciously.

-- Kent Beck

Extreme Programming Explained, 2nd edition

My review of Kent Beck's Extreme Programming Explained, 2nd edition has been published at the 'ranch. I gave the book a full 10 -- read the review for details.

Hmm. It certainly does seem like the C# folks are getting all the cool stuff this Christmas :)

Two (four?) words: closures and lambda functions.

Oh puh-leeze... I just picked up an article talking about Eliyahu Goldratt having lectured in Finland at the Helsinki University of Technology about the Theory of Constraints.

First of all, I'm so pissed that I missed the event and only heard about it afterwards. Second, I'm pissed that they've made a pathetic attempt at translating TOC into Finnish. I mean really pathetic. Really pathetic.

Kapeikkoajattelu. I mean wtf is that? Sure you can reason your way from the meaning of Theory of Constraints to this word, but come on... Thank god I don't live in Germany. Then I would have to live with all the dubbed TV shows as well.

On the other hand, I haven't had a TV for some two months now and I'm perfectly fine without it so maybe Germany wouldn't be that bad. At least there would be some quite fun people to hang around with ;)

I just noticed that they've released Eclipse 3.1 M4. Here's a summary of the new features I consider worth polluting the web space for:

  • Project-specific code style settings -- no need to worry about remembering to import the code style after upgrading your IDE
  • Rerun failed tests first -- I've been waiting for this one for a long time!
  • CVS commit review -- too bad I'm not using CVS...
  • Eclipse startup -- not that important for me, personally, but I love having the option to launch Eclipse bypassing the native launcher

(yes, I know there's a whole bunch of J2SE 5.0 support -- it's just that I'm probably not going to use Tiger in anger until 2006 or so...)

Clarke Ching has found a lowered standards job ad. Well, at least they haven't listed UML as a methodology like so many others...

I'm actually currently listening to Kent Beck's recent talk on developer testing, accountability and the health of software at ITconversations.com.

Dion is right on the money on the limitations of servlet mappings. I've been wondering about this for a couple of years already although my number one wishlist item regarding servlet mappings has been support for search engine-friendly URL's a la Amazon.com. (although the importance of such a feature has probably been decreasing all the time...)

It's also nice to see Groovy progressing. I haven't really used Groovy beyond a hello world, but I sure like seeing the Java community push the envelope one way or the other.

I wonder when the XInclude support of J2SE 5.0 reaches Ant ant the like. Ok, so we've got the import element since Ant 1.6, but I still wouldn't mind a standards-based alternative.

It seems that JPOX is going to be the reference implementation for JDO 2.0. Nice.

Oh, and three spamming companies were ordered to pay $1 billion to a small ISP operating in Iowa. Ok. I get the big number and all but why a small ISP operating in Iowa? Why not me?

Yes, that's right. Well, almost. Or not at all. Depending on how you define "on the beach"...

I don't have a project until early January so I've got some two weeks of holiday before the trip to Riga! I do have a couple of days of internal workshop stuff at the office after Christmas and I have a couple of days worth of self-learning budget to spend, and I'm taking the remaining working days as holiday, but for me -- someone who has never really been on the beach during my almost 3 years at Accenture -- this is probably as close to being on the beach as it will get.

So, what am I going to do with my holiday? Probably stress my ass off because of all the Christmas shopping I've still haven't done... Heck, I haven't even started yet!

You simply must. Must. Check this out.

I wonder what the *cough* "pro" model would look like... :-)

Someone just mentioned that JavaRanch is a Googlism. Heck, give me a new Google-based service to play with and you'll be sure I'll eventually try to type in my name:

Sorry, Google doesn't know enough about lasse koskela yet.

At first, I did feel a sting of not being the world-famous rock star I secretly wish to be, but then again, it's quite comforting to know that Google doesn't know enough about me.

Besides, it's not nice to find out that Google thinks you're evil :)

Dion is writing about traveling comfy...

I don't know what exactly were the two pot heads doing next to Dion, but I know it sucks to have to sit tight for a couple of hours while someone is playing doctor right there next to you. Add to that, the guy almost spilled his orange juice on my trousers...

Tim Bray has been keeping count of browser percentages for his blog. The graph isn't much news considering that the readers of Tim's blog are techies and every day someone makes the switch from IE to whateverelseaslongasitsnotIE.

What is interesting, though, is who the heck was it that made the *cough* clear *cough* bump for Lynx usage between the 9th and 23rd of May 2004 :)

I just put up a banner linking to testdriven.com due to momentary insanity. I wonder how long I can stand the animated stuff up there :)

We had the traditional office Christmas party on Saturday. Lots of fun, of course, including the mandatory guitar-slinging session by the Managing Director (in AC/DC style shorts, by the way...), good music, nice people, and the usual bitching about the ridiculously small number of free drink coupons. Oh, and lots of ass kissing, of course.

Every year, it becomes more and more clear that you really don't know who the hell are these people around you. The company has grown from some 450 to 650 within a year or so, and many familiar faces have left during that time. Add to that, people don't really swap between projects but stick to the one they're allocated to so you don't get to mingle a lot.

Then again, it's all the more satisfying to actually meet someone you've been chatting with via email and put a face on the name.

Phew. I'm slowly starting to recover from the partying, just in time for an early meeting downtown tomorrow. The cab dropped me off at 5:00am, sharp, after a well-earned after-hours kebab meal with Paul, Jason and Annika. Those crazy canucks :)

I'm thinking this was good practice for the new year since I heard rumors on Saturday that the guys in Riga like to party all the way until 6 am (and stayed there in the club after my eye-witness left for the hotel room). At least this time we started dr... I mean, partying already at 4pm and the training will last until 6pm. It's a good thing my flight back the next day is around 6 pm...

I'm currently reading Agile Software Development in the Large by Jutta Eckstein and spotted something that raised a rather interesting question inside my head:

[people] will always feel more comfortable in their existing situation than in an unfamiliar one (and they will typically believe that things can only get worse).

How does this fit with the old adage about grass always being greener the other side of the fence? Why are some so convinced that adopting an agile process could only make things worse, even though they admit that the current process sucks as it is, and while they're similarly convinced that, say, a job across the street with the competitor would be so much better?

When was the last time you asked yourself, "am I kidding myself here?"

This post has that something. I never check Slashdot, only reading links someone else recommends, and this was one of those I liked enough to pass on to others.

Clarke Ching has started posting chapters from his forthcoming novel, "Rolling Rocks Downhill". Great stuff. You can start from the preface over here.

Regarding my earlier mention of JSP 2.1 possibly incorporating pluggable resolvers, it certainly looks like that will indeed happen based on a quick peek at the early draft review.

To start with, I can't believe I just spent a good five minutes on this of all things. And with lousy results.

I can't help but agree with Jon saying he's so cool, but how cool is a guy named III who talks about project chartering...!?

Hal Macomber has again posted a nice, thoughtful e-tip of the week.

Ron Jeffries has posted a brilliant little writing on frequent releases. Something I'm emailing my manager about... right... now.

Some people gathered to discuss about Java and dynamic languages. Interesting. I wonder what the future will bring...

Work is starting on a new WebWork2 book. That's cool. I've been meaning to learn WebWork for ages but haven't managed to do that, yet. Having a bit more literature would certainly help, directly or indirectly.

The rumor has it that security by decoration is the biggest thing in 2005.

Is this real? Please tell me it isn't.

Yes! My copy of Extreme Programming Explained, 2nd edition arrived today, just in time for me to catch up with Kent's latest thinking before the XP course I'm running across the border(s) in January. I don't yet know how I will react to the updated edition since I haven't even opened it yet, but it sure is good to know what he's writing today if someone happens to ask... It's been almost a decade since the first "XP" project was started so it wouldn't be a surprise if someone would ask about the evolution during all those years -- a bit like the recent thread in the XP Yahoo! group about the timeline of when was TDD merged into XP.

Maybe this is the answer :)

It's always interesting to read bits and pieces of what they do at Google. This time, it's about Google's use of test-driven development and other XP practices.

Java developers around the world have been accustomed to JUnit's design decision of creating a new instance of a TestCase class for each individual test. Now, Cedric was one of those who didn't warm up to the idea and came up with his own TestNG unit testing framework that reuses the same instance between individual test methods. NUnit, the JUnit "port" for .NET, also followed the reuse approach.

Now, it looks like Jim Newkirk is having second thoughts. Maybe NUnit 3.0 will come back to the JUnit camp in this regard.

Rachel Davies reports about an XPDay session where the idea about establishing a suite of environment tests could accomplish all sorts of nice things. The idea is a bit similar to the installation tests mentioned in Mike Clark's excellent Pragmatic Project Automation.

Ivan Moore blogs about the recent Hot Topic of which GoF patterns should be removed from the hypothetical 2nd edition of the book. Without commenting on Ivan's opinions on the patterns themselves (which I mostly agree with), he can't possibly be serious about the two volumes of the book -- one with just the "safe" patterns and the other with all of them.

Remembering that most all software developers believe they're above average, how many copies of the "beginner" volume would ever leave the shelves? Maybe some, if the price would reflect the physical volume, but I strongly doubt that the numbers would be even close to the sales of the "advanced" volume...

I wonder why the University of Maine seems to think that most people have software installed that supports the RTSP protocol?

Ok. It's time to wrap up last week's events.

First of all, there was a lot of busyness at work since this week was the week between an initial user acceptance test and the follow-up where all of the issues found during the user acceptance test should be corrected. There are people all around the globe testing the system right now. I'll know on Tuesday whether they're satisfied with it. There are at least some cosmetic defects left. Add to that, we still need to add in a couple of maintenance/debugging tools for ourselves before going live with this release.

On Wednesday evening, I ran a 2 1/2-hour session at the office on the topic of refactoring. It was actually supposed to be just 2 hours but the hands-on demo (me typing away on the projector based on what the audience wanted to do) took way longer than I had originally thought it would. Which was great. A lot of opinions were voiced and I'm quite certain that the session raised a lot of thoughts for all of us present, even though not all communicated their opinions out loud. I'm so pleased with the outcome that I'm probably going to use the material almost as-is in the XP training class I'm going to run in Riga in January.

Last night, I hurried from work to a bar downtown to say my farewells to a colleague that's jumping ship to a nearby "smaller" IT shop. Not the first one to go, and most definitely not the last one. Very interesting discussions about topics only that particular group of people can discuss. Tolkien's women, the French-speaking village in the middle of Albania, etc. A great bunch and much fun, as always.

Oh, and I'm having a three-day weekend since Monday is the independence day here in Finland :)