Insufficiently Random

The lonely musings of a loosely connected software developer.

Wednesday, July 27, 2005

Better Developers == Better Software?

I read a very interesting short essay from Joel Spolsky today: Joel on Software - Hitting the High Notes.

This concept of "better developers == better software" is something I have known for quite some time, but couldn't really prove. It is good to see that I am not alone in having a hard time proving the concept. It is also good to see that some very bright minds have come to the same conclusion as I, and that they likely got there first. :-)

Joel is right on the money when he is talking about why he formed Fog Creek Software. Good developers only want to be around good developers. They aren't challenged by working with mediocre developers. They can't innovate. They can't grow. Trying to keep a good programmer in a shop full of bad programmers is like trying to keep any Hollywood blockbuster star in horrible "B" level movies on the Sci-Fi network. It just doesn't work.

I found it funny that Joel uses writing IT software for a bank as an example of a place where good programmers won't be found. Funny because I work in an IT software group for a very large bank. Funny because I and anyone who knows me consider myself to be in the "good programmer" category. Funny because there aren't many others there who would fit that category. Fortunately we have had a few recent additions that just might. But I do worry about how long they will last.

We have noticed a huge improvement in code quality since I joined the project. But that's only because I have pruned lava flows, removed stovepipes, decreased vendor lock-in, fixed thousands of bugs nobody else could find or fix, rounded off the square wheels to fit nicely into existing round holes, etc. Had I not done it, it likely never would have been done.

But had the team been composed of 3 really good developers over the past 5 years of this project's life, instead of 9 so-so developers, the large amount of refactoring I have had to do lately never would have been necessary in the first place. We also would have a product that we could be selling in the marketplace to a larger number of the bank's customers. Instead it is a very targeted product serving only a very small number of customers. Our business unit has no capacity for revenue growth as our software can't support it. Neither can our development team.

Joel brought up the King David theory: you only need one good leader and an army of soldiers to carry out orders. The soldiers can be anyone; it is King David that determines success or failure. Like Joel, I disagree with this theory. Any leader needs a good support staff to yield successful results. The better the staff; the better the results will be. But it is even more important in the software industry, as software is still more of an art than it is a science.

But what if you have good people, but the leaders suck? It doesn't matter how good the team is, how well they get along, even if they can read each other's mind and finish each other's thoughts and ideas. If the leadership can't/won't support the team it really won't matter if the team would be able to produce the next killer-app. The team will walk away from the leadership long before the app is finished. But it will be a slow, painful process for everyone involved. Look at WinAmp. Joel danced around the destruction of NullSoft by AOL, but didn't really succeed at pointing the blame entirely on the AOL leadership.

I, and my fellow developers, share a cube farm from hell. I can't get more than 10 minutes of time without interruptions from people coming by. Consequently I only get my work done during "2nd shift" - between 7:00 pm and 11:00 pm. But I go in at 7:00 am. It is a looooooong day.

Our equipment is far too slow to keep up with us. I spend a good part of that 7:00 pm to 11:00 pm time waiting for the cheap IDE disk in my development system to compile our software. An extra $300 for a RAID-0 would have gone a long way. It would at least annoy me less knowing that the leadership actually thought my time was worth more than $300.

I spent the past 2 days hand-merging files that CVS would have done automatically in minutes. I find it very disturbing that the leadership feels my time is worth less than the license costs of GPL'd software.

So I'm pretty much in some of the worst working conditions available for a software developer in the US. About the only way to make it worse would be to have the office in a major subway station in NYC. But on second thought that might actually be an improvement - you wouldn't be able to hold conversations or meetings due to the noise of the crowd and the trains; so you can just wear headphones and focus on the computers instead. Nobody stopping by to interrupt you.

Bad working conditions leads to good programmers going mad. Good programmers going mad leads to bad software, or the departure of said programmers from the team. Either leads to a smaller profit as costs are higher than they should be. But some bean-counter somewhere is happy with the figure we produce so our leadship is keeping the status quo. And this programmer is going mad.

I've just about come to the conclusion that big companies are a very bad idea. Once you reach a certain size the status quo is good enough for such a large precentage of the company that profit margins will fall off just because a bean counter in one group feels another group should spend $3 less this year on post-it notes, thereby resulting in the affected team losing customer information more frequently, and consequently losing customers and they revenue they used to bring in.

