Habits or constraints? A developers story.

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.

Purpose

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:

  1. Write some code on a remote server. Add some debug printing if necessary.
  2. Build a jar.
  3. Copy the jar to a shared folder.
  4. Switch to the other remote server.
  5. Copy the jar from the shared folder to the actual folder.
  6. 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!

Lessons learned

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.

About tamasrev

Java bugrammer, reader, writer. Father, sometimes mother.
This entry was posted in programming, soft skills and tagged , . Bookmark the permalink.

4 Responses to Habits or constraints? A developers story.

  1. Folti says:

    I might have considered the other direction: run the code where my IDE is (practically on my development machine). It is not clear (hopefully not just for me : ), why you have to run (in this context it is just an euphemism for test) your code in environment such described?
    Were you more productive after that quantum leap at all?

    • tamasrev says:

      Quantum leap.. 😀 Yes, I was waaay more productive.

      I have to test (run (: ) my stuff like that because I haven’t figured out how to connect my IDE to a Windows service. But, I got tons of unit tests.

  2. Folti says:

    Just an other little thing: “I need to keep questioning the status quo a little more often”. It sounds like you want to be a tester.
    Sorry, I can’t stand this joke…

Leave a comment