Monthly Archives: May 2007

Lessons Learned: Effective Practices In IT Management

This article was first published on the NTEN Blog in May of 2007.

Peter Campbell,

I’ve spent more than 20 years in the sometimes maddening, sometimes wonderful, world of IT management. Along the way I’ve worked under a variety of CEOs with very diverse styles, and I’ve developed, deployed and maintained ambitious technology platforms. In order to survive, I put together three basic tenets to live by.

1. Management is 360 degrees: managing your superiors and peers is a bigger challenge than managing your staff.

2. To say anything effectively in an organization, you have to say it at least three times in three different media.

3. Follow Fidonet’s basic social guideline, “Do not be excessively annoying and do not become excessively annoyed.”

At a high level:

  • Work for the mission. Even in for-profit environments, I’ve managed to the organizational goals, not the individual personalities. You will avoid more political damage and navigate your way around the politics far more easily if you do the same. Don’t be scared of board or boss, and don’t cave in easily. This doesn’t mean that you countermand direct orders, but it does mean that you speak up if they don’t make sense to you. If you are in a political environment where, at the top, personality and ego trump mission in setting organizational priorities, then get out.
  • Make your priorities well known. Don’t ever assume that people are reading your business plans and proposals, and know for a fact that they haven’t read your emails. The key to successful project planning is communication, and that means face to face discussions with all parties with a stake in the project, especially those that you don’t particularly mesh with. Avoiding people who factor in your ability to succeed is a sure way to fail.
  • Take every opportunity to educate. Successful deployment of technology depends on joint ownership between the technology users and purveyors. Staff won’t own the technology if they don’t know what it does for them. In order to successfully manage technology, you need to constantly inform all parties at to what it can do for them.

Some other handy practices:

  • Run the IT Department as a lab – give your staff ample voice, diverse projects, and credit when they succeed. IT people, particularly in non-profits, are far more motivated by learning and accomplishing things than they are by money.
  • Value people skills, especially among your staff. Ability and comfort to communicate can be a more valuable talent than the ability to configure a Cisco 1750 blindfolded.
  • Marketing is not a dirty word! Sell your initiatives with PowerPoint, Project, and whatever else wows the suits.
  • Design for your users, not yourself. Stay aware that techies do not use the technology the way that everyone else does, and there is nothing wrong with everyone else – they just aren’t techies. So make sure that the software is configured to their needs and desires, not yours.
  • Consultants Rock! (and I’m not just saying that because I’m now a consultant). If you are doing your job well, a consultant can help you build resources and improve your status with management. Simple fact: The CEO will always listen to the consultant say exactly what you’ve been saying for years.
  • Be opportunistic. Apply for grants – you don’t have to wait for the grant writer to do it. Call different people at that vendor that you’re seeking a charitable discount from, not just the ones who think it will lower their commission. And then, back to marketing – let the CEO know every time you succeed.

Peter Campbell is a Business Technology Consultant focused on assisting members of the nonprofit/social services community with revenue-generating projects and promoting organizational self-sufficiency.

NTEN Connected

Just a note that my article on IT Leadership was featured in the latest issue of NTEN Connect.

On a related note, my blog entry on Joomla Day West was almost quoted verbatim in the latest Joomla Weekly News (this is a PDF download). And I have an article coming out soon in Non-Profit Times on Data Management, a summary of the Managing Technology 2.0 presentation that I led at the NTEN conference in April. (Powerpoint link here).

Rails Wrap-up

So, I came to this Rails conference looking for a few things. It’s not over, but I think I’ve got a good sense what I’ll walk away with tomorrow.

I started to learn a bit about Rails while considering joining a software start-up (in the non-profit space). I spent a month hammering away with a few O’Reilly books and a sample project, then got pulled away by real world concerns like starting up my new career fast so my family won’t starve. I got far enough to get the concepts and philosophy, master the innovative database management (activerecord), and start an app that I plan to finish and publish as part of Techcafeteria someday. Along the way, I loved the rapid development features and recognized Rails as a bit of a conceptual leap in programming/scripting, that values efficiency of following conventions over coding. Being oriented toward finding the fastest paths to the best results, I was also intrigued by how Rails builds Ajax functionality into the code (I just never bothered to get beyond the basics of Javascript, preferring server-side programming, I bias I now regret…) But I also grew concerned about the platforms speed and scalability, concerns that my friends at Social Source Commons (SSC) would second, I suspect.

