Joel on Software

As I’ve mentioned before, I’ve been reading Joel on Software. The book itself really isn’t aimed at my profession per se, but it does give some useful advice and insight on how to wrangle developers and management. The phrase “pushing on a string” is used more than once, and I think it’s a perfect analogy for how some things happen around here.
There are also some excellent suggestions on ways to improve your process that apply to things outside of software development:

  • Write specs for projects
  • Not just for coding projects, for everything. This forces you to think about the steps required for doing the job, detailing every minute step along the way. Who knows how many “Damn, I never thought of THAT happening” late night/early morning panic sessions could be avoided just by writing down and running through paper writeups of the process.

  • Use source control
  • We’ve been trying for years to get our developers to see the power of source control (even if it is just Visual SourceSafe). It’s a mish-mash of forcing “no making changes in production without scripts/code/etc being in sourcesafe” and general habit forming that is slowly dragging everyone over. Now if Visual Studio.NET would just integrate better with VSS, we’d all be happier.

  • Tossing away the entire old codebase isn’t the solution
  • Okay, I’ll admit it, this one is pretty much programmers only. But, there are some applications to real life here. Would you junk your 5 year old car just because it needs new tires or a new water pump? Depends on the car, I know, but in general, small maintenance is better than large, delayed outlays giving your competition time to run over you. Rewrite large chunks of code if you feel the need, but don’t toss all the code out just because you wrote a bad sort function 5 years ago. I’m just as guilty of this as everybody else.

  • Neutralize the bozos
  • If you’ve got dead weight on your team (and you can’t get rid of them), give them some small, easily accomplished sub-project to work on that might take them months. Best case? They actually finish it, it works and you can integrate it into the big picture. Worst case? They are hopelessly lost for several months and you end up handing that task off to someone more talented to do in a few days. Win/Win in my book…

  • The customer never knows what they really want
  • Taking a page from Office Space, you should just accept the fact that the customer only knows how the interface should look, not how the code under the hood should actually work. We’ve got at least one ongoing project where this is painfully true. The interface is implemented in what I like to call “so, this button goes here” and the business logic was decided, and is constantly re-decided, by strings of emails between non-technical Important People, non-technical managers and technical programmers.

  • The Zone
  • I know lots of people have told you this before, but Joel brings it out in a way that makes you able to show your manager that being “in the zone” is a good thing and supplying all the things needed to get you there is good.

  • Examples, Examples, Examples
  • This isn’t really something that’s in the book, but it’s how I translated the spec writing suggestion into my job: Anytime you suggest a change, give as detailed as an example as possible. If you can’t go back and read an email 2 days later and understand exactly what you meant because you were so far “in the zone” on that problem at the time, saving your old mail as a reference isn’t going to help much…

There are some things I’d like to start doing at work from this book, but who knows if I’ll actually have the time or the energy. The most visible one would be to put together a “What did Housing Network Engineering do this summer?” entry for the intranet.

Some back of an envelope items for that list:

  • Student Computer Sites
    • Installed 110 new workstations
    • Installed 4 new color laser printers
    • Reinstalled the operating systems on all 380 workstations
    • Deployed Windows Server Update Services
    • Updated the virus scanner to McAfee VirusScan 8.0i
    • Replaced a proprietary conferencing server with open source solutions (yes, you old RSC people, FirstClass is no more)

handy sql

So I don’t have to spend 2 hours searching for this yet again:
sp_change_users_login @Action = 'Report'

And, for those using WSUS looking for some nifty queries:
SELECT [LastReportedStatusTime],
[IPAddress],
[FullDomainName],
[ComputerModel],
[BiosVersion]
FROM [SUSDB].[dbo].[tbComputerTarget] order by ComputerModel, BiosVersion

SELECT COUNT([IPAddress]),
[ComputerModel],
[BiosVersion]
FROM [SUSDB].[dbo].[tbComputerTarget] group by ComputerModel, BiosVersion order by ComputerModel

Update 08/29/2005:
SELECT COUNT([LastReportedStatusTime]) AS Number,
[FullDomainName]
FROM [SUSDB].[dbo].[tbComputerTarget] group by FullDomainName order by Number DESC

Windows 2000 post SP4 rollup package

If you are integrating the Update Rollup 1 for Windows 2000 SP4 into a network share to install from a DOS boot floppy, you are going to get
Setup was unable to copy the following files:
errors for several files. The way to fix this, according to knowledge base article 890206 is to edit DOSNET.INF and remove all the lines in the [Files] section that have d1,UNIPROC in them. You might also want to remove the lines that have d1,wms.
You’d think someone would have tested this before shipping this out the door….

WSUS and sundry other updates

I’ve been playing around with WSUS recently for use in Housing. Primarily, I’m testing it with student site computers as the targets for automated installs, though the reporting we get from the “download and wait to install” mode also works well on our servers.

A few things bother me though:

  • There doesn’t seem to be a way to force the install of a patch as soon as the computer checks in. Our workstations are commonly reinstalled during the year, if I switch to WSUS as my patch management solution, it appears as though I need to keep patching my install point every month. Not a big deal, as long as the /integrate: option always works.
  • WSUS needs the BITS 2.0/WinHTTP 5.1 update and Microsoft Installer 3.1 before it can do anything else. This isn’t a real big deal, either expect to wait 24 hours to install actual patches or stuff those into cmdlines.txt to run during unattended setup.
  • Superceded update handling seems to be wonky, or something. I’v seen 1 case where an update for Windows 2000 is shown as “superceded” by an update for Windows 2003. Not likely. And all this update declining business is confusing too.

I guess, when all is said and done, WSUS is a better solution than our current homebuilt Winbatch file version checker feeding into a SQL database. And WSUS is free, so no complaining allowed!

Other updates to, hopefully, come for the labs this summer: Acrobat Reader 7, McAfee VirusScan 8.0i and all the newest versions of all the free stuff we run (GAIM, Firefox, putty, etc). I’m also investigating McAfee’s ePO server, but that may have to wait until fall to get done.

Server Room AC

Why is it that the A/C never dies at a good time?
graph
Those are internal server temps, so it’s not all that bad but it did have to happen just before the end of the day, after the HVAC service guy had left for the day. He came back in and fixed things up, so we owe him a favor or two.

Time to get a standby A/C installed there.

No TechEd for me

In case anyone is checking in and expecting me to be in Orlando next week for TechEd 2005, sorry to disappoint, but I won’t be there. My wife is participating in the Avon Walk for Breast Cancer in Chicago this weekend, so I’ll be there supporting her instead of participating in the educating/feeding/boozing/etc of the nerds.

Hopefully, I’ll be going again next year. Orlando stinks as a location anyway, in my opinion. Rumor has it, Boston in 2006.

Another URHNet blast from the past

Even farther back.
I was a senior at Hoopeston Area High School, my boss was installing wiring for CITES (then CCSO), the guy who I replaced in my current position was the “original nettech”.
A year and a half later, 18 Oct 1995, here were the counts of active URHNet connections:

The latest tally of total (active) URHnet connections, as counted
from the bootp tables:
Allen 101
CRH 386 (six contiguous Champaign halls)
FAR 168
ISR 301
LAR 20
PAR 131
Triad 12
TVD 50
TOTAL 1,169
At this time last year, the total was 391: an increase of 299%

Last fall, we probably passed that total within a few hours of opening.