Hitachi RMA Process: Are you a terrorist?

My second HDD died today, with the standard error:

[4294730.480000] hdc: dma_intr: status=0x51 { IfYouSeeMessagesLikeThis }
[4294895.037000] hdc: dma_intr: status=0x51 { YourDriveIsDying } { DriveReady SeekComplete Error }
[4294895.037000] hdc: dma_intr: error=0x01 { BackupNowAndPray, } { AddrMarkNotFound }, LBAsect=126657484, high=7, low=9216972, sector=126657431

I went to Hitachi’s website to check the warrantee, and found that I am still within the warrantee period.

80gb Hitachi Travelstar... dead.

I proceeded through the form to fill out an RMA, and saw this interesting disclaimer I had to agree to, in order to proceed:

Export Compliance Certification

By clicking the “I agree” button, I agree that Hitachi GST products will not be used for the design, development, manufacturing, testing, stockpiling, or use of biological, nuclear, missile or chemical weapons.

Interesting times we live in, isn’t it?

These drives seem to only last me 6-8 months. I can’t figure out why they just up and die so frequently. Bad quality control over at Hitachi?

Now I’m crippled for a little bit.

SuSE 10.1 in VMware “No catalogue found” error SOLVED

Tags:

It seems that quite a few people (including myself) ran into trouble trying to get SuSE 10.1 GM to install from DVD in VMware.

The exact error you’ll get will be:

No catalogue found at dvd:///?devices%3d%2fdev%2fhdc

After a bit of tinkering with the DVD image, I realized that it was a problem with the .iso file itself. The md5sums matched perfectly, and the DVD was “intact”, it was just incorrect because the wrong mkisofs params were used when it was created. You’ll need to mount, copy the contents out, and rebuild the ISO with the proper options to make it work as a bootable ISO for VMware.

The following steps will fix it:

# Mount the original ISO as a loopback image
mount -oloop SUSE-Linux-10.1-GM-DVD-i386.iso /mnt/SuSE

# Copy all of the files out of the image to a directory on disk
rsync -avSP /mnt/SuSE/. /tmp/SuSE

# Rebuild the ISO image with the proper parameters
mkisofs -v -V SuSE10.1GM -r -J -l -L -P "OpenSuSE Linux 10.1 GM" \
-b "boot/i386/loader/isolinux.bin" -c "boot/i386/loader/boot.cat" \
-no-emul-boot -boot-load-size 4 -boot-info-table -graft-points \
-o /tmp/SuSE-Linux-10.1-DVD.iso /tmp/SuSE

Voila! Problem solved!

What exactly are you trying to sell me again?

------=_NextPart_000_0001_01C68BAC.D6AFF790
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 8bit

Hi,

VALlU jc M from o rl nly $ ok 1,2 ok 1
Ambi an en
ClAL ar lS from on ln ly $ eg 3,7 jv 5
Proza uv c
Som ri a
Levit jw ra
Merid gr ia
VlA ua GRA from o sq nly $ tz 3,3 ul 3
Xan he ax

all 50 fd % of jz f
--------

What exactly are you trying to sell me here? A dictionary?

If they think these horrible misspellings are getting their junk through the spam filters, they’re wrong. dspam is catching every single one of them, and marking them as spam, as it should be.

Subject: test pofi
Date: Fri, 9 Jun 2006 10:09:47 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0001_01C68BAC.D6AFF790"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-gnu-designs.com-MailScanner: Found to be clean
X-MailScanner-From: florinaprasad@cps.org
X-DSPAM-Result: Spam
X-DSPAM-Processed: Fri Jun  9 13:14:06 2006
X-DSPAM-Confidence: 0.7923
X-DSPAM-Probability: 1.0000
X-DSPAM-Signature: 1,4489ac5e295161867218249
X-DSPAM-User: hacker

Why would I ever buy something from a company, or individual, who can’t even properly spell the names of his products in his email.

Are these Internet Spam Kids 6 years old? Cat walk on the keyboard again while you were typing your advertisement?

