Techcafeteria

Ubiquitious Blogging

Mozilla.org just released one of the most exciting Firefox add-ons to come down the pike – Ubiquity. This is very alpha – the user interface will definitely mature, so what’s there now is best suited for geeks like me who have always liked command shells and already do things like use the Mac’s Spotlight as their calculator (if you type 2 + 2 in Spotlight, it will tell you it equals 4).

Ubiquity is best described as a macro language for the web, or a personal mashup engine. You assign a hotkey (such as Alt-space or Option-space) and a box comes up, which you can enter ubiquity commands in. I’m not going to tell you all about them – just watch the video:


Ubiquity for Firefox from Aza Raskin on Vimeo.

At this point, Ubiquity’s functionality pretty much requires a Google account – the email, calendar, maps and contacts integration is all with Google’s offerings. I expect that to change rapidly, as developing custom commands for Ubiquity is at a very basic programming level.

The case uses that are immediately apparent include adding maps and multimedia content to emails and blog entries (I use Scribefire – this assumption assumes that you compose your blog in your browser); having a lot of info available without having to tab away from the web page you’re on; and making some complex web tasks far more efficient. Mozilla is ambitious, though – they see Ubiquity as the ultimate personal web assistant, that will someday let you issue a command to book a trip; issue another to set up a multi-party meeting, and, who knows? Vacuum the house and feed the fish. Aza discusses that vision here.

Try Ubiquity out. Install it from here. Let me know what you think, and what case uses you envision for it.

Shlock and Oh! Facebook’s social dysfunction

I am not a luddite. In fact, I’m a big advocate of most of the concepts of social networking, and a long-time participant. But, about a month ago, A persistent friend roped me into joining Facebook, which, as you no doubt realize, is about the trendiest web site on Earth right now, basking in more than it’s fair share of memespace. Man, am I hating it.

Facebook is decidedly social. You fill out your profile, connect to your friends, and, from that point on, every time that you or a friend do anything on Facebook, the rest of your community knows about it, as a constantly updating scroll of alerts keeps you up to date. I know that Scott won a Disney trivia quiz, that Holly is now friends with Heather, and that Michelle has been experimenting with Trac, my favorite source code repository software. That’s a lot more info than LinkedIn tells me about my associates when I log on there. I also know, or have good reason to suspect, that a co-worker of mine broke up with his partner recently, because he updated his profile to note that he’s single. That was more info than I really wanted to know…

Most of what can be done on Facebook involves using the custom apps that programmers and pseudo-programmers (like me) can easily develop for the platform. The problem is that the majority of these apps are astoundingly trite in nature. There are hundreds of apps to let you poke your friends and compare your pop culture acumens. But there’s little of substance. I know that what drew the bulk of my friends to this platform was the promise of using it as a mission-marketing and fundraising tool for our non-profit orgs. There are plenty of apps that support that, but I’m pained to see where this is a very effective tool for it, unless donating to something meaningful makes people feel a bit better about themselves after six or seven hours of online tickling, poking, and otherwise engaging in remarkably trivial pursuits.

Social networking takes a lot of forms on the net, from the little “people who bought this also bought that” notes on amazon to the web-based communities around games and mobile devices to the whole hog social networks. The latest educated speculation is that Google and Yahoo will start adding social networking features to their email platforms, and Firefox 3 will act as an aggregator, pulling data from multiple social sites into the browser interface. If nothing else, this tells me that I can choose to join Facebook or Myspace today, but next year the challenge will be opting out.

Slam the blogosphere if you want, but the social interaction there starts with someone writing something they care about. And if you read a blog entry that speaks to you, you can engage in a focused conversation via the comments. Or, as I’ve done a few times in the past, roundtable discussion among related blogs. Something about the trivial level of automated discourse on Facebook almost knocks out the potential for meaningful interchanges, and when something more real pops up—like someone changing their profile to reflect a very real change in their life and who they are—it’s awkward to see it scroll up, sandwiched between the latest flixter movie showdown and the news that some friend of yours is bored with their commute. This almost moves the level of discourse between my friends and myself about three steps closer to spam. The Facebook brand of social networking is far too dominated by the fact that, even for an internet junkie like me, the majority of things that I can do on Facebook are not that interesting, meaningful or real.

Data Exchange Article Up at Idealware

