Sunday, December 10, 2006

A List of Ten

Here is my latest project...it's rough around the edges, but I encourage you to register!

A List of Ten

Saturday, August 19, 2006

This is your career...on Java?

Recently, we took a week long vacation in Crimea, a region of Ukraine that is located on the Black Sea. It's an 18 hour train ride to Simferopol and from there, it's 2 hours by bus to the city of Sudak. It was on the train that I draw the inspiration for this latest blog post.


Alright, I'll admit the picture is a little inflammatory, but it illustrates a key problem that developers face when a new language (say, Ruby?) comes along and "threatens" all the effort they have invested in their current choice of technologies (not just Java).

What I find interesting in my career today is that I am now seeing a second wave of obsolescence with regards to careers in programming. I saw it early in 1997 with the shift from Powerbuilder to Java, and I think I am seeing it again with the transition of Java to the likes of Ruby and Python.

But where are the parallels found in the picture? Well, the toilet was probably an original fixture of the train, likely about 30 years old. Sure, it's beat up, used, over abused, but it is still functional. People have learned to be (ahem) comfortable with the level of service it can provide and as a result, learn to live with it's obvious shortcomings. Like a complicated J2EE framework, you don't just lift the lid and do what needs to be done, you have to mount the beast, balancing on the edge of the rim while holding on tight to the handle on the wall (not shown in picture) and hope for the best. Wouldn't it be nicer to put in a new toilet? Sure, it would mean that you might have to give up your finely honed balancing skills, but at least you wouldn't risk breaking your neck each time the train shifts tracks.

Learn something new, or as my grandma used to say, "Get off the pot!"

Saturday, August 05, 2006

Trip to Kiev

We finally arrived in Kiev at 1 AM on Friday, approximatly 34 hours after a journey began. It took longer than we expected as we missed our connecting flight in London by two hours; not because we arrived late, but our (now former) travel agent said we could make it from London Gatwick airport to London Heathrow airport in that amount of time. Turns our it take about 40 minutes just to get the luggage, and according to the custom official, it would take between 1 and 4 hours in a cab depending on traffic...he was right, ARGH!

Anyway, it's in these times of frustration that you really start to realize the little things that people do that make a difference. At London Heathrow, we needed to transfer from Terminal 4 to 1 via the 'tube'. It was a single stop, but one of the attendants helped my daughter, wife, myself and all our luggage onto the train with our luggage and let the conductor (is that what they are called?) know that we would need some extra time to get off. That was nice. While Myah (my daughter) was screaming out of boredom, passengers around us either smiled or simply ignored us...both very welcome responses to parents weary of travel and giving up on entertaining a sub-year-old.

In Frankfurt and Kiev, we were allowed to pass customs through (the very short) VIP the entrance. Saved us about 20 minutes of standing around.

Not all was good of course. In London, we were told with some reservation that our luggage and baby carriage would be meeting us in Kiev, and we shouldn't have to worry about it in Frankfurt. Luckily, my stomach was screaming that something wasn't right. In Frankfurt, we got off the plane and decided to check for our luggage. Surprise surprise, there it was on the conveyer belt waiting for us to pick it up, but the baby stroller wasn't. We had less than an hour to catch our next flight and decided that we would cut our losses and be happy that we still had the majority of our belonging. On to Kiev!

While preparing to load for take-off, what do we see under the plane? The elusive stroller!

We finally got home at about 1am local time. Time to sleep!

Friday, July 28, 2006

Why didn't you show up?