Well, at least MailScanner didn’t find any hidden malware or trojans buried in this one.

What a bunch of sad, sad individuals.

FreeBSD Server: 1, Furry little mouse: 0

Tags:

I was just diagnosing some weird kernel crashes on the BSD server, and decided to pop open the case to take a look and add some more cooling. The inside of the case was pretty hot, so I added two new Antec Pro Cooling fans, mounted inside with some stiff clipped coathanger over the drives and the CPU cooler (which has its own fan on it also). The case is roomy enough to handle it, so no biggie.

As I was closing up the case, the sliding lid didn’t seem to fit right. Its slotted tabs kept running into something. I looked closer, and it looked like a clump of dust or fuzz or something was wrapped around one of the wires.

I reached in and grabbed it to remove it and it was… how shall I say… stiff and crunchy, not like the dustball I expected to grab. I put it in the light so I could see it and… EEEECH!

Wrapped around one of the case’s signal cables, was the empty shell-of-a-carcass, of a little grey field mouse. There was only the top of a skull, the fur coat around the back, and a little segmented tail.. and two eyes. No organs, no skeleton, nothing at all that would make up muscles, bones or body.

Inside the bottom of the case, were thousands of bits of what looked like more dust, but apparently was the remnants of what used to be its coat, fur, skeleton and organs.

YUCK!

I cleaned it out, and all should be well again…. I hope, but where there’s one mouse, there’s bound to be more. I’ll have to start opening up the other servers and see what might in their cases. Maybe a few mouse traps behind the rack would be useful.

CycleOps Magnetic Bike Trainer

My wife and I are finding less and less time to suit up and get outside to train on our bikes, with work, travel, house renovations and parenting duties stacking up for both of us.

I needed an easier way to get on the bike and put on some miles, get the heart pumping and the blood flowing to keep my health and metabolism up.

I went down to the local bike shop here in New London called Wayfarer Bicycle 3 blocks down the road from my house, and started asking questions about the trainers, the technology, and the pitfalls.

  • Can I use these with my road AND my mountain bike? (some can only be used with one or the other)
  • Is it fairly stable under heavy hammering? Will I tip over or bend the arms?
  • Does it fold up small enough to store in a closet or hang on the rafters?
  • Do I need to service these parts? Disassemble and clean/oil them?
  • What is the difference between a Magnetic and Wind trainer?
  • Do I need the handlebar attachment to change the resistance?
  • Is there anything else I’ll need to combine with this before I can use it?

Bob from Wayfarer was very helpful and gave me everything I needed to make the right decision.

After going through the catalog with him and looking at their in-store inventory, I went with a CycleOps Magneto mag trainer. No handlebar control to worry about, extra oversize tubing for strength and stability, sealed rear bearing, and folds pretty small and compact. If necessary, I could even travel with it.

CycleOps Magneto Gen1 Stationary Trainer

I ordered it on Wednesday afternoon, and they had it in the store on Thursday morning. Now THAT’s what I call fast service!

The staff at Wayfarer are amazingly helpful in every way. If you’re ever in the Southeastern CT area, I highly recommend stopping in. Its right on the same road you’ll be taking to get to Ocean Beach Park… which you should be going to anyway, to enjoy the coastal views.

My wife and I both tried the trainer last night, and she absolutely loves it. It was simple to get her bike (a 2003 Fuji Team racing bike) and my mountain bike (a Trek Y22 front/rear suspended bike) into the trainer. Just pop out your standard QR skewer and slide in the CycleOps skewer, tighten up and you’re done.

The reason for the separate skewer, is because the clamping mounts on the CycleOps accept a rounded ‘nub’ skewer, and most road/mountain frames have oddly shaped, elliptical, square or oval skewers. It only took 2 minutes to switch it out and clamp the bike in. Problem solved. I can probably buy another skewer and keep it handy so I don’t have to swap it between my wife’s bike and mine.

She took to it right away, and did 15-20 minutes of moderate riding, and loved every minute of it. Her only complaint was that she thought she was “angled down”, or riding downhill. The top tube was level, so I couldn’t understand why she’d feel that way.

