There’s a story with the monkeys and the ladder and the shower. It’s easy to see how metaphoric it is.
The story is about an experiment with monkeys. They were trained not to get a banana from a ladder because that would trigger a cold shower. Later this trigger was switched off, the cold shower didn’t start anymore. The researchers replaced the monkeys one by one. However, the group of monkeys still remembered to punish anyone who tries to get that delicious banana.
It’s easy to see how it reflects to our lives.
I’m bringing it up because it took me six month to install an IDE onto the same machine where I run the code.
What took so long? Well, I’ve spent 5 months and 29 days developing and testing on different machines. The development cycle looked something like this:
- Write some code on a remote server. Add some debug printing if necessary.
- Build a jar.
- Copy the jar to a shared folder.
- Switch to the other remote server.
- Copy the jar from the shared folder to the actual folder.
- Run the tool, analyse the results.
This is really hairy, right? I was fine with it because we are using a framework that makes us use this workflow.
However, this story is about a test tool that does not depend on this workflow. I saw no problem with the different machines approach because this was how we’ve been doing it. Until…
Until I started to investigate an issue. I added those
System.out debug lines, but I still had no clue. I really wanted to take a look into the constructor of a 3rd party class. I installed eclipse to that machine, made ran the project in debug mode, I could debug. I know, I could run the debugger in remote mode. But this looked easier.
Wham! Writing and running code on the same machine is easier too. What a surprise!
The lesson I learned was that I need to keep questioning the status quo a little more often. It’s hard to find the right balance though. If we review our habits too often, then we’ll keep reinventing the wheel. If we do too infrequently then we’ll do stupid things a little longer than necessary.
Being pragmatic about constant vigilance, that’s it.