# Tuesday, February 21, 2006

Mitch Denny has a good post entitled “Day Programmer vs. Night Programmer”… he makes the case that there are two different types of developers. The “day” programmer who works his/her 8–5 shift and then checks out, versus the “night” programmer who needs more than that from his/her job. The comments to Mitch’s blog post are also insightful, with one person observing that the post won’t likely reach a “day” programmer (who, by definition, isn’t likely to spend time reading up on blogs and staying current in the development world).

My experience is that it boils down to passion for what you do and that’s a very hard thing to find.

I’ve worked with many “day programmers” in the past and am certain that they’re the majority. Most people (in all walks of life) are inherently lazy and want to do the bare minimum required to get through their tasks and collect a paycheck. When the clock strikes 5pm, it’s yabba-dabba-doo right out the door. The notion of spending time outside of those hours to learn new skills, improve the skills they have, or otherwise invest in their abilities is completely foreign. These are people who like the idea of moving ahead in their career, but won’t put in the time and effort to make it happen.

At work, I’ve had some open positions for a while and have a reputation with HR for taking a long time to fill them. I take some ribbing about it, but everyone agrees that “hiring right” is far more important than “hiring fast”. Hiring right means finding those who are passionate about what they do, who are engaged by their job, and who want to excel. As a hiring manager, this is exactly the type of person you want to find and keep. That’s not easy, but you’ll get far better work from a small team of top-notch “night” developers than you will from a legion of average “day” developers — where “better” is defined by speed, quality, reusability, maintenance costs, and other common metrics.

When talking with others about this phenomenon, I use an analogy comparing a small, highly-skilled “special forces” team (self-directed, very focused, and creative when solving problems) to a large squad of recent boot camp graduates (requiring constant management, very specific direction, and not looking to be creative). Interestingly, Mitch refers to this in his blog post when remarking that “day programmers are mostly led [by others] and will seldom lead,” but that “night programmers mostly lead [others]”.

On finding them… At one point, I’d hoped that posting an ad specifically calling for passionate developers would help weed out the “just a job, any job will do” type of submissions. You can still find that ad on this page (second listing at this writing). Unfortunately, while the tone of the ad hits the mark, it doesn’t serve to weed out unqualified applicants. It’s too easy to send an email with an attached resume.

The bigger issue in hiring the “passionate developer” is that these aren’t people who are typically looking for a job. And when the time comes to look around, they’ll usually find a job through word of mouth. Recruiters can sometimes help on this front (at least in terms of weeding out the deluge of resumes that come in from most ads), but a hiring manager will almost always have the best luck with referrals — from other passionate developers.

On keeping them… If the job they have isn’t stirring their passion, or if they’re not feeling rewarded for what they bring to the table, “night programmers” don’t turn into “day programmers”. Instead, they will go someplace else, where they DO feel excited and rewarded. How people feel rewarded is a topic for another day, but the bottom line is that it will vary for everyone. For some, it’s base pay. For others, it’s access to tools and great hardware. For still others, it’s just interesting problems to solve. Usually, it’s some combination of things and knowing what it is for each person on your “special forces” team is absolutely critical to long-term success.

This is an issue I’ve discussed here in the past, but there are some other great bloggers out there that post regularly on hiring, managing, motivating, and inspiring a development team. In addition to Mitch’s blog, check out Christopher Hawkins, Rands in Repose, and Software by Rob (his recent “How to Piss Off Your Software Developers” article is excellent).

posted on Tuesday, February 21, 2006 2:35 PM Mountain Standard Time  #    Comments [0]
# Monday, February 20, 2006

I love my Xbox 360. I loved the original Xbox. In fact, I was so amped over the Xbox that I sold off my PS2 and all the PS2 games. I’ll likely do the same eventually with the original Xbox in favor of just the 360 (especially since the backward compatibility list pretty well covers the games I’d want to keep).

But there is one area that the whole Xbox community falls well short of Sony… childrens’ and family games.

Now, before you point to the Xbox Live Arcade and say “those are all kid-safe”, hear me out.  Elmosadheart

First, just because a game isn’t gory or violent doesn’t mean that’s a good game for kids. It may be “kid-safe”, but it’s not kid-centric. Is there redeeming value in letting a kid play Joust or Geometry Wars?