When she was done, I swapped the skewer and did about 20 minutes of hard riding in the trainer with my Ekho heartrate monitor. I was wearing the monitor because I wanted to make sure I was within range, and wasn’t going to blow up. I’ve been having some chest pains and breathing difficulties lately, so I didn’t want to push it too far.

At around 85rpm cadence in a pretty fat gear, my heart was at 179bpm and stable. I was just beginning to break a sweat, when I decided to stop before I did any real damage..

CycleOps climbing block

Overall, I’m completely impressed with the trainer, and with the stellar service Wayfarer Bicycle provided for me. They even assembled the trainer for me, so I didn’t have to.

After riding, and trying to pedal sitting up, I realized what she was talking about when she said she was “angled down”. The bike does seem like its pointed downward, even though the rear tire is only slightly elevated from the ground. I couldn’t pedal while sitting straight up (arms off of the bars), without feeling like I was sliding off the front of the saddle.

CycleOps does make something called a climbing block, which is supposed to elevate the bike’s front wheel slightly to provide the feeling of riding on differing terrain such as hills or steep climbs. I’ll see what Wayfarer thinks and ask if they have a solution.

Another worthy and worthwhile purchase.

FreeBSD Ports, a treasure trove of useful tools

Tags: ,

I’ve been configuring one of my machines as a FreeBSD 6.1 server in my spare picoseconds, to serve as a fileserver, rsync server, public mirror, backup server, transparent squid proxy, coffee maker and whatever else I can make it do.

In order to do this, I needed to add a bunch of packages and tweak quite a few hundred things in various places on the system (sysctl, make.conf, loader.conf, add missing tweaks and options to the kernel config) and so on.

I rebuild kernels nightly and keep ports up to date with cvsup. I rarely find time or a need to run portupdate or buildworld, but I know I should, so I found this useful article which describes how to stay current with all of these pieces (and there are a LOT of them).

Buried in the comments, was a pointer to ‘sysutils/fastest_cvsup‘, which is probably the BSD ports equivalent of Debian’s netselect-apt tool. fastest_cvsup is described as follows:

Perl script to find fastest CVSup server:

* uses socket connections not just 'pings'
* takes notice of server responses
* connects to servers in countries specified on the command line 
   - or - 
  connects to the 'local' servers defined in the script
   - or -
  connects to ALL the servers in ALL the countries
* returns either fastest server or top 3 (useful for scripts)
* returns exit codes (useful for scripts)
* can re-write itself to update the CVSup server list, obtained
  from the online FreeBSD Handbook
* can easily add other CVSup servers (NetBSD/OpenBSD...etc)

WWW: http://fastest-cvsup.sourceforge.net/

Running it was as simple as executing it with the right country in mind (or you can pass it ‘-c all’ and test all of them):

# fastest_cvsup -c us
>>  Querying servers in countries: us
--> Connecting to cvsup.us.freebsd.org [198.104.69.57]...
    - server replied: ! Access limit exceeded; try again later
    - time taken: 146.89 ms
--> Connecting to cvsup2.us.freebsd.org [130.94.149.166]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 42.03 ms
--> Connecting to cvsup3.us.freebsd.org [128.31.0.28]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 35.09 ms
--> Connecting to cvsup4.us.freebsd.org [204.152.184.73]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 114.04 ms
--> Connecting to cvsup5.us.freebsd.org [64.157.15.40]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 74.04 ms
--> Connecting to cvsup6.us.freebsd.org [69.31.98.210]...
    * error: connect: Invalid argument
--> Connecting to cvsup7.us.freebsd.org [129.250.31.140]...
    - server replied: OK 17 0 SNAP_16_1g CVSup server ready
    - time taken: 104.05 ms