My article “XML, API, CSV, SOAP! Understanding the Alphabet Soup of Data Exchange” is up at idealware.org.  This is intended as a primer for those of you trying to make sense of all of this talk about Application Programming Interfaces (APIs) and data integration. It discusses, with examples, the practical application of some of the acronyms, and suggests some recommended practices around data system selection and deployment.  Credit has to go to Laura Quinn, webmaster at Idealware, who really co-wrote the article with me, but didn’t take much credit, and our reviewers,  Paul Hagan, Steve Anderson and Stephen Backman, who added great insights to a pretty heady topic.

The article went through a lot of rewrites, and we had to cut out a fair amount in order to turn it into something cohesive, so I hope to blog a bit on some of the worthwhile omissions soon, but my day job at Earthjustice has been keeping me pretty busy.

NTEN CRM Best Practices Webinar on Tuesday

If you missed the announcement, I’m giving a webinar titled “Preparing for Your New Database: Making the Transition as Painless as Possible” on Tuesday at 11:00 am Pacific time. Registration details are at http://nten.org/webinars (It’s not free). If you saw the announcement, note that Holly or someone at NTEN wrote all of that copy – shame on me for not getting them a description on time! But it’s pretty close. What it lacks is the specification that we are talking about Constituent Relationship Management (CRM) databases, not just any database.

I’ve managed CRM rollouts at two large companies: most recently, Salesforce at SF Goodwill; years earlier, an obscure but awesome CRM called Interaction at Lillick & Charles, a San Francisco law firm. My take on it is that CRM can be business-model altering software. Mind you, it doesn’t have to be—- it can be a simple contact and/or donor management system—but maybe it should be. Because properly deployed CRM gives your organization the ability to operate in a relationship-centric fashion. Instead of having isolated departments and functions that, of course, are heavily involved in relationships with other people and organizations, CRM centralizes all of the information and history of your organizational contacts and allows you to far better understand and manage those relationships. Vendors can be donors. Donors can be volunteers. If you have that overlap occurring today, you might not even be aware of it.

Zooming down to earth, my experience is also very hands on when it comes to the actual technical work involved in moving to a centralized CRM platform. I can share a lot about the tools and methods available for integrating and migrating data from other systems.

The webinar will focus mostly on best practices for implementing CRM. But we’ll start with some of the high-level, what this means for your org; spend the bulk on the project planning and implementation practices; and, if there’s time and interest, dive into some of the techie stuff. My approach to these things is to have half the session prepared and half of it open to the group interests, and I think I’ll make it worth the $50 ($25 for NTEN members) if moving to new donor databases and CRM platforms is something you’re likely to be involved in.

What happened?

Well, work happened, and I have to admit that I am not the driven blogger who can maintain a steady flow of posts while working full-time. I’ve been doing a consulting/contracting gig in San Jose that not only keeps me busy, but takes huge chunks out of my day for the commute, so my attention to Techcafeteria has suffered unduly. I’ll be wrapping up the work in San Jose and transitioning to a new, full-time position over the next month or two, returning to the ranks of Non-Profit IT Directors that I didn’t imagine I’d stay out of for long. More on that position later – I’ve been asked to keep it under wraps for a week or so.

So I’ll be closing the consulting services section of Techcafeteria, but I’ll be keeping the website going as time affords. It’s been an interesting year for me, so far. From 1986 until 2007, I held three jobs. I stayed at each one for at least six years, and I secured the next one before leaving the prior. I haven’t been unemployed (aka self-employed) for over two decades. But I have a bit of a self-imposed challenge – I want a job with deep business and technology challenges, at an organization with a worthwhile mission, at a pay scale that, while not extravagant, is enough to support my family living in the Bay Area, where my partner spends most of her time homeschooling our son. Those opportunities aren’t a dime a dozen. I reached a point early in the year where I was downright desperate to leave the job that I was at (a long story that I have no intention of relating here!), and applied at some for-profit companies. I think I sabotaged myself in the interviews, because it eventually became clear to me that having day to day work that combats social or environmental injustice is a personal requirement of mine. My partner supports this—she was proud to tell people that I worked for Goodwill and she’s even more excited about my new gig, which sports a killer tagline. So setting up the consulting practice was—and probably will be again—a means of staying solvent while I was very picky about what I applied for.

One job that I pursued was with an org called the Pachamama Alliance. They are a fascinating group of people. Their story is that the indigenous people of Ecuador put out a call for help to the Western World as they saw the earth and their culture being destroyed by the clearing of the rainforests. The group forming Pachamama answered that call, and their mission is to “change the dream of the western world” into one that is in harmony with nature, as opposed to dominance and disrespect of it. They maintain that environmental injustice and social injustice are tied at the knees – where you find one, you’ll find the other. For those of you who saw Gore’s “An Inconvenient Truth”, you’ll recall the fact that the main water source for the Sudan dried up a few years ago. That bit of trivia puts the subsequent genocide in Darfur in an interesting perspective. Pachamama has adopted Gore’s tactics with a multimedia presentation that both educates and inspires people to adopt a more sustainable dream. It’s a timely movement, as it’s becoming clear to all of us that our current rate of consumption of natural resources is having dramatic impacts on the environment. Pachamama spreads the word by training volunteers to share the presentation. Well worth checking out.

In other news, I’m hard at work on an article for Idealware that attempts to deflate all of this big talk about APIs and put it in terms that anyone can use to understand why they might want to migrate data and how they might do it. I’m also talking with my friends at NTEN about doing a webinar on the best practices for rolling out CRM at a non-profit. As long-time blog readers have probably picked up, I consider Constituent Relationship Management software to be the type of technology that, deployed correctly, completely alters the way a business is run. It’s not just about maintaining business relationships and tracking donors – it’s about working collaboratively and breaking down the silos of business relationships and data. So installing the software (if software even needs to be installed) is the least of it, and data migration is just a chore. But aligning business strategy to CRM technology is the real challenge.

So, I’ll post next week about my new gig, and look forward to a long life for Techcafeteria as a resource on non-profit technology, with less of the hawking of services.

Should Non-profits Seed Software Development?

There were a ton of interesting side topics that came up at the Salesforce Non-Profit Roadmap event, but a few hit on some related themes that have long interested me, and they can be summed in two basic, but meaty questions:

1. Why isn’t there more collaboration between non-profits and open source software developers?

2. Should non-profits seed software development?

You’d think that open source and mission-focused organizations would be a natural fit, given that both share some common ethics around openness, collaboration, sharing and charity, and, let’s face it, both have challenging revenue models that often depend on the charity of others. And I think that’s the rub—simpatico they may be, but non-profts need partners to satisfy their needs, not share them. So when Microsoft, Salesforce, Cisco or some other high-powered tech company throws a significant bone (and these companies are very supportive), they can take it without putting their sustainability at risk. And I like to think that their charity is returned in more ways than the obvious support of our missions. Non-profits can take risks and do some creative things that profit-oriented companies shouldn’t. When it became strikingly clear to me that Salesforce had data management goals way beyond CRM (The evening that Marc Benioff told me that he was very interested in Goodwill’s inventory management challenges), it pretty quickly occurred to me that there would be a mutually beneficial opportunity if Goodwill wanted to pilot some of Salesforce’s development in that new territory.

The Roadmap session was stimulating on a number of levels – if I weren’t about to get extremely busy on my own sustainment pursuits, I could probably blog non-stop on it. One of the fun things was systematically determining exactly how non-profits are different in our software needs from the software-consuming world at large. There are clear needs for fund development, case management, grant reporting/management, and advocacy that aren’t germaine to the standard business world. And the general market for non-profit specific software has some limitations, as I often mention. At Goodwill, I searched high and low for a Workforce Development case management system that sat on an open platform. It doesn’t, to my knowledge, exist – every option out there limits the clients ability to integrate data from and to other systems. Most of them have severely limited reporting capabilities. Ironically, one of the worst offenders is the system that Goodwill International commissioned and sold to the members.

If the time hasn’t come, then it’s about to – non-profits can no longer afford to lock up their data in inflexible systems. Business management is not about silos. Success lies in your ability to learn from the data you collect, and inter-relate data between disparate systems. It’s not about how many clients you served. It’s about the cost of serving each of those clients and the effectiveness of your methods. You need systems that talk to each other and affordable ways to correlate data. So if the existing vendors don’t value this—or, worse, have built their business models on keeping you locked into their platforms by limiting your access to the data—then you need alternatives. And since Microsoft will discount their own software, but won’t fund other vendors, you need to consider if you shouldn’t be putting aside some of your hard-earned donations toward funding that development.

Salesforce Show and Tell

Day 2 of the Salesforce Non-Profit Roadmap session was focused on refining plans and sharing information. We had sessions and reports from Salesforce Product managers and developers, and we discussed and demoed some of the creative things that our community has developed. The Salesforce guests showed off Apex, the new scripting language that will be available for live use sometime next year; and we had a fascinating (but non-discloseable!) peek at where the reporting is going.