So, the four areas that the conference could have helped me with, and how it did:

  1. Learning more of the scripting language. Not so much — maybe a referral to the book I’m missing that will glide me right over that hump.
  2. Ajax intro – pretty good. I attended a few sessions on Prototype and Scriptaculous that gave me a far better handle on how they work .
  3. Ruby Scaling — an awesome session on the proxy cache and other options out there to speed up Rails, with pointers to what bottlenecks it. This was likely the most valuable thing, and I’ll be contacting Gunner to offer to take a look at the SSC platform and see if we can apply some of what I learned.
  4. Where it’s going, as I reported on yesterday. Among web scripting languages, PHP and ASP/.NET are the kings today. My prediction is that Ruby on Rails will eclipse them, and gain broad adoption among web 2.0 developers and corporations looking for in-house app development tools. The main limitation – performance – is being addressed and will be fixed, no question.

The benefit of having a functional application roughly 60 seconds after you think of a name for it is phenomenal, and the developers are completely geared toward continuing to make it the out of the box solution for speedy delivery of standards-based, current tech web applications.

Instant Open API with Rails 2.0

Day 2 at the Ruby on Rails conference – after the Keynote.

My main focus is on technology trends that allow us all to make better use of the vast amounts of information that we store in myriad locations and formats across diverse systems. The new standards for database manipulation (SQL); data interchange (XML) and data delivery (RSS) are huge developments in an industry that has traditionally offered hundreds different ways of managing, exporting and delivering data, none of which worked particularly well — if at all — with anybody else’s method. The technology industry has tried to address this with one size fits all options — Oracle, SAP, etc., offering Enterprise Resource Platforms that should be all things to all people. But these are expensive options that require a stable of high-paid programmers on hand to develop. I strongly advocate that we don’t need to have all of our software on one platform, but that all data management systems have to support standardized methods of exchanging information. I boil it all down to this:

It’s your data. Data systems should not restrict you from doing what you want to do with your data, and they should offer powerful and easy methods of accessing the data. You can google the world for free. You shouldn’t have to pay to access your own donor information in meaningful ways.

How can the software developers do this? By including open Application Programming Interfaces (APIs) that support web standards.

So what does this have to do with Ruby on Rails? At the Keynote this morning, David Heinemeier Hannson showed us the improvements coming up in Ruby for Rails 2.0. And he started with a real world example: an address book. Bear with me.

  1. He created the project (one line entered at a command prompt).
  2. He created the database (another line)
  3. He used Rails’ scaffolding feature to create some preliminary HTML and code for working with his address book (one more line).
  4. He added a couple of people to the address book.

At this point, with a line or so of code, he was able to produce HTML, XML, RSS and CSV outputs of his data. The new scaffolding in 2.0 automatically builds the API. I could get a lot more geeky about the myriad ways that Ruby on Rails basically insures that your application will be, out of the box, open, but I think that says it well.

Think of what this means to the average small business or non-profit:

  • You need a database to track, say, web site members, and you want to further integrate that with your CRM system. With rails, you can, very quickly, create a database; generate (via scaffolding) the input forms; easily export all data to CSV or XML, either of which can be imported into a decent CRM.
  • You want to offer newsfeeds on your web site. Create the simple database in Rails. Generate the basic input forms. Give access to the forms to the news editors. Export the news to RSS files on your web server.

This is powerful stuff, and, as I said, an instant API, meaning that it can meet all sorts of data management needs, and even act as an intermediary between incompatible systems. I still have some reservations about Rails as a full-fledged application-development environment, mostly because it’s performance is slow, and, while the keynote mentioned some things that will address speed in 2.0, notably a smart method of combing and compressing CSS and Javascript code, I didn’t hear anything that dramatically addresses that problem. But, as a platform, it’s great to see how it makes actively including data management standards a native output of any project, as opposed to something that the developer must decide whether or not to do. And, as a tool, it might have a real home as a mediator in our data integration disputes.

