CTO 101

January 21st, 2008 2 comments

IT professionals can increase the likelihood that large tech expenditures are approved by learning to speak the language of CEOs.

For CEOs and CFOs, approving large tech expenditures can involve a leap of faith. As an IT professional, your challenge is to remove ambiguities and clarify the decisions they face. By translating your technology recommendation into a way for your company to achieve its goals, you can build rapport and forge strong connections with your CEO and CFO.

In my experience, viewing the organization through the eyes of senior management rather than through the narrow lens of a technologist enables you to speak your bosses’ language and present a solid business case for investing in a particular tech tool.

Below I’ve outlined some techniques to sharpen your persuasive power as an IT manager:

1. Frame the issue. Preface your remarks to the CEO and CFO by defining the issue in terms that top executives readily understand. Begin by stating the organizational imperative that the CEO has repeatedly articulated, for example, “We need to cut costs 20 percent.” Then tie your proposal to the CEO’s directive while highlighting an opportunity to harness technology to achieve corporate goals in less time or for less money.

2. Think in threes. Give a trio of compelling reasons why your bosses should approve your proposal. In one attention-grabbing sentence, provide a succinct overview of your three points. (For example: “This new software will allow us to track transactions in real time, reduce our error rate and produce a new and more substantive set of metrics to measure employee performance.”) From that point, you can elaborate on each of the points with examples, evidence, statistics and other supporting data. Caution: It’s important to choose three specific points that appeal to the CEO and CFO (see technique 1)—not the three best technical features from your perspective as an IT expert.

3. Cut the tech lingo. Before presenting your recommendation to senior management, rehearse to make sure that you speak in basic or non-technical terms. Practice by delivering your presentation to a non-techie peer or a trusted mentor or business coach. Attentive peers or outsiders can warn you about parroting a vendor’s technical terms.

4. Let questions drive the presentation. Because of their extensive knowledge and enthusiasm, some IT managers oversell their proposals. They may spend 20 minutes regaling the CEO on the benefits of enterprise software or the latest cutting-edge features of a new digital gadget, offering detailed demonstrations to showcase what the technology can do. There’s just one problem: the CEO may not care. Top executives usually prefer to ask questions that drive the dialogue with their IT manager. Knowing this, you should share enticing bits of concise information while pausing frequently for questions.

5. Offer options. Senior executives like a menu of choices when analyzing tech expenditures. If they feel boxed into a corner or pressured to approve an all-or-nothing technology application, they may reject it. By providing a range of options—with specific pros and cons for each—you increase your odds of triggering a favorable response from executives. For instance, you may want to suggest a relatively low-cost pilot phase as one of the choices on how to proceed. This may satisfy hesitant officials who want to test the technology before committing.

6. Align projections with historical trends. For many executives, the toughest part of assessing tech expenditures is looking ahead to calculate uncertain costs and benefits. Will the promised payback really accrue over time? What negative surprises can arise? Could the technology prove obsolete sooner rather than later? Anticipate and address such concerns by aligning the past with the future. Draw conclusions from your organization’s experience purchasing other, similar technologies and use trend analysis to extrapolate results for the coming year. Because our brain tends to lead us to think that the near future will mirror the near past, most executives respond more favorably when they can examine the recent past to predict future outcomes.

7. Acknowledge skepticism. When you champion a new tech tool by indulging in unmitigated raves, it’s like waving a red flag in front of a wary CEO or CFO. A better strategy is to approach any technology with a skeptic’s eye. IT presenters who play devil’s advocate and consider what can go wrong might sway fence-sitting executives to approve their request and better position themselves as a steward of the business.

8. Provide a timetable to track results. Evangelizing too forcefully without giving senior officials a sense of when they can expect results will lead you to “no” more often than not. Exuberance for a new technology does not trump calm, clearheaded planning. Savvy IT experts thus present a timeframe for measuring the incremental investment in a tech-related product or service. Setting up checkpoints for, say, the 60 and 120 days after purchasing software can reassure the CEO that any long-term expenditure is contingent on concrete results in the short term.

As Chief Technical Officer, Barbara Nelson drives the long-term development of the iPass platform, products and services. Previously, Nelson served as Vice President Architecture and Design, where she was responsible for researching new technologies initiatives. She also architected the iPassConnect™ universal client, the company’s award-winning software that seamlessly integrates connectivity to a wide variety of access methods (Wi-Fi, dial, 3G mobile data, etc.) with a rich set of mobility management capabilities. Nelson chaired the X.400 Special Interest Group at the National Institute of Standards and Technology. She holds a bachelor’s degree with honors in computer science from University College Dublin, Ireland.

Categories: Uncategorized Tags:

Thumbnailer with Exif Orientation Support

December 20th, 2007 No comments

My family website has literally thousands of photos and, to make life easier, I use Sebastien Windal’s mkthumb to automatically generate thumbnails. This works fine but doesn’t use the Exif orientation information in Jpegs (at least from my Nikon) to rotate thumbnails appropriately.

So I made a few minor changes, and voila! I also changed gdImageCopyResampled (better quality, slower) to gdImageCopyResized (lower quality, much faster). For thumbnails, the difference in quality is neither visible nor worth the extra processing time.

If anyone’s interested, I also have some ruby, php and perl scripts that, combined with simpleviewer, make a simple bulk photo web album.

Attached are two files: the first, mkthumb-2.0-src.tar.gz, contains Sebastien’s original mkthumb sources and the second, mkthumb-2.0-src-pk.tar.gz, contains my modifications.

Categories: Uncategorized Tags:

ASP.NET Testing Server

November 25th, 2007 No comments

Here is a couple of neat tricks from Robert McClaws describing how to serve up a ASP.NET 2.0 folder – perfect for development and testing.