--> Connecting to cvsup8.us.freebsd.org [216.165.129.134]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 57.24 ms
--> Connecting to cvsup9.us.freebsd.org [128.205.32.21]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 53.00 ms
--> Connecting to cvsup10.us.freebsd.org [128.205.32.10]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 52.02 ms
--> Connecting to cvsup11.us.freebsd.org [63.87.62.77]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 33.05 ms
--> Connecting to cvsup12.us.freebsd.org [128.46.156.46]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 49.02 ms
--> Connecting to cvsup13.us.freebsd.org [216.144.193.227]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 50.02 ms
--> Connecting to cvsup14.us.freebsd.org [64.78.150.180]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 156.16 ms
--> Connecting to cvsup15.us.freebsd.org [131.193.178.106]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 50.05 ms
--> Connecting to cvsup16.us.freebsd.org [128.143.108.35]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 65.03 ms
--> Connecting to cvsup17.us.freebsd.org [65.212.71.21]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 43.05 ms
--> Connecting to cvsup18.us.freebsd.org [128.205.32.37]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 56.02 ms

>>  Speed Daemons:
    - 1st: cvsup11.us.freebsd.org   33.05 ms
    - 2st: cvsup3.us.freebsd.org    35.09 ms
    - 3st: cvsup2.us.freebsd.org    42.03 ms

So now I can stick cvsup11.us.freebsd.org in my .sup files and hopefully gain the fastest connection to those servers for updates.

rsnapshot and geli encryption on the new FreeBSD server

rsnapshot, a very slick backup tool!I’ve been looking for a good snapshot tool for FreeBSD, and I think I’ve finally found it.

Today, I stumbled across a slick little tool called rsnapshot, written by Nathan Rosenquist. It was featured in the BSD Hacks book by O’Reilly Media.

rsnapshot is based on rsync, and allows quick snapshots of a filesystem in-time, using hardlinks to preserve space. Basically you configure it using the default config file, tweak a few options, and check the syntax.

rsnapshot, like the rsync tool it is built upon, has a wealth of options (including inheriting those from rsync), including ‘configtest’ to check the syntax of the config file, and ‘du’ to check the size of the snapshot tree.

Here’s an example from my own backups:

# rsnapshot du
771.7G    /usr/local/array/.snapshots/hourly.0/
771.7G    total

You can set up rsnapshot to run from cron (and you should), like this:

0 */4 * * *     /usr/local/bin/rsnapshot hourly
30 23 * * *     /usr/local/bin/rsnapshot daily

From here, you’ll see it create a tree like:

[22:28:20 Thu Jun 01]
[117] flea:/usr/local/array/.snapshots
# ls -l
drwxr-xr-x    7 root     wheel         4096 May 28 00:00 daily.0
drwxr-xr-x    7 root     wheel         4096 May 27 00:00 daily.1
drwxr-xr-x    7 root     wheel         4096 May 26 00:00 daily.2
drwxr-xr-x    7 root     wheel         4096 May 25 00:00 daily.3
drwxr-xr-x    7 root     wheel         4096 May 24 00:00 daily.4
drwxr-xr-x    7 root     wheel         4096 May 23 00:00 daily.5
drwxr-xr-x    7 root     wheel         4096 May 22 00:00 daily.6
drwxr-xr-x    7 root     wheel          512 May 29 00:00 hourly.0
drwxr-xr-x    7 root     wheel          512 May 28 20:00 hourly.1
drwxr-xr-x    7 root     wheel          512 May 28 16:00 hourly.2
drwxr-xr-x    7 root     wheel          512 May 28 12:00 hourly.3
drwxr-xr-x    7 root     wheel          512 May 28 08:00 hourly.4
drwxr-xr-x    7 root     wheel          512 May 28 04:00 hourly.5

Another great feature is how it intelligently rotates the hourlys into daily and folds them together.

When ‘rsnapshot daily’ is run, it will rotate all the daily.X directories and then copy the contents of hourly.5 into daily.0. hourly.0 will always contain the most recent snapshot, and daily.6 will always contain a snapshot from a week ago. Unless the files change between snapshots, the “full” backups are really just multiple hard links to the same files.

If a file changes at any point, the next backup will unlink the hard link in hourly.0, and replace it with a brand new file. This will now take double the disk space it did before, but it is still considerably less than it would be to have full unique copies of this file 13 times over.