Second, consider what happens if you go to Amazon.com, choose Video Games, Xbox 360, and then select the “Kids and Family” category. You get three games — two sports games from EA Sports and Ridge Racer 6. While they may be “kid-safe”, they’re certainly not kid-centric.

One of the things I really liked about the Playstation world was that there were actually some good educational games for kids to play. When she was 3, my daughter used to love playing Elmo’ Numbers and Elmo’s Letters. The graphics weren’t going to win any awards from the Joystiq crowd, but there were a lot of upsides. She got to play a game “just like daddy does”, it was a fun activity for us to do together, and she learned as she played.

And I don’t think a game has to be strictly educational to provide some learning opportunities. The various Sim- and Tycoon games offer the opportunity for creativity and problem-solving. Adventure games that require puzzles to be completed along the way, and so on.

I know the 360 hasn’t been out very long, but this is still a problem for original Xbox titles as well. Go to the “Kids and Family” section on Amazon for the original Xbox and the list is dominated by EA Sports titles and various racers. The two relatively kid-centric games on that list are Lego Star Wars and Madagascar (both seem to have little redeeming value beyond mindless entertainment).

Finally, I know that the market for these types of games is pretty small. This seems like an area where the Xbox Live Arcade and Marketplace could come through. No need for packaging or media distribution and a couple of decent titles would market themselves. I’d have a reason to go get some Microsoft Points.

In the meantime, thank goodness for the V-Smile

posted on Monday, February 20, 2006 11:08 AM Mountain Standard Time  #    Comments [0]
# Sunday, February 19, 2006

Jeff Atwood had a good post this past week, entitled “Fear of Writing.” As I read, it really resonated with me and my desire to blog more often.

I’ve got a bunch of notes/URLs set aside as potential blog topics and have been saving these for well over a year. (At some point, I’ll have to clean them up because I’m sure many are now well past their “sell by” date.)

So if I have all these things that I think are noteworthy, why can’t I bring myself to blog more often? I think the reasons boil down to two things:

  1. Making it a habit. To get good, you need practice. Practice is repetition. Repetition forms habits. Right now, I’m simply not in the habit of writing up a few posts a week. I have to set reminders to myself. I know it’s something I want to do, so I think the reason it’s not yet a habit brings me to reason #2:
  2. That fear thing. The issue here is the fear of writing something that’s simply not worth reading. I think writing up a good post requires some up front work — to organize the thoughts, the research and links, the writing, and the editing. And anything less has the potential to pollute the bandwidth.

I’ve written a fair amount before, including many magazine articles and a monthly “Best Practices” column. I know it’s something I enjoy… but writing for a blog is different than writing for a magazine or a full online article. It’s a smaller scale. It’s typically much shorter. It should be more frequent. It’s far more casual and it’s supposed to be a conversation — a single voice in a larger community.

With magazine articles, it was a larger task  (thus requiring more preparation) and a looking deadline made the commitment easy. But once it was done, it’s over. Only occasionally would I hear from someone who’d read the article… and when I did, it was months after I’d written it (most magazines have a 3–4 month lead time).

A blog post is a smaller task, but the feedback (good or bad) is more immediate. Someone can comment or send email within minutes of me clicking the “Post” button. This tight feedback loop is the part of blogging that I think is so cool, but it also instills the fear — what if it sucks? What if I got it wrong? What if I hit “Post” too soon?

I suppose admitting the fear is the first step to overcoming it… so, my name is Jeff and I have a fear of blog posts.

posted on Sunday, February 19, 2006 11:10 PM Mountain Standard Time  #    Comments [0]
I just came across this in the .NET blog world… looks like a CodeCamp is being planned for the Denver area. I’ll have to keep an eye on the site and hope that the scheduling works out for me.
posted on Sunday, February 19, 2006 10:47 PM Mountain Standard Time  #    Comments [0]
# Sunday, February 12, 2006

I had occasion to use Scott Willeke’s “Less MSIerables” tool this morning. I had download some code samples to check out and they’d been posted as an MSI package. While I like that format for installing apps and utilities I will keep around, it’s overkill for things like code samples or sample projects — things I don’t need cluttering up the Add/Remove Programs dialog and am likely to look at quickly and then delete.

It worked like a champ when pointed to an MSI file and made it easy to choose which files I extract. The registry key option (Allowing you to right-click an MSI and choose “Extract”) didn’t always work for me, but running the app itself and selecting an MSI isn’t too big a deal.

Well done… thanks, Scott!