A lot of the talk focused on ways that we can—or will be able—to get around Salesforce’s core assumption that we deal with companies and contacts when, in fact, donation management is about individuals and households. And a big topic was integration, with a lot of questions centered on what can or should be done in Salesforce and what should be programmed on top of it. Two technologies that popped up a lot were Facebook and Ruby on Rails. I learned about (and immediately grabbed) a Salesforce library that has been developed for rails, and Alan Benamer sang the praises of Facebook both as a compelling social network and a fundraising tool, via their new “Causes” feature. Facebook has been in the news for opening up a powerful API, which makes them pretty much the “Salesforce of Social Networks”.

In the afternoon, we got to th fun stuff – showing off what we’ve done. Six of the participant’s showed off projects big and small.

Ben Munat showed us ChipIn, a fundraising widget that currently is available as a wep page plug in, but will soon be integrated with Salesforce, Facebook, and other application platforms.

  • Sonny Cloward showed us a very clean and elegant Salesforce template for fund development created using Salesforce’s Person object. The Person object, which can be used in lieu of Accounts and Contacts, was introduced late last year to a somewhat underwhelming response, the problem being that it’s an either/or choice. If you use Person objects, you can’t use Accounts and Contacts, and, in most cases, you have both companies and individuals among your constituents. All the same, Sonny’s template transformed Salesforce into a clean and simple CRM that would be far easier to teach and support, and maybe quite suitable for small organizations.

  • Rem Hoffman demoed the very sophisticated case management system that his company, Exponent Partners, has put together. This was a real ooh and aaher, as he demoed how a Mental Health agency, swamped in paper, could use it to track cases and print all of the paperwork with about a quarter of the effort that had been required. I’m very intrigued by Rem’s work, as I believe that case management options in the workforce development industry are all pretty painful. As far as I know, Social Solutions is the only company talking about opening up their application; most are the worst examples of grabbing a company’s data and locking them out of it.

  • Ryan Ozimak of PicNet demoed his Joomla/Salesforce integration, which is also very cool and clean, and promising. At present is is likely the fastest and easiest way to develop a web site with Salesforce Contact integration, and the next steps will open up other objects for clean integration. Ryan (who is sitting next to me as I type) has just let me know that this is around the corner.

  • As usual, Steve Anderson of One/Northwest had an amazing demo, showing how he has developed Apex code that completely masks the Account/Contact model so that a user can easily add and remove individuals from households. This was very slick, as his automation made tasks that take multiple screen views and actions today and almost magically integrated them. For example, if you have the household of John Doe and the house hold of Jane Doe, and you want to combine them, then you add Jane Doe to John Doe’s household and – poof! – the household is automatically renamed to “John and Jane Doe” and Jane Doe’s household is deleted. This completely removes the limitation that use of Person accounts involves – you can still have accounts and contacts. The problem being that Apex is only available in the sandbox for now.

  • Finally, Evan Callahan of NPower Seattle demoed a simple translator lookup app that he created for a client. What was cool about this was both that he put together a very intuitive and functional tool for finding a translator with the proper skills and availability, and he did it with some very simple code and a web form. In both Steve and Evan’s cases, they took innovative and undocumented approaches that produced powerful results. Must be something in that moist Seattle air.

Today we dive into how the Salesforce community can better operate as a cohesive support infrastructure and wrap up at noon. If you are a Salesforce license donee, keep your eyes open for a survey that will let you in on this critical input. And look for a bigger event next year—this was a great exercise for all parties.

Mapping NP Salesforce

Day one of the Salesforce Roadmap session was a well-crafted, but fairly standard run at typical strategic planning. Hosted by Aspiration’s ever-able Gunner (who I seem to run into everywhere lately), we had a group of about 40 people: five or six from Salesforce/Salesforce Foundation, five to six NP staff, and an assortment of Salesforce consultants. While I’m a consultant these days, I maintain a bit of a staff perspective, as my primary experience with Salesforce was to roll it out for SF Goodwill. The day consisted of breaking up into small teams and hammering out what works for our sector, what doesn’t, what could be done, and building all of this into a set of possible roadmaps that would address non-profit needs. The most striking thing about the outcome was that we had six groups design those roadmaps, and we largely all came up with the exact same things.

So, what are they?