Once I manage to get this all working, I’m going to be migrating the Windows login and profiles over to the Samba server (now acting as a PDC) and start doing backups of that data into the snapshots as well.

The volume that this data is stored on and backed up on is also protected by geli, which wraps around the cryptographic GEOM class available in the BSD kernel. I started with the GEOM encryption, but it was a bit slower than I needed.

‘geli’ improves upon GEOM by a little bit, in the following ways:

  • Utilizes the crypto(9) framework — when cryptographic hardware is available, geli will use it automatically.
  • Supports multiple cryptographic algorithms (currently AES, Blowfish, and 3DES).
  • Allows the root partition to be encrypted. The passphrase used to access the encrypted root partition will be requested during the system boot.
  • Allows the use of two independent keys (e.g. a “key” and a “company key”).
  • geli is fast – performs simple sector-to-sector encryption.
  • Allows backup and restore of Master Keys. When a user has to destroy his keys, it will be possible to get access to the data again by restoring keys from the backup.
  • Allows to attach a disk with a random, one-time key — useful for swap partitions and temporary file systems.

And here’s the best part..

“Unlike cumbersome encryption methods that encrypt only individual files, gbde and geli transparently encrypt entire file systems. No cleartext ever touches the hard drive’s platter.”

The goal for this server, besides its many workhorse duties, is to be the backup and mirror server for several terabytes of projects, such as Project Gutenberg, CPAN, LDP, Wikipedia, and dozens of other projects.

Its also moving into its role as PDC with Samba using LDAP authentication over SSL/TLS for all clients, who will have their profiles and home directories transparently mapped and mounted on the server, backed up regularly with rsnapshot. It should all work out great when I’m done with it.

D-Link DSM-G600, a device that almost worked right

At the recommendation of a close friend who knows I’m a gadget black hole, I went out and bought a D-Link DSM-G600 wireless NAS enclosure.

D-Link DSM-G600 NAS Enclosure

This device seemed to be the perfect replacement for my Ministack v2 enclosures (I have 4 of these). The D-Link was an enclosure that had seemingly fixed the flaws I found in my Ministack units. Larger fan, more space around the drive, 2 USB 2.0 ports, an onboard webserver, ftp server, email alerts, GigE, and.. wireless!

My hopes were soon crushed, once I started poking at the actual enclosure. Sigh.

The enclosure does indeed have a lot of room in it, which helps with the cooling. The internal cabling left quite a bit to be desired, especially the flat ribbon cable. I had to bend it at a weird angle to fiit it across the top of the drive.

Now, on to the major quirks:

  1. Whatever drive you put in it, regardless of whether or not the drive has data on it, must immediately be formatted to ext3. Yes, that’s right.. you can’t put a drive with data in this enclosure, if you intend on keeping the data on the drive.
  2. No filesystems supported except ext3. This means no support for extended journal options (such as data=ordered) and no other filesystems supported. No XFS, no JFS, no FAT/FAT32, no NTFS… nothing except ext3. If you format your drive to another filesystem and put it back into this enclosure, you will be forced to format it as ext3 again anyway.
  3. Broken networking. D-Link saw to it that the IP that you assign in the static IP section of the setup.. is the same physical IP that is used for both LAN and WAN ports. How nice. This also means that every other packet sent to the device, is a “DUP!” packet. It might explain the horrible performance of the device when sending data.
  4. No web interface over wireless. Once you configure the device and enable wireless, you can no longer tweak or reconfigure the device over wireless. You MUST use the LAN connection to configure the device once wireless is turned on.

There are at least two separate security issues affecting the GoAhead-Webs webserver that powers this interface. I didn’t have time to validate these myself, since I’m not keeping the device, but I’ll bet others who have these devices will be vulnerable to them. Ugh.

After about 5 hard resets to get it to properly finish formatting the drive, and then trying to configure the crazy, misconfigured networking options with their web interface, I was ready to map the drive through Windows and then with Linux, using ‘mount -t smbfs’ and the standard options.