posted on Sunday, February 12, 2006 1:28 PM Mountain Standard Time  #    Comments [0]

I’ve been looking forward to the Olympics starting up for a few months. Friday’s opening ceremony was pretty good and I had high hopes that I could catch a lot of coverage over the weekend. What a disappointment.OlympicsSchedule

NBC has the Olympics’ broadcast rights for the US and, on the surface, you’d think that’d be a good thing. In addition to local NBC channels, they could be using MSNBC and CNBC. Turns out that, according to NBCOlympics.com, they’ll also be using the USA network.

But each time I’ve sat down this weekend to see what’s up, I’ve had just one choice — women’s hockey. Now, I don’t mind a little women’s hockey, but where are the other events? It’s a Sunday afternoon on the first weekend of the games! Shouldn’t the land of 1000 channels have a channel that’s virtuall 24–hour coverage? Even if it didn’t always have commentators (sometimes, that’d be even better), if it showed raw footage during some times, or if it repeated things occasionally… it’d be better than what’s currenly on these channels (the “Non-Olympic Programming” above):

  • Local NBC Affiliate — Informercial
  • CNBC — Informercial
  • MSNB — “MSNBC News Live”, currently showing a story about sharks in Australia.

On the upside, the NBCOlympics.com site does have a pretty good TV Listings feature where you can put in a zip code and your broadcast provider (cable, satellite, etc), and it’ll give you a complete rundown. I just wish the answers it gave were better.

On a related note, maybe I can find some good blogs that are regularly updating with results and back stores from Torino.

UPDATE: Looks like the NBC site also has a page with various RSS feeds. That should be good for getting some results, but I suspect the best sources will be from actual “bloggers on the ground”.

posted on Sunday, February 12, 2006 1:22 PM Mountain Standard Time  #    Comments [1]
# Sunday, January 22, 2006

NBC just announced that they’re canceling The West Wing after this season. That’s been one of my favorite shows on television since it started, so this is a bummer. While it’s had ups and downs with the change in writers and creative team, it’s still been a fairly strong show. According to the announcement, the decision was made before the death of John Spencer (one of the key actors in the show).

According to NBC, its ratings suffered with the move to Sunday nights… so why not move it back to Wednesday night to compete with Lost on ABC? Oh, that’s right… because the Biggest Loser is on. Lame. We lose a show that deals with political topics in an entertaining way so we can watch big people sweat.

I think it’s sad that CBS can sustain three hours a week of CSI, but NBC can’t manage to keep one of their smartest and most critically acclaimed shows going — especially when it was nearing the opportunity for a new lease on life and new perspective (the current season is in the middle of a presidential election).

I suppose it’s just another nail in the coffin of the broadcast television networks, who are getting their asses kicked by better, smarter shows on cable.

I guess there’s always “Command in Chief”.
(yes, that was a joke) 

posted on Sunday, January 22, 2006 9:46 PM Mountain Standard Time  #    Comments [0]

Nick Bradbury (creator of FeedDemon) explains the way that synchronization works between FeedDemon 2.0 beta and the NewsGator online service. I’ve been using various builds of FeedDemon since the 1.6 beta began and synchronization has been a bit of an issue. At various times it hasn’t worked well, but I think mostly the issue has been a lack of understanding on how the sync should work. Nick’s post goes a long way toward helping clear some things up and it’s good to hear that they’re looking at better ways of handling read/unread state of items between NGO and FD.

It’s also worth noting that when a folder is marked for synchronization, FeedDemon no longer goes directly to your subscribed feed URLs for updates. Rather, it goes to the NGO servers to ask for updated items. On the one hand, this makes sense because it’s the easiest/fastest way for NGO and FD to stay in sync… but it also means you’re at the mercy of the NGO servers’ uptime. When they’re unavailable for any reason, and it’s happened on occasion during the beta, you’re not going to be able to update your synchronized feeds.