Templates. In 2005, Salesforce developed a template for non-profits that everyone admits was pretty lame. Most of the consultants advised against using it. In 2006, Tucker MacLean, at the time a Fellow with the Foundation, redesigned it into something far more substantial – but still problematic, the problem being that non-profits are far too diverse in their structure and needs to fit a single template. The template in place transforms Salesforce into a donation management application. But I would argue that deploying Salesforce strictly as a fund development tool is short-sighted, and possibly disadvantageous when there are so many choices for software that is developed to that purpose, not twisted to it. The reason to deploy Salesforce is because it can handle the fund development and do so much more.

So, roadmap 1 is to move away from the one-size-fits-all template to something far more modular.

Road map 2 is around the community, or eco-system that supports the non-profit Salesforce adopters. And I think this is where the most meaningful changes can occur. This is about shared development—should NP Salesforce have an Appexchange of its own, one that acts more like Sourceforge? Can the consultant community adopt standards for how we deploy, and can Salesforce support us in any innovative ways? And can best practice, case studies, and non-profit specific training and documentation be collected in one place?

Third was the product itself, which I really don’t think non-profits can or should influence all that heavily. I don’t believe that our platform issues are unique. But we do want to see that new things (document management, Google Apps integration); we would really appreciate a customer portal and stronger ties to CMS’s and web sites, and stronger integration with our external applications.

What interests me is the dual need for this very open, malleable platform and the dire need non-profits have for out of the box functionality. Currently, Salesforce is a very worthwhile investment, but it’s not a light investment for a tech and cash strapped organization. The integrators working with it are frustrated by how much programming they have to do to support some very basic functionality.

But it says worlds that Salesforce is approaching this by inviting the community to advise them. This somewhat techy gathering will be followed up by a survey for the non-profit users at large. Ask yourself, how often does a large, corporate software company ask you directly to give input into their development? Or, if they do, do you think they actually listen? Once again, Salesforce is modeling an approach to doing business that has far more in common with the open source world than the for-profit. More on this later.

The future of Salesforce

I’m attending a strategic planning session at Salesforce.com this week devoted to planning the roadmap for non-profit use of the product. This should be an interesting event and an exciting opportunity to help steer one of the most exciting applications to hit the industry in some time. I remember walking through the exhibitor booth’s at the “Science Fair” during the 2005 NTEN Conference in Chicago and noting, in the corner, the guy with a shaved head standing at a small booth titled “Salesforce.com” and wondering what, on earth, he was doing there. Wasn’t Salesforce that corporate application used by all those people trying to sell me enterprise software? The next year, in Seattle, Salesforce was a key sponsor of the show, and the whole gang from the foundation was there. I was a lot more educated as to why, as well – in the interim, my former organization had signed up and I had started work deploying it.

Salesforce appeals to me because it lives up to many of the standards I look for in an online database:

  • It’s open. Any Salesforce customer can download their entire database into Excel pretty much at any time. There are no technical or contractual walls separating me from my information as a Salesforce customer.

  • It has a community around it extending, developing and integrating the product. While Salesforce is far from the only commercial application with such a community, it is far more analogous to the open source communities around applications like Joomla and Drupal than it is like their commercial counterparts. Salesforce has provided excellent forums and support, nurturing their partners in ways that most commercial developers are far too guarded to allow.

  • Sharing and philanthropy are part of the corporate ethic, fairly deeply ingrained. I like to joke that their stated policy of “one percent of people, product and profits goes back to the community” is not that big a deal, given that 100% of a non-profit’s revenues are recycled back into their missions, but the truth is that they do a lot more than just give away software, and I’m certain that it ends up being much more than 1%.

  • Salesforce is audacious and ambitious in all the right ways. They want to do away with your infrastructure and change the way that technology is deployed, and they are by far the most sophisticated example of how that can and should be done. And don’t ever mistake them for a CRM company just because that’s what they’ve primarily been – they’re a shard data and computing platform, and the next few years are going to see them break out of the CRM neighborhood into a new role as a data management middleware provider. Store your data and build your processes, they’ll handle the hardware.

Finally, in this era, when internet business is shaking up traditional business models in dramatic fashions—just ask the RIAA, or the telecoms, or your local newspaper’s classifieds editor—Salesforce is the disruptor in our community. Blackbaud, Kintera and Convio, along with the other established donation-based business support vendors, are all rapidly changing their models to more closely match the open approach. And Social Solutions and the case management crowd are well aware that they’re next. This bodes well for the customers.

I’ll be blogging from the conference (as allowed) and hope to spread exciting news.

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.