Yesterday I presented an introductory lunch and learn about Ruby on Rails. While it went quite well and all who attended appreciated what I delivered, I couldn't help but be disappointed that you, a key decision maker of the organization didn't attend. Honestly, I'm not disappointed because I am gunning for a Rails project, but because of the messages you are sending out:
  • I know everything there is to know about Rails, so why bother attending? I doubt you know "everything" but OK, what if you do? How about showing up and challenging me? How about sharing your knowledge with the group? Having you there can only benefit your organization.
  • I know nothing about Rails, but it can't be as good as what I have already put in place here. I really hope you don't think that! You might be absolutely correct, but you came to your "correct" conclusion by way of ignorance and happenstance, not by carefully weighing the pros and cons.
  • I know a little about Rails, but we have a so much invested in our current technology, there is no way we can change. OUCH! This is characteristic of a defeated man. Why not try to do something better? Why not try to learn something new? This apathy is contagious and will certainly infect the rest of our team.
  • If I attend and discover that it really IS that good, what does that say about me? It means that you made decisions in the past that didn't pan out the way everyone had hoped. That's not a bad thing, it happens to everyone. But not learning from your past mistakes and scuttling around the issues does say something about you....you're an idiot!
  • I don't like the presenter. Obviously, I hope this isn't the reason you didn't show up, but what if it is, what does it say about your professional commitment to your organization? Not a lot. You might have been able to contribute to the presentation by challenging me, exposing me, or better yet, guiding me to a direction that could mould me in a way that works well for you, and your company.
  • I'd rather go out for lunch. Sadly, I think this is the real reason you didn't show up.

Friday, June 30, 2006

In a meritocracy, advancement based on individual achievement or ability. Those who contribute most effectivly to the system are recognised and promoted because it is thought that they will continue to add the best value to that system. Open source projects are a very good example of meritocratic systems at work. Take the Eclipse Callisto project for example. It recently released 10 simultaneous plugins consisting of 7 million lines of code produced by 200+ developers located in 13 countries...and they delivered on time! What if we could implement a meritocracy in commerical organization?

Well, most organizations do have a meritocracy, and every manager will tell you so! If you do a good job, you'll get a raise or perhaps even promoted. But THAT is exactly the problem. Individuals tend to focus on getting themselves ahead and if it contributes to the success of the 'system', well then that is great too! You are as likely to find an selfless company-man working for a commercial venture as you are to find a selfish ladder-climbing developer in an open source project. Buy why?

Both systems (commerical and open source) are specifically designed to trim off the unwanted fat. In the case of commerical, the fat happens to be the those that don't communicate as well, or don't 'gel' with others, or are perhaps introverted. No matter how much they contribute to the 'ideal' goal of the system, they will always be held back by thier inability to appease those who are better at playing the game. They will remain, for the most part, invisible and inconsequential in the eyes of his coworkers. Open source also trims its fat by ignoring, but more likely to ignore those who do not contribute to the goal of the project, not based on social interaction. Now, I'm not saying that people don't get ambitious in the OS world, but it is less likely that they will succeed if the main goal of the project isn't met. When this shift of focusing on the good of the project shifts to focusing on the good of the individual, the project will be replaced and the developer forgotton.

Monday, June 26, 2006

Where are the sewing machines?

I consult for an organization that provides an online money transfer service; upwards of a billion and a half dollars a years. It has experienced tremendous growth and just today, we moved into the new location since we outgrew the other. It didn't take to long before complaints started to circulate, people joking about it being like a sweatshop, and the full-time developers openly discussing their disdain for the company. We now have about 150 developers packed into a room about the size of a football field.


What was managment thinking? Who thought the open-office concept would work? What fool thought that developers could possibly work to thier full potential in an environment so characteristic of a Nike funded sweatshop? If I had to guess, I would say that senior managment gave far more consideration to the "WOW" effect that our merchants will undoubtedly experience touring our organization, than to the comfort of it's own employees.

Oh well. A fellow contractor said to me "Yeah, it doesn't bother me that much. I bill by the hour and get paid by the month". What would a fulltime employee say?

Thursday, June 15, 2006

The one -two punch

Google recently released its latest Firefox extension Google Browser Sync. It's a simple extension that allows you to store your cookies, passwords, history, tabs/windows, and bookmarks with your Google account so that when you go to another Firefox browser (that has GBS installed), all your preferences will be made available. This is great for a number of reasons:

  1. I have a consistent-functional working interface between each computer I work with at home and work.
  2. I have about a 150 RRS feeds I like to monitor throughout each day. Using Sage, I can monitor them at work and continue monitoring them when I get home. And, since Firefox's live bookmarks persist the last time you accessed them, when I get home, I am not re-reading the same feeds.