I’ve used FD since its original beta and been a customer since it was released… and I don’t think there’s a better news aggregator out there for people who prefer a Windows desktop application. Currently, there are just a few things I’d like to see out of 2.0 to make it ideal:

  1. Allow for nested sub-folders in the new folder tree. This has been requested a few times already and Nick has mentioned that, while it won’t appear in the 2.0 release, it’s on the list for a later version. I think for those who don’t like folders, having the ability to organize using the 1.5/1.6 style UI would also be good.
  2. Improve performance to where it was during 1.5… I tend to scan item headlines and use the “spacebar for next unread item” style of navigation. When cruising through a bunch of items at once (basically holding the space bar down), FD 2.0 doesn’t keep up the way it does under 1.5.
  3. Make the synchronization as seamless and “behind the scenes” as possible, but I do think it’s important to give users a lot of control over how it works. This is a challenge because flexibility adds complexity… making documentation like Nick’s post available within FeedDemon would probably help with that. Having an option to force a sync and tell FD “make my local feeds reflect NGO” (and vice versa) would be nice. If the NGO servers are down and FD could be told to go directly to feed URLS instead of NGO, having this explicit “force update” option would be great when the NGO system comes back online.

That said, it’s clear that Nick and the NG team are committed to raising the bar for news aggregation… the transparency and honest desire for feedback from customers is great.

 

posted on Sunday, January 22, 2006 1:04 PM Mountain Standard Time  #    Comments [0]
# Tuesday, January 17, 2006

I got to be an early alpha tester on Nick Bradbury’s FeedDemon 2.0 update. Nick has now made it available for wider testing via his blog (and previously the NewsGator support forum, though it wasn’t bloggable then) and it’s worth checking out.

The key things that I really dig about this update are:

  • A hierarchical treeview for subscriptions. I find this much easier to navigate than the “one group/folder at a time” approach of earlier versions. It’s also easier to manage subscriptions in different groups.
  • The “attention” stuff that lets you see what you’re spending the most time reading. I have far too many feeds in FeedDemon currently and it’s rare that I can keep up with all of them on a regular basis. Using some of these tools, it’ll be much easier to trim down my subscriptions to a manageable level. The reporting tools from the 1.6 beta (especially the dinosaur report) is good for this also, but there’s a distinction between “feed that updates infrequently” and “feed that has high value for me”. Some blogs update very infrequently, but when the do I want to pay attention to them.

Anyway, with the cat out of the bag, go forth and give it a shot. Nick has always been very receptive to feedback, so now’s the time to put it through its paces and report what you find. I’m still using 1.5 on my “main” machine, but I’m finding that the machine that’s been running the various 2.0 alpha builds has been getting more and more use.

posted on Tuesday, January 17, 2006 1:19 PM Mountain Standard Time  #    Comments [1]
# Sunday, January 15, 2006

Due to being in the “right place at the right time” last week at a local Circuit City, I was able to score an Xbox 360 Premium bundle. To start the games collection, I also got Project Gotham Racing 3.

Wow. This is an impressive device… not just from the gaming perspective (though the graphics for PGR3 are stunning), but also from the UI and “media” angle. It was easy to get up and running and converting my old Xbox Live account to run under the 360 took just a few minutes. The Xbox 360 can also talk to Windows XP machines on our home network to stream music and photos, so we’re considering it in place of the Tivo Home Media Option (which we like, but it has its limitations). If you’ve got a Media Center PC on your network, you can even stream video and use the 360 as an “extender” device.

Once I had it up, I spent nearly an hour and a half tinkering in the “Dashboard” before I ever put the game disc in. The Dashboard has a ton of things to explore:

  • Lots of settings for customization and themes. I didn’t see a way to create custom themes, but there were lots available in the Xbox Live “Marketplace”.
  • Set up your “gamer card” to include an avatar, which type of gamer you are (recreational, family, “underground”, etc), and other identity info. Again, I didn’t see a way to add your own avatar/icon, but there seemed to be plenty available through Marketplace.
  • The hard drive came preloaded with one Xbox Arcade game (Hexic), a bunch of music files (most of which were from artists I’d never heard of… no surprise), and a handful of video files as well. Plenty to browse while you figure things out and it’s easy enought to delete them if/when you want to reclaim the space.
  • You can rip your own music to the hard drive for listening (including listening during games, like the original Xbox), but even cooler was plugging in my Ipod and having the media page on the Dashboard instantly recognize it and provide a UI for playback — including playlists, genres, artists, etc. With that capability, I probably won’t see much need to rip discs directly to the drive. The console has 2 USB ports on the front and I get the impression pretty much any sort of USB device is fair game for media photos and music.
  • Also in the Xbox Live Marketplace, you can download demos, trailers, and other things. Some for free and some require “Microsoft Points” (which you can buy through the console or apparently get preloaded cards at some retailers)… more below.
  • Tinker with the music and photos using the Windows Media Connect application on an XP machine. Once it’s set up, the 360 recognizes song files, playlists, and photos and, like the Ipod, has a metadata-driven approach to navigation (artists, genres, albums, etc). This is in contrast to the Tivo’s “file system” approach to navigating music and photos on a network.