From the command line:
"C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.exe" /path:[PATH OF YOUR WEB APP] /port:[WEB PORT] /vpath:[/mywebapp]

Or to add a web server extension to Windows Explorer (so you can just right click the folder), add the following registry entries:

[HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellVS2005 WebServer]
@=”ASP.NET 2.0 Web Server Here”

[HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellVS2005 WebServercommand]
@=”C:WindowsMicrosoft.NETFrameworkv2.0.50727Webdev.WebServer.exe /port:8080 /path:”%1″”

Chris Frazier added this small program to work around some of the problems mentioned here with this trick:
using System;
using System.Windows.Forms;
using System.Diagnostics;

namespace OpenCassini
{
class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
string path;

string command =
@”C:WINDOWSMicrosoft.NETFrameworkv2.0.50727WebDev.WebServer.EXE”;
string commandArgs = string.Empty;

Random r = new Random();

string port = r.Next(1024, 9000).ToString();

if(args.Length == 1){
//grab the original path
path = args[0];

commandArgs += ” /path:”” + path + “””;
commandArgs += ” /port:”;
commandArgs += port;
commandArgs += ” /vpath: “/”;
commandArgs += path.Substring(path.LastIndexOf(”) + 1);
commandArgs += “””;

System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();

info.Arguments = commandArgs;
info.CreateNoWindow = true;
info.FileName = command;
info.UseShellExecute = false;
info.WorkingDirectory = command.Substring(0, command.LastIndexOf(”));

Process.Start(info);

using(Control c = new Control()){
Help.ShowHelp(c, “https://localhost:” + port + “/”);
}
}
}
}
}

Categories: Uncategorized Tags:

Visual Studio 2008 Keyboard Shortcuts

November 24th, 2007 No comments

From Sara Ford’s blog (tips and tricks for Visual Studio), this still works for VS 2008:

Remembering keyboard shortcuts can often be difficult but they can also save you quite a bit of time. If you go to Tools/Customize and check the option for Show shortcut keys in ScreenTips, then you’ll be reminded of the keyboard shortcut for any item on the toolbar when you hover over the icon.

Categories: Uncategorized Tags:

SSH Password-free Login

November 11th, 2007 No comments

SSH remote login without a key is fairly straightforward, here‘s one of many how-tos.

But the part I often forget is to set the permissions of ~/.ssh to 700 and authorized_keys to 600. More permissive settings, i.e. 775, will cause key-based login to fail.

In brief, generate a personal private/public key pair using ssh-keygen. Copy the  public key the remote system’s .ssh/authorized_keys file. You can now SSH to the remote systems without using a password.

Categories: Uncategorized Tags:

What Got You Here Won’t Get You There

November 5th, 2007 No comments

On Amazon, Donald Mitchell summarizes lessons to be learned from Marshall Goldsmith’s book as follows:

“Letting winning get in the way of relationships you need;
Dropping too many ideas on those who work for you;
Being judgmental rather than helpful;
Slamming people in public or behind their backs;
Making comments that indicate you disagree with everyone that’s just been said;
Showing off how smart you think you are;
Saying anything in anger;
Being negative;
Keeping secret what others need to know;
Not recognizing the contributions others make;
Claiming undeserved credit;
Refusing to take responsibility for bad results;
Being focused on the past;
Favoring those who agree with you;
Not apologizing;
Ignoring what others are saying or shutting them up;
Being ungrateful;
Shooting the messenger who brings bad news;
Blaming others for everything;
Insisting on sticking with you bad habits after you’re aware of them.”

Of course, the hard part is recognizing this behavior in ourselves.

Categories: Uncategorized Tags:

Ubuntu Gutsy ATI Problem

November 5th, 2007 No comments

Wow!

It would have been nice to know that my Thinkpad T60 (and other systems systems using ATI’s proprietary fglrx drivers) would lose the ability to suspend or hibernate after following Ubuntu’s Update Manager’s suggestion to upgrade to Gutsy.

To make matters worse, this was no surprise to the Ubuntu team since community testers were complaining for months prior to Gutsy’s release. And the driver worked fine in Feisty: the issue seems to be related to rushed adoption of a new kernel memory allocator, despite widespread knowledge of lingering problems.

This is very disappointing coming just as more and more people are taking a serious look at desktop Linux.

Proposed solutions include: downgrade to Feisty (!!! – a warning not to upgrade in the first place would be better) or use the open source ATI driver. While I appreciate the incredible effort made by the open source developers, it is still dramatically slower than ATI’s, and effectively unusable with Compiz.

In fairness to Ubuntu, it seems Fedora and Suse are experiencing the same problems.

Categories: Uncategorized Tags:

Gedit and Kate Erlang Syntax Highlighting

October 28th, 2007 No comments

Here‘s a good recipe for Erlang syntax highlighting for gedit.
And here‘s something similar for kate.

Categories: Uncategorized Tags:

Emacs 23 and Distel

October 21st, 2007 No comments

Erlang is so good that I’ll tolerate emacs with its RSI-inducing keystrokes and arcane minutiae.

The main reason Erlang programmers should consider emacs is Distel, an excellent extension that tightly integrates elisp and Erlang. As of this writing, only emacs provides good Distel support. Others, such as Erlide (eclipse) and Erlybird (Netbeans), just aren’t ready for serious development.

Unfortunately, if you ride the bleeding edge with alpha emacs 23, with Unicode support and vastly improved fonts, Distel is broken. Fortunately, you can find a working patch here.

Distel is available from the author’s site although, lately, I’ve had better luck downloading from code.google.com.

And here‘s Bill Clementson’s superb introduction to using Distel with emacs.

Categories: Uncategorized Tags:

Mercurial Accessories

October 13th, 2007 No comments

Check out diffstat and filterdiff (from patchutils).

Categories: Uncategorized Tags: