Archive for November, 2005

Web development is like Triathlon

Tuesday, November 29th, 2005

If you are a triathlete, a key question to ask yourself early in the training season is this: “What is my weakest sport?” Whether you answer running, biking, or swimming, the experts say the biggest gains can be made by focusing your training efforts there.

In modern web development using web standards you have to ask yourself: “Which web standard is your weakest sport?” There are more than three “sports” of web standards but XML, Cascading Style Sheets (CSS), the Document Object Model (DOM), and Javascript are the big ones. I’ve been passable at XML and CSS for a long time now, and am currently reminding myself just how weak I am in Javascript and the DOM. If those technologies were swimming, I’d be dog paddling in about 4 feet of water with the Salesforce.com AJAX toolkit around my neck.

But I’m pretty sure the future is going to lean heavily on these technologies, and as Roger Johansson says, a web professional can never stop learning.

On-demand Applications: a quick primer

Tuesday, November 29th, 2005

If you spend any time at Salesforce.com’s website you’ll quickly realize that “on-demand” is their favoite adjective when describing their CRM system. What do they mean when they say “on-demand”, and is that a good thing for CRM?

First, some history.

Long ago, software applications ran primarily on computers the size of a Volkswagen, in the basement of some university. You could use that software only by sitting next to that VW. As computing got more popular, the line outside that basement was getting quite long. Terminals were invented so you could access that computer from elsewhere. These terminals were really not much more than a screen and keyboard, and could only connect to the big computer. You didn’t have to wait in line outside the basement anymore, but had to rely on that central computer.

Then personal comupters (PCs) came along. You could have a computer on your desk, and run software on it. Revolutionary. The effects were manifold. There was an explosion of access to computing power which grew hand in hand with an explosion of software to be run on those PCs. More PCs brought about more applications which made the PCs more useful–a clasic postitive feedback loop.

Another massive impact of all these new PCs was an exponential increase of system administration duties. In just a few decades, we went from a handful of computers requiring installation, maintainance, software installs, and upgrading, to millions of PCs requiring the exact same things. The world was drowning in system administration tasks.

With the maturing of the Internet, on-demand applications became a way to deal with that systems administration overhead that was slowly eroding our will to live. Applications could be housed centrally, and accessed by browsers, which were relative simple pieces of software. All system administration tasks could be handled by the smart geeks in the central location, freeing up end users to do the work they are actually paid for. Any similarity of this model to the old VW computing model is purely coincidental, I assure you.

Salesforce.com brought this new (old) model to CRM, and is the current leader at it. They’ve got 15,000 companies who’ve bought in to on-demand CRM. Will it work for you? Let’s quickly go over the rewards and risks of on-demand for CRM:

Rewards of on-demand applications

  • You CRM software is available from anywhere the Internet reaches: your office, Bangladesh, your PDA, and you local public library.
  • No need to buy a server, maintain a server, find someone with the skills to tell you what a server is.
  • Upgrades just happen. The software gets better without you having to worry about it.
  • Backups and worries about power going out are someone elses headache.
  • Total cost of ownership is often less than installing software on your computer.

Risks of on-demand applications

  • Your sensitive data lives in a data center somewhere. You may not even be sure if it’s in California or Virginia.
  • In our infinite American wisdom, we have the USA PATRIOT Act which can compel hosters of on-demand applications to give your sensitive data to our government
  • You have to trust the hoster of the on-demand application to correctly handle your data, backups, and upgrades. If they screw that stuff up, it could be really bad.
  • If the Internet isn’t available, your data isn’t either.
  • It’s like your phone service–if you stop paying your bill, they cut your line.
  • If the company goes away (i.e. bankruptcy, earthquake) you have to go find a new one. And quick.

On-demand applications is on the rise, and is a very interesting model. If you’re considering using on-demand applications, you should carefully think about them and determine if the rewards outweigh the risks for you. Salesforce.com leverages the on-demand model for CRM and does it better than anyone I’ve seen (and there are plenty of others out there). You too can leverage the new power of CRM in the on-demand model if you think the rewards outweigh the risks.

Transatlantic Thank You

Wednesday, November 23rd, 2005

I was finishing up a CRM proposal to send to a potential client today. The final step was to convert the Microsoft Word doucment into a PDF document. PDF’s are great for official communications like proposals like scopes because they are baiscally snapshots of a document that will look exactly as you intend them to look. Word sure can’t promise that, what with all the different versions out there. One of my colleagues opened up my proposal in it’s Word doc form on his Mac and saw a couple pages repeated for no reason. This platform-version weirdness just doesn’t happen with PDFs.

There is a great open source utility for creating PDFs called PDFCreator. When installed, it pretends to be a printer, so any application can print PDFs–PDFCreator doesn’t even have to know of the existence of the application. A really smart solution for creating PDFs–much better than any of the offerings from Adobe, I might add…

As I gleefully saved my Doc to PDF, I realized I really liked having this utility around, and that it has definitely made my life easier. Before I knew it, I fired up my browser and dropped 10 euros into the PayPal account of the German guy who built the thing.

I love the idea of open source software development. I want it to live on. The least I can do is send some digital greenbacks to a German programmer who makes my proposals look nice.

Penn Jillette: There is no God

Wednesday, November 23rd, 2005

There’s a cool piece over at NPR written by the prestidigitator/comedian Penn Jillette outlining his non-religious philosophy. It’s a really interesting take on a suject that is pretty much taboo in our society–openly challenging the existence of God.

There’s a lot to be said for this outlook on life:

Believing there’s no God means I can’t really be forgiven except by kindness and faulty memories. That’s good; it makes me want to be more thoughtful. I have to try to treat people right the first time around.

I’ve often thought it’s an easy out to rely on uncoditional forgiveness after the game is over. We should be more concerned about our interactions with each other, and look carefully at how we affect the lives of other humans.

Believing there is no God means the suffering I’ve seen in my family, and indeed all the suffering in the world, isn’t caused by an omniscient, omnipresent, omnipotent force that isn’t bothered to help or is just testing us, but rather something we all may be able to help others with in the future. No God means the possibility of less suffering in the future.

Amen Brother! What a great example of a non-believer’s philosophy that is truly moral. Leave it to Penn to surprise us with that gem.

Without futher ado…

Tuesday, November 22nd, 2005

So all that process got me to the decision to use Salesforce.com for CRM consulting.

Huh? Salesforce.com? What the…well, here’s the transcript:

Me: So we’ve chosen Salesforce.com as our CRM platform. Any questions?

Helen Thomas: Isn’t Salesforce.com a CRM tool for corporations? Why would you choose a platform like this over ones that are more clearly suited to the unique needs of nonprofits? I looked at it online and it sure doesn’t seem like a fit.

Me: That’s a great question, Helen. First let me say that there are a number of platforms out there that allow nonprofits to manage donors and other constituents. These are good products that target the specific needs of nonprofits well. In our search for a platform we realized that those platforms didn’t meet our requirements for a platform. In short, they lacked the flexibility that we need in a platform.

Helen Thomas: Flexibility can mean anything. Could you make some substantive comments on the matter?

Me: Well, I won’t comment on an ongoing platform selection process. But I will say this: Salesforce.com is an enterprise software application that has been built specificially to tackle a wide range of business models. This is what I mean by flexibility–they have constructed it not to address our specific nonprofit needs, but as a framework that can be modified to meet all sorts of unknown needs.

Helen Thomas: Does it handle donations? Householding? Soft credits? Membership? Planned giving? Thank you letters?

Me: It can do all that. Some things better than others right now. Householding is a bit of a workaround. But that’s the wrong term. Most things are a workaround, because that’s the nature of a flexible framework–you create your own way to solve problems. So, Householding is less than ideal workflow. Soft credits are handled really well. Donations are easily handled, and you can do future forecasting, and moves management. Membership is easy, planned giving is a bit harder. Thank you letters are very, very slick using 2 click mail merging with Word.

Salesforce.com doesn’t do a great job showing nonprofits that it’s a fit. They have a nonprofit demo that you can see. Go to Salesforce.com and log in with user: demo@501c3.org password: nonprofittemplate. That will give you a better sense that it can meet the needs of nonprofits. We’re starting to think about what we can to do help nonprofits make an informed decision about Salesforcec.com. More on that later.

Helen Thomas: Isn’t the whole point with nonprofits is that we don’t want everyone to keep reinventing the wheel? A flexible framework implies that you start with a blank slate and you have to create these workflows. That sounds like a step backward.

Me: CRM always has to be customized. Anyone who claims they can give you a CRM that will meet your needs without customization should not be believed, much less used as a confidential source for front page New York Times articles. Salesforce.com requires the customizations we’ve talked about to work well for a nonprofit. Once we make those customizations, we add them to our bag of tricks. Next time a nonprofit comes along and says, “I need an annual membership cycle,” we can implement it very quickly for them. And we’ll share our bag of tricks with anyone who wants to use it.

Helen Thomas: Moving to the topic of cost. Is this expensive? What are the ongoing costs for a nonprofit?

Me: In the cost area, I’m going to give you some figures that are estimates. These should not be construed as hard budget numbers. But let me give you ballpark. Cost to set up Salesforce.com for a nonprofit will probably range between $4,000 and $8,000 depending on a number of factors. This includes our sitting down with a nonprofit and helping them identify the work that they do and how that fits into a databse. Membership cycles, donor management process, mass communications, event management, and volunteer managment are all examples of work that might need to be fit into Salesforce.com. We’ll help the nonprofit decide the best way to make sure all the work around each process is supported by the CRM system. After that, we’ll customize Salesforce.com to match those needs. Then, we’ll get data from the many sources where it now lives (donor managment system, Outlook, Excel spreadsheets, etc.) and put it into Salesforce.com. Then we’ll train the nonprofit to use the system with specific focus on completing the tasks we identified earlier.

So that’s the setup cost. Ongoing cost is nothing a month. $0. Salesforce.com donates 10 user licenses to just about any group with a charitable purpose. It’s an amazing donation program. The retail value of a 10 user donation is $15,000/year, and they’ve currently given to at least 400 nonprofits.

Helen Thomas: What about IT costs? Enterprise applications are hard for nonprofits to support.

Me: That’s the beauty of Salesforce.com–it’s hosted. There are no IT costs associated with the platform. You just have to be able to administrative duties like adding users, resetting passwords and the like. You can even add fields and change drop down lists. One area where many nonprofits struggle is in generating the reports they need from their data. Salesforce.com has a reporting wizard that allows groups to easily create reports, eliminating the need for a programmer to create reports for you. If you ever want to make significant changes to the system, you may have to hire a consultant to help out.

Helen Thomas: So it’s a patronage model. And you’re asking nonprofits to put their most sensative data in the hands of a corporation who, as well intentioned as they may be, could end the donation program anytime they choose. Isn’t that irresponsible?

Me: Helen, I think you’re selling nonprofits short–that’s a decision that each nonprofit is more than capable to make for itself. The donation program is renewable every 12 months, and yes, Salesforce.com can end the donation at any time. To date, they have never turned down a renewal request from a nonprofit customer. But as they say, past performance is not an indication of future gain–nonprofits need to be aware of the risks associated with the program, and make a decision to use or not use Salesforce.com in an informed way. Like I said, we’re working on making that as easy as possible.

Helen Thomas: That’s a pretty big drawback of the platform. In a recent article you said you were looking for an “open source platform on which to build a movement”. How do you reconcile that desire with this choice of a proprietary platform at the whim of Salesforce.com?

Me: Well, first I’d like to say that Salesforce.com is a leader in corporate philanthropy. It is very rare that a corporation will donate a service. They are often happy to donate products, which have very little cost associated with them. But services are expensive to provide. I am confident that Salesforce.com is committed to continuing this donation into the future. Of course, I can’t guaranteed that.

On your second point, about movement building, you’re right. This choice doesn’t give us the technology platform that we are looking for on which to build the movement. That technology platform doesn’t exist yet, someday it will be there (we’ve got our eye on some platforms that could evolve to become The One), but today it’s not there yet. We’ll keep looking for that platform, and even try to help it come into existence.

Salesforce.com is ready for prime time. It’s a great application, that is very usable. Getting nonprofits using Salesforce.com right now does something that I will argue is at least as important as finding the right platform–it will allow nonprofits to change the way they work, and become more customer-centric. Salesforce.com as CRM will support changing the way the movement works, to becoming more of service to our constituents. When the right platform comes around, we’ll have groups that are effective at constituent engagment, and used to the boost that good technology can give them. I’m really excited for that day to come, and excited to make this step along that path.

SugarCRM not as sweet as it looks

Thursday, November 17th, 2005

When I was looking at CRM platforms, I got very interested in SugarCRM early this summer. It’s an open source CRM platform. It’s a core set of functionality that can be extended to do nonprofit specific things. It has a growing business following, and a developer community. Sounds great, doesn’t it?

Then I dug a bit deeper into what you actually get when you download the open source version:

Shoot, it’s Crippleware

The open souce version of the software has no reporting capability. To run and save reports, you have to purchase a per seat licenses of SugarCRM Professional. But who needs reports, right? It’s like a word processor without a save button.

The “open source” Licenses Stink

Some interesting aspects of their licensing:

  • If you modify the open source version, you have to put their “Powered by SugarCRM” logo on every page
  • You also have to put their current copyright notice on every page, changing it whenever they decide to change it. If you modify the software and burn a CD, you can’t distribute that CD if the copyright notice changes.
  • If you pay for Professional, any code changes you make can only be used internally to your company. You can’t distribute your work.

So, in short, it’s a lousy deal for anyone looking for a platform on which to build a movement. The core functions aren’t included in the free version. We can’t “own” the paid version, and we couldn’t build on it and distribute our work. So, it came off the table in the search for the perfect CRM platform.

Picking a Software Platform 4: Bringing it Home

Thursday, November 17th, 2005
When I started here in June, I was tasked with picking a software platform for database implementations. Fairly early, I convened a bunch of staff here who had made platform decisions in the past, and picked their brains. It was a very fruitful, and helped us to identify the discrete thoughts that go through our minds when picking a software platform. This is Part 4 of a series of posts dedicated to this topic. (Part 1, Part 2, Part 3).

Well, if you read any of that, you realize that it’s a pretty analytical process (yawn). However technical, application platform selection is an important process for us–our work, the well being of our customers, and the strength of the environmental movement depends upon on it. The Guiding Principles, rooted in our constraints and our mission, help us make sound choices. We believe that by choosing wisely, we can be of service to the environmental movement while serving our customers’ pressing short-term needs. Application platform selection may seem a mundane task, but we believe it shapes the impact we can have with our customers, and through them, the overall ability of the movement to affect change for the better.

OK, I’m glad I got that off my chest!

Picking a Software Platform 3: Broader Concerns

Wednesday, November 16th, 2005
When I started here in June, I was tasked with picking a software platform for database implementations. Fairly early, I convened a bunch of staff here who had made platform decisions in the past, and picked their brains. It was a very fruitful, and helped us to identify the discrete thoughts that go through our minds when picking a software platform. This is Part 3 of a series of posts dedicated to this topic. (Part 1, Part 2, Part 4).

Our customers are wise to focus on their immediate needs, and we work with them to build solutions to address those concerns. During a consulting project, our customer’s concerns are foremost in our minds. In the back of our minds, however, we are always thinking beyond the current project. We constantly think about how we can have the most impact in the broad environmental movement. It’s a mind set that underlies all the work we do, and directly affects our selection of application platforms.

We Select Platforms that are Viable in the Long-term

When we work with a customer on a application platform, we’d like that platform to meet the needs of the customer for at least a few years. Changing platforms is expensive, and our customers’ financial constraints cause us to be very interested in a platform that will stay around. While it’s impossible to see the future, we do our best to pick platforms that will be around for the long haul. We look for platforms that:

Don’t require us to push them to their limits
We like complex and robust platforms that are customizable and extensible, and don’t get limit what we can do.
Follow accepted standards
Standards are “future proof”–they are very likely to be supported further into the future than nonstandard software.
Support integration with other platforms
There is potential benefit for customers in connecting their internal data sources (i.e. having an email list manager share data with a donor management system). We look for platforms that support this kind of interoperability.
Are using current or forward-looking technology
Technology moves very quickly–best to get in on the upswing of the curve.

While a platform could be around for years, without a viable community to support it and move it forward, it will stagnate. In assessing a software platform, we look for communities that:

Show high levels of software development on the platform
Stagnant software platforms are not viable in the long term.
Show popular use of the platform
The more people that are wedded to a platform, the more likely it’s ongoing existence will be.
Have viable businesses built around the platform, especially hosting services
Businesses built around a platform show a critical mass of use, and can be resources for platform related services and support.
Publish books and hold conferences on the platform
If presses are willing to publish, and people are willing to travel, the platform has a critical mass of support.
Built with software languages and subplatforms that are popular and viable
Platforms are built on top of languages, operating systems, and databases. If those components are sound and popular, there is a greater likely hood of viability for the platform.

As described above, as integrators we work with software written by other people. That means that others hold the future of the platform in their hands. We try to assess the future viability of the holders of the software by looking for:

Open, two-way communication
We love software developers that take feedback and communicate about where they are taking the platform.
A willingness to not only hear our feedback but change the software based on our input
As you may have guessed, we have a lot of ideas, and like when people listen to us!
A commitment to sharing
Either the source code itself, best practices around the platform, API’s, and documentation
Reassurance that the software creators will continue to make the platform available
Whether it be a software license, or a strong business model, we look for indicators that our access to the platform won’t be reduced in the future.

All of these things are indicators to the viability of a platform over the long haul. Viability in the long term is a very hard thing to judge in our rapidly changing technological world, and is the most difficult part of platform selection.

We Select Platforms that will be Building Blocks for Strengthening the Movement

Many organizations have fragmented internal systems–silos of infomation with unrealized potential to work together, increasing the organization’s effectiveness. Analagously, we believe that the environmental movement suffers in a state of fragmentation–there is great opportunity if the movement can come together and present a more unified front to the public. Technology can play an important supporting role in these movement-strengthening collaborations. We select platforms on the criteia they will be good building blocks for this kind of work in our movement. Some key attributes are:

The ability to talk to other systems
Information is most powerful when it is connected to information from other systems.
Web Awareness
The communication link connecting all parts of the environmental movement–be it staff, the public, or government agencies–is the Internet. The opportunity inherent in that connectivity is enormous, and has become more and more clear over the past 10 years.
Adherence to Open, Common Standards
HTTP, XML, SOAP, SQL, CSS are the current lingua franca of the technology environment. They make it possible for systems to communicate.
Open Source Licensing of the Platform
There is nothing as secure as ownership, and with Open Source software, the movement can own the platform. The security of knowing that a platform will always be available allows us to rely on it as a core component of the movement. The movement can then build competencies based on that building block without fear of losing that investment.
Support for Replication
We never want to do one-off projects. We seek to leverage our efforts for future customers down the road and look for platforms that make future implementations more efficient than the first. That way, we can serve more customers in less time, thereby having greater impact.

We believe the greatest opportunity for strengthening the environmental movement lies in coalition building, sharing of information, and working together. We seek platforms that will not hinder the movement’s journey along this path. The ability to speak to other systems in common and open formats is critical to the linking of our fragmented movement. Building these communication links in efficient ways on Open Source platforms is the most responsible way for us to support the strengthening the environmental movement.

We Select Platforms that don’t Rely on us for Survival