On to the second major problem: the speed. This thing is SOOOO slow when sending data to it. Reading data seemed to be fine, but writing data to it was, at best, 180k/sec.

The web interface is among the ugliest I’ve ever seen. With 30 minutes of work, it could be really amazing, including adding in some majikal AJAX fu. That’s not really important, but the interface is completely disorganized. Options that should be grouped together, aren’t. Sub-options that should be in separate places, aren’t.

Apparently Rev A of this enclosure is XScale-based, larger RAM, larger flash capacity, Atheros wireless, and some other things. The Rev B (which is the only one BestBuy sells, unfortunately) is PowerPC-based, less ram, less flash, and not very hackable.

There is a group of people who are interested in hacking on this box on the OpenWRT forums, but they’re focusing their efforts on the Rev A. model, not the Rev B. which I happened to have. D-Link has posted the sources to the GPL versions used in the box, but I don’t have my toolchain set up, so I can’t go building a custom firmware for it. Another long thread on this box is over here, and it seems like people want it to do fun things, but the development seems stalled/dead.

Here’s the list of things I’d suggest D-Link focus their efforts on, to make this device work properly:

  1. Fix the broken networking configuration. You should never bind the same IP to two physically separate interfaces, ever!
  2. Clean up that web interface, its a mess. Group logical options together, and make it flow cleanly.
  3. Optimize the Samba config, and use the latest release of Samba. The default config used on this device is CLEARLY affecting the horrible write speed of the device. I have several Samba servers running on Linux and FreeBSD here, and I regularly get 2-3M/sec. transfers over wireless to these machines. Whatever D-Link is doing, is less than 5% of that speed.
  4. Update that kernel to 2.6. and add some optimized kernel options at boot time (scheduler=deadline, panic=30, etc.)
  5. Work on a better internal cabling system. Look at the Ministack v2 internal cabling for a perfect example of how to do right-angle bends with an IDE signal cable.
  6. Make the front power-on button into a proper power-off button as well. It turns the device on, but the only way to turn it off, is to unplug it. Not smart. Its not even ATX compliant, so holding the button down for 7+ seconds doesn’t reset it or power it off either.
  7. Overall, I’d give this 2 stars out of 5, if I had a rating system. Its going back to BestBuy for a credit.

    Its another “Not Quite There Yet” device, but it has the potential to be.. with a bit more hacking.

Happy Geeks are Productive Geeks

How NOT to Lead GeeksI was pointed to a blog entry called “How NOT to Lead Geeks“, and I found several items very interesting and eerily familiar:

The main reason IT people are unhappy at work is bad relations with management, often because geeks and managers have fundamentally different personalities, professional backgrounds and ambitions.

In my IT career, I’ve almost always played the role of Geek+Manager, or Manager+Geek, depending on which part consumes the larger percent of my time. I’ve played on both sides of this table, locking horns with Management about the wrong way to lead their technical staff, as well as trying to “herd cats”; as a Technical-Manager-of-Geeks.

In my OSS world, I also have to lead and manage and guide geeks, many of which I will only ever know through email. Not knowing your team personally has a distinct impact on your ability to build trust and confidence. The rules change quite a bit.

I recommend every Manager work with a team of people he will never meet in person, and hone his skills there, to be a truly successful manager with the team of people he does work with in-person.

Here’s the Top 10 from “How NOT to Lead Geeks“:

  1. Downplay training
  2. Give no recognition
  3. Plan too much overtime
  4. Use management-speak
  5. Try to be smarter than the geeks
  6. Act inconsistent
  7. Ignore the geeks
  8. Make decisions without consulting them
  9. Don’t give them tools
  10. Forget that geeks are creative workers

Of these, #2 and #9 are the ones where 99.999% of all “Managers” fail. Almost every manager fails here because they believe they are there to “manage” people, “tell” their staff what to do, and they expect those things to get done.

WRONG!

A manager has one job description: Give his team all of the tools necessary to do their jobs (i.e. meet their goals, as agreed to by the entire team), and then step out of the way.