The Rails Thing

It’s Thursday morning, and I’m in Portland, Oregon at the 2007 O’Reilly Railsconf, all about the web programming language/environment/framework called Ruby on Rails. I was introduced to Ruby on Rails by a friend/associate who I hope to be doing some work with soon – we’re part of a group looking for funding to develop some applications. I program in a few languages, mostly PHP, but agreed to learn Ruby on Rails after being introduced to it.

Ruby on Rails, it turns out, is a controversial language, in a way that is very reminiscent of the Apple vs. everything else debate. Rails enthusiasts are very attached to the platform, and adherents of Java, C, and even PHP, tend to be very skeptical, with complaints that the structure is too rigid and that the language only goes so far. They might be right – I’m not fluent enough yet to know. But there are a few definite things that have me interested in Rails.

  1. Rails abstrats the database creation and management process in a really fascinating way. Using the MVC framework — model, views, controller — you basically develop your database using plain english to describe the relationships between tables. This really works for me. To create the database, you write some very simple code that adheres to certain naming conventions, and then you can manage the database almost exclusively from the code.
  2. Once the database is created, Rails uses a method called scaffolding to automatically create forms for database manipulation. With one line of code in your controller, you can very simply grab data from multiple tables using a simple syntax. Rails makes it all very, very easy.
  3. I’m looking for a holy grail, of sorts, something that falls halfway between a programming language and a content management system (CMS), and this comes close. What can we use to rapidly develop interactive, web-based applications that doesn’t lock us into the type of assumptions that Drupal and (the current version of) Joomla do, but don’t require building the whole thing from scratch? Ruby on Rails is still a pretty complex thing for most techs at non-profits to budget the time to learn, but it’s intriguing, as is the move in the next release of Joomla to have it sit atop a Ruby on Rails-like framework (that, unfortunately, lacks the database routines).

I’m also looking at Javascript/ajax libraries – I’m in one right now on Prototype and scriptaculous, but the presenter is the developer of scriptalicious and his presentation style is somewhat coma-inducing…

OpenID Enabled

Just to put this all together, I’ve written a F.A.Q. and a How-To on OpenID and added them to the OpenID offerings here at Techcafeteria which are, in a nutshell:

  1. The OpenID-enabled Blog;
  2. The OpenID server, which I’m committed to maintaining. Techcafeteria won’t be going away anytime soon!;
  3. A new OpenID F.A.Q., which links to other OpenID resources;
  4. and a new OpenID illustrated How-to, which uses the Techcafeteria server as an example but overviews how they all work.

Why am I harping on about this? I really do think that OpenID offers a solution to a very pesky problem. I have an encrypted file with all of the logins and passwords that I keep on a regular basis for web sites and services that I use. There are over 200 of them. I might be an extreme case, but I’m far from alone. And, from my years as a technology manager, I know that most people solve this problem by using the same password at multiple sites. So if those sites include your online banking, that’s a serious risk.

But, beyond the convenience and security, I look at it this way. My goal for Techcafeteria is to grow it into a real diverse offering of web-based services, in fitting with the name. Some of these, like the blog, will be based on third-party platforms, others will be things that I develop (I’m experienced with PHP/MySQL and I’m learning Ruby on Rails – I’m even attending O’Reilly’s big conference on it in Portland this week). My goal is single sign-on, via OpenId, for everything that Techcafeteria ever offers.

It’s not a big deal doing this on my web site. It would have been a huge deal if I could have accomplished it at the large non-profit or decent sized law fIrm that I served as an IT Director for. At both of those jobs, we had a variety of systems, all tied into Novell and/or MS networks, but we still had nothing but password soup to offer our users, because the apps weren’t standardized enough to allow for true single sign-on.