It is a good thing our bean counters are saving $300/developer by sticking with the cheaper IDE drives, as I think they lost at least $5-10 million in gross revenue this year because our development team can't support another customer.

I Really Dislike Network Solutions

So I have a different domain name registered with Network Solutions which I use for some contracting business, etc. A few months ago the registration expired. I was going to transfer it to another registrar - one that doesn't charge a small fortune per year - but good 'ol NetSol won't let you transfer a domain which is close to expiring. So I just waited for it to expire.

Its long since expired.

But I'm still waiting. Why? Because NetSol has locked the domain and is trying to sell it to me at their prices. I can't purchase it again through another registrar. I can't transfer it without purchasing it from NetSol first. If I purchase it from NetSol and then transfer it the other registrar won't give me credit for the registration I paid NetSol. Not to mention the fact that I was trying to avoid paying NetSol's high fees in the first place...

*sigh* So that domain is out in limbo, and may be that way for a long time. Just so NetSol can cybersquat on it. A practice which I thought they weren't very fond of a few years ago when the domain name speculators were registering names left and right.

But then there's the simple fun fact that NetSol is the group of extremely intelligent people who brought the entire .com, .net and .org domain tree to its knees with their "innovative" SiteFinder crap. Good thing that's dead. Or is it?.

Why do I still do business with these morons?

PVCS Bites Again

I just received a reader comment on Insufficiently Random: The horrors of PVCS Version Manager. Ironically I got around to reading the email only after working two 16 hour days in a row due to needing to hand merge 400+ source files which are "managed" by PVCS Version Manager.

I'm so annoyed with the product - and the people who "support" it within our group - that I could jump out the 16th floor window at the office any time now. I need a vacation from it. A permanent vaction. Most of the rest of our development staff spent the better part of this week getting their own build areas to work as well. Our company lost about 7 man weeks this week due to our love of PVCS Version Manager. *sigh*

Thursday, July 7, 2005

Oh How I Hate Windows

Why does Windows suck so much? I tried to start up my HTPC (Home Theater PC) which I use to play movies in our home theater - just so I can watch The Fifth Element for the hundredth time. But every time I start up TheaterTek (the DVD player I use) it uses 100% CPU and doesn't do anything. Normally I would say yes, this is a fault within TheaterTek - but this machine has no keyboard, mouse or monitor to speak of. So the only way for me to control it is from VNC. When TheaterTek is running at 100% CPU the VNC server doesn't get enough CPU time to respond to the client - meaning I can't reboot the system without needing a half hour just to open Task Manager.

Who the hell designed this POS operating system? In this day and age remote administration of anything should be an integrated feature available to all users, not a hack-on-the-side like VNC is for Windows. And a simple reboot request shouldn't take 30 minutes to be entered, then another 30 minutes to be carried out. At this point I could have been 2/3 of the way through the movie, but I have yet to get it playing.

Of course I could just be using a normal consumer DVD player and video scaler instead of this HTPC rig, but what fun would that be? Besides - when I aquired the equipment a video scaler was much more expensive then the HTPC was, and the HTPC is able to generate an image that looks just as good on my projector. I wasn't about to spend more than I needed to.

Monday, July 4, 2005

Trackback Spam

I just realized I have trackback spam on my site. *sigh* Why are these spammers interested in creating dead hyperlinks on people's websites? What do they gain by putting a dead link up all over the internet? Dead links won't raise their Page Rank on Google. Or if it does, it won't do them any good, as everyone will link to the dead page.

What about people is it that causes them to ruin things for other people? As a child I often was picked on (ruining things for me) just so some other people could have some fun. I guess its the same idea here. Morons.

This Is Such An Interesting Place...

I've been busy at work and sick for the past few weeks. And MT is configured to only show 7 days on the index page. So this space has been rather boring and uninteresting for a while. I may have to modify the template to have some static content which comes into place when posts roll off.

I finally finished watching Firefly over the weekend, and I really must admit, I'm sad the show was cancelled. Much better than anything else that has aired in recent past. I guess the American public is generally stupid enough to prefer "reality" shows like Fear Factor over real creativity, like Firefly. *sigh*