When political pressure threatens to affect the progress of that team (geeks or otherwise), the “manager” is expected to step in the way and deflect it. At no point should a team have to deal with anything political to get their jobs done.

These tools can be physical tools (applications, access to systems), communications tools (introductions to the right edge teams to minimize overlap), or social tools (meet-n-greet with other members, build camaraderie, offsites to let off steam, training..).

Many managers believe their “subordinates” (they already building walls by using that term) are supposed to do “what they are told”, and not complain or cause waves. It ends up building a situation based on office posturing and finger-pointing when things slip or don’t get done on time. To cover the situation, good people get fired or laid off. When you see this happening, it is always because of bad management, not bad technical people.

Rarely do you see the Geeks survive the pink-slipping, while managers get to keep their jobs… the same jobs they’re doing poorly time and time again.

If your technical team is performing poorly, you need to look at a few key items. All of these items point back to the competence of the manager, not the team itself:

  1. Did you hire the right people with appropriate skills to achieve success? You were responsible for hiring and selecting the team. If they lack the skills, you chose poorly.
  2. Do they have all of the tools and training necessary to do the jobs being asked of them? Did you provide access to the right systems, people, training for your team to grow and complete their goals?
  3. Are the deadlines and goals realistic? Is everyone in agreement with the goals? Did you consult with the team to find out what their opinion was? Did you listen to their opinions and comments objectively?
  4. Are you (the manager) in the right place in the team? Not too close to smother or micro-manage the team, and not so far away that you lose sight of the progress on goals.

Another good point in this blog was:

Geeks usually know the technical side of the business better than the manager, so making a technical decision without consulting them is the biggest mistake a leader can make.

I have seen one major company implode based solely on this exact problem. We went from 250 people down to less than 30 people in 2 years, and rotated through 4 CEOs and 5 rounds of layoffs in that time. Hundreds of amazingly-qualified, brilliant technical people were laid off in wave after wave. Why? Because they were never asked if what the company was doing, was the right thing to do.

The “Managers” (and I use that term loosely here) at this company were agreeing to do work for clients that was simply impossible to do, under even more impossible deadlines. If the geeks were consulted, the projects would have been realistic, on-time, and completed to profit. That never happened, so who had to go? Not the manager of course: The geeks. Very sad to see hundreds of talented colleagues laid off time and time again.

In my experience managing and being managed by dozens of managers in my IT career as I moved up and around the corporate landscape, I have only had 1 manager that did exactly this, and in 2 years, everyone under this manager received a promotion every year, because of the rapid success and accomplishments. I was on my way to my third promotion in just as many years, when I decided to resign and work for the company above, that fell on its face.

But I strive to be exactly the style of manager that I had when I was at my best. High-volume, low-stress, clearcut and productive with every task and project.

I should also add that I’ve never been fired or laid off from any job I’ve had, both as Geek or Manager, and I don’t intend to. I make my points heard, even if it means risking my job. In every case, my voice has either saved the team, project or company with realistic objectives.

Who Writes the Rights

Slashdot Ball CapI saw this comment on Slashdot today, and I had to re-post it here, because it really captures exactly what I’ve been thinking for the last two decades or so, watching this mess go by in our society and administration and environment:

Rights are not granted to us by the government.
We grant rights to the government.

Any attempt to reverse this will, in effect, start a bloodbath that I would be happy to participate in to preserve what is rightfully ours. Even if some of those rights are things I do not agree with. They are ours and ours alone.

The government is merely a keeper for its citizens, soon to be or otherwise protected by natural inalienable human rights and its sole obligation is for our collective protection and benefit for the long and short term.

Amen my Slashdot brother, amen.

UPDATE: I’ve been hearing dozens and dozens of comments and corrections from this one entry, one in particular which clarified that we grant “limited powers” to the government, not “rights”.

Seems quite a few people take this issue very seriously. Keep the comments and inertia going, everyone.

Bad Behavior has blocked 734 access attempts in the last 7 days.