There's a phenomenon that has bothered me since early on at my first job out of college. We (I can fall into the trap of being guilty as well) tend to dehumanize people by calling them "users", "customers", "resources" or something other than people. I think that it's particularly pervasive within I.T., but it definitely shows up in other departments as well.
I can't stand it.
Firstly, it just sounds ridiculous. "I've got some resources on my team which would be valuable on this project" is something I heard often during my tenure in a huge, corporate IT department. It's borderline offensive. How about "Steve is a rockstar developer who really understands the framework you're proposing to use. He might be a huge help." It's just so much more human.
Secondly, it puts us in a terrible mindframe. If people are just cogs in a machine, we're biased toward thinking that they'll simply just behave rationally and predictably. This couldn't be further from the truth, particularly when we're talking about building things for end users. Expecting them to intuitively understand the assumptions we made and built into our solutions is crazy. In a very current example for me, customers interacting with an online ordering site do not think about the process of ordering pizza the same way an engineer designing that site does. They don't care how hard it is to map out a delivery zone or to figure out which is the optimal location to pick up from. They just want to type in their address and have it magically appear.
So I'm pleading with you. Don't abstract away the fact that we deal with messy, irrational, and unpredictable people every day. It'll help us make better decisions and besides - it's what keeps things interesting.
Thursday, June 21, 2012
Monday, March 14, 2011
High Order Goals
In clearing out some of my old documents, I re-discovered something I'd written about a year in to my current job (July of 2005.) The staying power of these goals was pretty solid, so I figured they'd make a good post.
This job is really about just a few things.
Automation
The whole reason that we have computers in the work environment is to do things that we either can do, but are a waste of time or just can't do all that well. One of the focuses of an IT department should be to automate away just about all of those tasks. Over time, things that are a pain in the ass to do should just be delegated down to the computers. Little bits and pieces of everyone's jobs should get easier, bit by bit.
Innovation
It's like automation taken to the next level - instead of re-inventing the wheel, or borrowing the idea of the wheel from someone else, it's inventing the wheel. These ideas and these applications make a competitive difference for the organization. They differentiate us in some way from our competitors.
Education
Technology is great, but it's pretty worthless unless people actually know what to do with it.
Maintenance
This is the not-so glamorous part of IT. It's absolutely got to get done, but it's not where the glory is. Automation can help this get easier, but it won't ever go away entirely. This is where a good portion of the short-term work lies, but it's a hindrance to getting the other work done. So this is where it makes sense to divide an
Tuesday, July 6, 2010
Coupons in Web 2.0
As the "great recession" either lumbers on or quietly gives way to economic recovery, the proliferation of Web 2.0 sites which provide information to their user base about every offer or coupon code in existence on the web has forced us (and presumably other businesses) to rethink some of our marketing strategy. In my opinion, it's safe to assume that any general offer you send out to your email list, or otherwise communicate in a limited fashion will show up on CouponCabin, RetailMeNot, SlickDeals, Deals.Woot or their counterparts for the whole deal-obsessed portion of the consumer market to see in a few hours.
Of course smarter technology can let you limit these offers with unique discount codes or business rules enforced in your ecommerce platform, but generally should you? There are a handful of sites out there with highly dedicated audiences who may be exposed to your brand for the first time through one of your discounts. (Think Groupon without the restrictions and outrageous cut of your sales.)
Monday, June 7, 2010
Damn You Snow Leopard...
We recently finished our upgrade to Exchange 2010, which set off a chain reaction of events that destroyed my development environment. I had been using IMAP to connect Apple's mail client to our Exchange 2003 server. IMAP is turned off by default in Exchange 2010, and Snow Leopard supports natively connecting to Exchange. As such, I thought it was a perfectly good excuse to upgrade from Leopard. This was not a great idea.
Apple bundles an update version of Ruby (1.8.7) with Snow Leopard, which clobbered the rather messy development stack I'd been running on my laptop. (Having started really working with Ruby and Rails back when you had to run everything in Webrick, moving to nginx, mongrel clusters, and finally settling on passenger over a span of at least a few ruby and rails versions, it was rather fragile.
I spent somewhere on the order of 8-10 solid hours trying to fix it. (Installed RVM in the hopes that I'd get some help from a clean version of Ruby. Nope. Rebuilt almost everything. Nope.) Ultimately I decided it would likely be easier to start over with a fresh install of Snow Leopard on a blank drive and rebuild a clean stack from scratch.
So here's what I ultimately ended up doing. (Note that this would be what you need to do in order to get started with Rails on Snow Leopard. I'll add command line snippets shortly, but most of this is pretty straightforward stuff.)
- Back up everything to a time machine drive
- Insert the Snow Leopard DVD
- Boot up for an installation
- Use disk utility to wipe my hard drive (scary.)
- Reinstall a clean version of Snow Leopard
- Install XCode from the "Optional Installs" on the Snow Leopard DVD
- Update Rubygems
- Download and install MySQL binary
- Create .profile and add /usr/local/bin to my path
- Install the mysql gem with 64 bit archflags directive
- Install rails 2.3.
- Install the passenger gem
- Configure passenger [sudo passenger install-apache2-module]
- Install the passenger preference pane
- Success!!
Monday, May 3, 2010
Rework
I got my copy of "Rework" by the 37signals guys today - just in time to take it on the plane with me to Buenos Aires! I'm exited to read the latest by David + Jason.
Thursday, April 29, 2010
Setting User Expectations
We are currently nearing the end of a few day process to transition our email server from Exchange 2003 to Exchange 2010 and it's gone relatively well from an end-user upset perspective. (The rationale behind staying with on-site Exchange instead of moving to the cloud will follow in a separate post.)
I have it easier than many because my "customers" are generally the employees of our company, so it's easier to set and manage their expectations. Regardless, it still needs to be handled delicately to minimize their upset and resistance to change.
I think a few key factors really helped in the process
- (Self evident) Let everyone know what to expect out of their experience during the transition
- (Self evident) Work around the customer's schedule. In practice this meant scheduling downtime for our 9 to 5 employees from 8pm to 6am and scheduling downtime for restaurant managers from about 2am until 8am
- Be honest about the fact that you'll run in to problems and fix them immediately
Finally, I have to give Microsoft props for ensuring that Outlook 2007 will automatically recognize the new 2010 server without any user action. For our office users, this should make the transition go essentially unnoticed.
Sunday, February 28, 2010
Schedules
I used to go by the mantra that schedules were bullshit. I wouldn't give people deadlines or commit to them unless I knew we could deliver something on time.
However, I've revised my stance: schedules are just a guess. We can learn a bit about how long it takes us to write a given type of app and make slightly better guesses in the future.
So why make a schedule at all? Communication. If the other department heads who rely on my team for both day to day and project support don't have a clue what I'm working on, it's hard for them to understand why I'm not working on whatever they need. A schedule helps to explain why everything can't be done for everyone all at one.
Subscribe to:
Posts (Atom)