At Joomla Day on Saturday, I sat in on a session where one of the core developers (Sam) demonstrated a way to share authentication between Joomla and MediaWiki. Very cool, but somewhat easy because MediaWiki stores the password unencrypted. Assuming that most sites use standardized encryption protocols (MD5 being the big dog, that’s not an insurmountable challenge. But I couldn’t help thinking how much easier this will be via OpenID. It’s not just about this stuff being possible – it’s also about allowing Sysadmins who are not also programmers to implement it.

So, end of OpenID rants, for now. I’ll be doing some live blogging from the Rails conference, and I’ll try and include some context as to why I think Ruby on Rails is an important programming environment.

A Day of Joomla (live)

I’m posting this live from the first Joomla Day West conference being held at Google headquarters in Mountainview (so, yes, wireless is reliable!)

This is an interesting event – an “un-conference” as Ryan calls it, which falls somewhere in the territory of a traditional conference, a town hall meeting, and, maybe, the Phil Donahue show, as emceed by the always entertaining Gunner (of Aspiration fame).

It’s about halfway through the day, and continuing through tomorrow, but I won’t be able to come back, because that would incur the justified scorn of my son’s mother, who expects me to not be a computer geek on her day. There are 100 or so people here from many corners of the earth (well, the Americas and Europe are healthfully represented) and associations to Joomla that range from a tiny non-profit thinking about using it to the core development team. Joomla, for those who don’t know, is a popular open Source Content Management System (CMS) with a huge developer community, making it very powerful and popular. It has it’s roots in a CMS called Mambo.

The big topics are:

  • The upcoming Joomla 1.5 release, which is a dramatic rewrite of the application that will make developers (like me) very happy. They have exposed a programming framework that could develop into an environment all it’s own, and they’ve made changes to the templating that allow for powerful customizations.
  • The move to more strictly enforce GPL compliance. The GNU General Public License is designed to offer users of GPL applications much freedom,with restrictions on how the code can be redistributed that insure that the community will share in all enhancements. The Mambo/Joomla developer community apparently includes many add-ons that aren’t compliant with this, and the Joomla team hopes to (appropriately) bring them back to compliance.

This is a seriously fun event with group activities intersperced with break out sessions, and a kind of “this is being made up as it goes along” agenda. Next up: speed geeking! which Gunner describes as “like speed dating, but completely different”.

Update on OpenID server

A quick addendum to my last entry:

First, my apologies if you’re trying to play. For some reason, the DNS change that will allow you to access is taking a looonng time to propagate. I’ve asked my ISP about this. And it makes no sense to give you the ip or an alternate name – you need the actual name to get this working.

Don’t trust me to maintain 24/7 for as long as you may live? Good thinking! I’m hosting this on my home box, because I can’t hack PHP sufficiently in order to get it going on my ISPs system. So this is what’s cool about OpenID. It’s relatively easy to become an OpenID provider, if you have your own server. I think it took me two hours or so to get it all set up. So there will be plenty of providers out there. And OpenID gives you an option for setting up a permanent address on any server where you can create a simple page (regardless of whether it’s your system or if it has anything related to OpenID installed) and then referring it to your OpenID provider. So, if I take my system down (I do that about twice a year), you can register somewhere else and simply point your URL to their system. It’s very flexible, and you’ll have the instructions in front of you after you create your ID on my server.

In addition to here are two important resources:

OpenID Enabled is a wiki devoted to OpenID. Very thorough!

The OpenID Directory is an early stab at collecting all of the sites that allow you to log in via OpenID. It’s also an OpenID provider, if you’re looking for that backup.

Wanna play with OpenID?

Yesterday, Sun announced a rollout of OpenID for all of the company’s employees, and joined Microsoft, Yahoo!, AOL and others in embracing the emerging Single Sign-on standard.

In order to deepen my understanding of OpenID and what it’s ramifications might be for me and the non-profit community, I’m diving in and inviting you to join me. I’ve set up an OpenID server at that you are welcome to use to establish your own ID. From there, you can also manage your identity, optionally revealing some demographic info to sites that you authenticate to (completely optional!) and managing the sites that you have authenticated to.

I’ve also set up my blog to allow for OpenID as a registration option, via a handy WordPress plugin.

Some notes if you want to join in:

  • If you sign up, you might want to then register on my blog and leave a comment on this entry. That way we’ll know who we’re playing with.
  • If you have trouble accessing, wait a few hours – it should be fully reachable by Friday at the very latest. I just set up the DNS a few hours ago

If you don’t know where to use OpenID other than my blog, note that plugins are available for WordPress, livejournal, Drupal, MediaWiki, and other community-based applications, as well as a module for apache. Technet has articles on how to integrate it with ASP sites. So, it’s out there – look for the logo:

OpenId Logo

Are there barriers to effective non-profit management?

Last week, I jumped pretty deep into a debate on the perennial “Should non-profits run more like for-profit businesses?” question. The debate is still going on at Deborah Elizabeth Finn‘s excellent Information Systems Forum. A number of comments supported the idea that non-profits are very different from for-profit businesses and should remain so:

  • There were numerous referrals to horror stories where a new exec or a board member had imposed a more business-like structure on a non-profit to disastrous results.
  • Others suggested that non-profits, being mission-based, as opposed to profit-based, are fundamentally different from for-profits. And some went further by limiting the concept of efficiency to simply streamlining expenses and increasing revenues, as opposed, to, say, more efficiently communicating with constituents or managing client data..
  • Some seemed to equate for-profit business practices with unethical or customer-abusive practices.

On this last point, let’s quickly acknowledge that many business have unethical practices, and those are not the ones that we should emulate or adopt, of course.

On the first two, let’s establish a few givens here:

  1. Non-profits are businesses, with distinct features of their business model and great diversity among the non-profit models, just like for-profits.
  2. The question is less “should non-profits act like for-profits?” than it is “Should non-profits use more for-profit models for efficiency?”
  3. Many non-profits are completely sustained by donations, grants and other forms of charity or voluntary funding. Adopting business practices does not mean that you neglect or damage your ability to nurture your primary sources of revenue/funding. Um, quite the opposite!

I totally believe the horror stories. I’ve managed technology for over twenty years – I’m well aware of how poorly thought-out changes in business practice can be disastrous. My question to each of those relaters of horror stories is, was the problem that they were “acting more like a business”, or was it that they weren’t strategically improving their business practices, using, as appropriate, models from the for-profit community? Botching up a business by imposing organizational change in a dictatorial fashion is quite easy, and, again, is not at all unique to the non-profit sector. It’s all well and good for the new CEO to say “we’re going to start running like a business”, but it’s also crystal clear that, even in the nptech community, there is great confusion as to what “running like a business” means.

So, some big factors play into why non-profit leadership is often inefficient and ineffective. The two big ones:

  1. The key factor in selecting a non-profit CEO is their ability to fund-raise. Resource building is valued far more highly than people or organizational management skills. And leadership flows from the top. So if the leaders best talent is to schmooze donors, and not to manage people, then you run high risk of wasting a lot of the money that those donors provide.
  2. Non-profits are still rated and rewarded based on their ability to serve clients without making business investments. Guidestar and the like all have formulas that rate non-profits on their service to infrastructure ratios, with tiny numbers of people and expenses being trumped as a success factor. And these ratings are annualized, meaning that labeling one year as “an investment year” could be disastrous for your fund raising in the following year. This is a huge fallacy – you can’t be effective if you are not allowed to make strategic investments, and, depending on what you are doing, you might be able to far more significantly change the world with ten staff and 70% of your budget going to mission than five staff and 85% going to mission. That determination needs to be made by people who understand the particular business, not

I just don’t think that bad management is a by-product of being mission-focused or having strong ethics. It’s an outcome of not valuing business planning, good management practices, and the concept of budgeting to long-term outcomes, as opposed to just doing things the way we’ve always done them, by the seat of our pants. Bad management is a crisis for our industry, and it does not serve our missions or the world to continue to condone it.