Archive for February 2003

 
 

Quality

I usually begin any talk about software process with this graph:

time vs. quality graph

Almost any investment you make in defect prevention – asserts, unit tests, code reviews, etc. – is going to yield you a net saving in time.

Lithium-Ion

The most dominant thing that affects the life of a Lithium Ion battery is its age. It starts corroding the moment it leaves the factory, and usually ends up with twenty percent of the capacity a year after that.

Two conclusions:

1. Don’t stock batteries for later use; they will be next to worthless after a year.

2. Don’t fuss about your usage pattern; it influences the battery life much less than mere passage of time.

Pair Programming

A lot of people I talk to are unhappy about having to do Extreme Programming. When I ask them to explain why, it usually comes down to a single practice: pair programming.

Their gripes can be neatly categorized into three cases:

1. Having to work with someone they don’t like or who has bad hygiene.

2. Having to work with someone who is not a good programmer. You spend half your time explaining why you are making some design choices to someone that doesn’t even have the mental vocabulary to understand what you are saying, and the other half trying to prevent that person from screwing up the code.

3. Having to watch two bozos work together, but somehow their code is OK’d because they used the proper process to create it.

So a single practice is giving the whole methodology a bad name.

This is why it’s important to treat various methodologies like libraries from which you take practices that make sense for you, and not like a framework into which you have to fit your work.

SiteUpload

Here’s a command-line up for uploading local files to a FTP server. It’s smart enough to upload only changed files.

Incremental Search

I just found out that Visual Studio .NET has Emacs-style incremental searching. Just press Ctrl-I and then start typing the search string.

Motivational Posters

Funny poster

Find more of these lovely motivational posters here.

Klisa

Klisa, commenting on somebody else’s code: He’s using object-oriented programming. He takes a text object, copies it to the clipboard, and then pastes it in other places in the code.

FtpLib

The .NET framework does not come with support for FTP. Here’s a WinInet wrapper for doing FTP that I wrote last week.

Groove

Speaking of software that sucks, what’s the big deal about Groove? Everybody’s going ga-ga over it, but I just don’t get it. I tried installing it a couple of times, and every time the UI is sluggish to respond, and the functionality is not all that useful.

Some people say I have to think about it as a platform, but a platform is not that useful without useful apps running on it. Discussion boards? Bah!

One thing that would get me to switch to Groove is if it had a bug database. We use PVCS Tracker at work, but it’s such a kludge. Not to mention that it uses UI thread blocking DB access, so using it over the Internet is a huge pain in the ass.

OpenOffice

OpenOffice sucks like a tornado. I opened one of my weblog posts in the OpenOffice HTML Editor, and deleted a line. Something begun to stink, so I examined the HTML it produced:

  • It took a section right out of the linked CSS and copied it into the HTML doc
  • It took the settings out of CSS and embedded them into the <body> tag
  • It added margin settings to each of the <LI> tags, which it didn’t terminate using </LI> but instead used <P>, also unterminated

BTW, DreamWeaver has repaint problems which make me minimize and then maximize the window to get the page to render. Us hillbilly folks who use FrontPage don’t have them problems.