So then I put in the PGR3 disc and was blown away by the graphics and gameplay. I played PGR2 a lot on the first Xbox, but was never particularly great at it. The UI is fairly different with the new version, but there’s no question it’s a huge step forward in terms of visuals. You can pause the game and go into “Photo Mode”, which lets you fly around the track and take pictures with control over color, exposure, shutter speed, aperture, focal distance, and so on. The only downside I saw with PGR3 over the previous version was when trying to find a game on Xbox Live. With the previous version, I could tell it to search based on similar skill, range of cars, cities, tracks, type of race, and several other parameters. With this version, it seemed that I only had two criteria to choose from — type of race and the city. I’d have preferred to specify the car class (so I could use the car I’d practiced with offline) and skill range. My impression is that that the new Xbox Live system is more “skill” aware than in the past, so maybe that’s being factored in behind the scenes (didn’t help me from getting skunked, though).

Anyway, there have been just two things that I’ve come across that I don’t really care for.

Xbox Live Marketplace “Microsoft Points” for themes/icons: The idea here is that you prepay for points and can use them for things like themes, avatar, “arcade” games, and even to change your gamertag (the conversion factor for points to USD makes this change cost about $10… good enough to discourage constant changes to gamertags, but cheap enough to consider once if you hate the one you picked a couple years ago). Anyway, I was surprised to have to use points for things like themes and avatar icons. For the arcade games or things like music videos, having a micro-payments system makes perfect sense (a la Itunes). But do I really want to pay money to use an EA Sports-branded FIFA 2006 theme on my 360? A DOA4 theme? On the themes front, I also didn’t see a way to preview themes in advance of purchasing, but since I was going to shell out points to get a theme, it didn’t matter. Maybe down the road for an Arcade game or two, but not for themes and icons.

Xbox as Media Hub on multiple computers: After installing Windows Media Connect on a couple of machines in the house, I just had to choose which folder(s) on each machine were available on the network and which devices (the 360 in this case) could have access to those folders. Then in the “media” portion of the Dashboard, you connect to a machine to view the photos or listen to the music. This all looked great and definitely has the potential to replace Tivo’s Home Media Option for us (and we use the heck out of that Tivo feature)… except that the Xbox 360 UI won’t let you connect to more than one machine at a time. In our case, we have one computer that has all of our music on it (roughly 35GB)… it’s the one we run Itunes on and sync the Ipods with. However, we store all of our digital photos on a separate machine (maybe 8–10GB here). But in the 360’s Dashboard UI, you choose either “Music” or “Photos” and then you see a computer. That’s right, one. Singular. Uno. If you want to connect to another one, you have to first go to the Dashboard “System” UI and disconnect the first one, and then you go back to Photos or Music to connect to the new one. I did some Googling around to see if I was missing something somewhere, but couldn’t find any resolution. For now, that makes it enough of a pain to impact the Wife Acceptance Factor. I tried mapping a drive from the “music” computer to the “photos” computer and then making that drive available to Windows Media Connect on the “music” machine. This works, in that the 360 could then fetch photos and music from the same connection, but fetching photos in this way wasn’t very speedy (at ~4MB each). I really hope the Xbox team is working on a way to let the 360 “see” more than one machine running Media Connector on the network.

On a related note, I also found the UI for browsing photos to be inefficient. In that UI, it actually shows all directories that contain photos, even if those directories are subdirectories elsewhere. In this case, the “file system” approach to UI seems the best way to go… we organize our photos by year, then month, and then a descriptive folder name (e.g. “\2005\06\Elizabeth’s Birth”… on the 360, you’d see a browsable folder for “2005”, another folder for “06”, and a third for “Elizabeth’s Birth”. This makes it unwieldy when you have several folders named “Soccer Games” under different year\month combinations — you just see multiple folders named “Soccer Games” in the UI and can’t tell which year/month each belongs to.

Thankfully, both of these issues are software/service related… if Microsoft opts to, it can roll out updates to address these (and more). Even as it is, though, the 360 has really impressed me.

posted on Sunday, January 15, 2006 9:22 PM Mountain Standard Time  #    Comments [0]