Our two constraints of limited resources and our desire for good outcomes for our customers both play into this Guiding Principle. We build enduring and deep relationships with our customers, but we also want our customers to be independent of relying on us for ongoing support. We’d rather put our limited resources toward innovation and projects that will build on our investments, increasing the power of the movement. To make this possible, we look for platforms that:

Have options for hosting
Multiple providers who can provide ongoing hosting frees us up to focus only on implementation.
Have multiple entities providing consulting services
If our limited resources make it impossible for us to support new development on an existing project, our customer has other resources they can turn to for help.We would hate for our limited time to stand in the way of a customer’s needs.
Have a strong community of users
Outside of consulting services, it is very beneficial to have other users using the same platform.

Ensuring our customers don’t rely on us for ongoing support after our project work with them is complete allows us to be ready to help them with their next, more complicated project. This model lets us work within our constraints, have the greatest impact for the movement, and ensure our customers are well taken care of.

The Numbers of Bike Commuting

Tuesday, November 15th, 2005

I’ve been biking to work every day since I took my new job in June. Some numbers:

  • Miles ridden to work: 1100
  • Gallons of fuel saved: 30
  • Fuel and parking costs saved: $640
  • Pounds of raw soy bean plants saved because I’m not driving my Biodiesel car: 2280
  • Calories burned while commuting: 53,900
  • Number of Quarter Pounder w/ Cheeses I could eat to recover those calories: 108

Picking A Software Platform 2: The Immediate Concers of our Customers

Tuesday, November 15th, 2005
When I started here in June, I was tasked with picking a software platform for database implementations. Fairly early I convened a bunch of staff here who had made platform decisions in the past, and picked their brains. It was a very fruitful and helped us to identify the discrete thoughts that go through our minds when picking a software platform. This is Part 2 of a series of posts dedicated to this topic (Part 1, Part 3, Part 4).

Our customers have two overriding concerns they bring to the table when we discuss a new project–they want solutions that will help them address their current problems, and they want them as inexpensively, and unobtrusively as possible. Our first two Guiding Principles help us to select platforms that will meet these concerns.

Customers Want High Quality Solutions that are Functional, and Easy to Use

In selecting platforms, we choose software that will meet the functional needs of our customers–working inside the constraint of their project needs. To that end, we look for:

A strong list of core features that adequately covers the known list of need
We look for platforms that have robust feature sets targeted at the problems we’re trying to solve
Stability, high-performance, and scalability of the platform
We like platforms that are of general high quality–they don’t crash or have mysterious problems
A low number of bugs and process for handling them
No software is bug-free, and how developers deal with bugs is a great indication of how responsive they will be to us in the future
Built-in support for customizations
We want platforms that are designed to be modified, make customization easy, and don’t break our customizations when the platform is upgraded
Application Programming Interfaces (API’s)
The existence of API’s is an indirect indicator of software quality and the ability to customize it
Thorough, up-to-date technical documentation
It is best when knowledge is not solely inside developers’ heads, but captured in a shareable format

Because our customers have limited technical resources on staff, we aim to select platforms that are very easy for them to use in getting the job done. Key indicators supporting that need are:

A non-technical user interface that is easy to understand and navigate
Good usability can make all the difference in the use of software
The ability of users to successfully operate the software without formal training
Easy and quick uptake by users, and low hurdle for training new staff
The existence of self-help materials, and good user documentation
An indication things are thought through and great free resources

Quality software, with good functionality, that is easy to use for the end user is the holy grail in platform selection. We often find ourselves making tradeoffs among the points above.

Customers Want Solutions that are Low Cost

Cost is an overriding constraint with most of our customers.

Low total cost of ownership (TCO)
We seek platforms with low acquisition costs, and low ongoing costs.
Possibilities for cost reduction
When there are costs associated with with solutions, we look for ways to minimize them

TCO is often a multivariate calculation–acquisition, implementation, hosting, and support costs. It’s often difficult to assess the TCO of a platform without in-depth analysis–something we undertake with each platform selection.