Archive for April, 2006

Integration, Vermont Style

Thursday, April 13th, 2006

Sonny Cloward has a great post about how his nonprofit has picked a handful of technology tools to get their work done. His situation is really interesting because:

  • He’s using “on-demand” technology tools–they’re hosted by someone else.
  • The tools focus on a core competency and don’t try to do everything
  • They are each smart enough to be able to talk to each other via web services

Because of this, Sonny is able to pull together a technology infrastrucutre that is based on tools that effectively do a single job, have them talk to each other through relatively simple integration pieces, and have it all be someone elses IT headache.

Once again, Sonny is blazing a trail (sharpen that machete, man!). I think he’s on to the path that we’ll all be going down in the next couple years.

Good Morning Baghdad!

Thursday, April 13th, 2006

I went into my Personal Setup today in Salesforce.com and got a surprise–my start and end of day times showed AM and PM in what appears to be Arabic script.

personal setup in Arabic

I looked in a client’s instance and it was there as well. Makes me want to have a nice hot cup of coffee brewed with cardamom.

Salesforce.com goes mobile

Tuesday, April 11th, 2006

Salesforce.com just purchased Sendia, a company that made sf.com accessible on Blackberry devices. I’ve seen this in action, and it’s really cool. Puts your sf.com instance on a handheld device, allows you to look up your contacts, record meeting notes, etc. Really slick.

Might this purchase by Salesforce.com open a donation pathway for our nonprofit customers? Don’t know yet. But I’m already thinking about how it could be used in community organizing, just in case it does…

dotproject data + Salesforce.com reports = visibility into consulting

Wednesday, April 5th, 2006

We use dotproject to help us manage our consulting projects. It’s an open source project management/time tracking system written in PHP/MySQL, that allows you to create projects with tasks for a customer, and then log time against those tasks. It works for us–there are a lot of things we wish were different. We’re not just griping–we gotten our hands dirty with lots of modifications, including major changes to a module called TimeCard to make entering time tracking data as pain free as possible. Overall, it’s a very good project, and I want to give props to the developers–we all use it every day.

In an act of faith, we’ve been diligently creating projects and entering our time against them for 2 years. I call it an act of faith because while we get benefits from using dotproject, we’ve got 2 years of project data that is basically invisible to analysis. We can’t get the data out easily, in a repeatable, customizable way. Because the thing with dotproject, as is the thing with a lot of complex database applictions, is that reporting is “suboptimal” (to quote my cousin Flora).

Reporting engines are hard to do well, so this is no surprise–I want to reiterate my props to the dotproject folks becasuse it’s been getting steadily better. But it’s not there yet.

I was getting pinged every week by our consulting lead to create this report, then that report, then another. It involved writing MySQL queries, creating PHP pages, etc. Not rocket science, but I’ve been the “report guy” before, and I didn’t want that role again!

So I decided to take a different approach. One weekend in March I spent about 12 hours on a proof of concept–could I bring our project data into Salesforce.com so that I could just point my consulting manager to the reporting engine and, even cooler, dashboards? Here are the steps I undertook:

  • Modeled a dotproject project as a custom object in Salesforce.com
  • Installed latest version of PHP on my desktop
  • Installed the salesforce.com API PHP toolkit on my desktop
  • Gave myself permissions to query the dotproject MySQL database
  • Took a hello world PHP/Salesforce.com app and the Project view PHP page in dotproject and started to merge them together
  • Hackety, hack, hack, hack.

That proof of concept is now a PHP script I run on a schedule that finds all the projects in dotproject and brings them in to Salesforce.com as read-only objects. The script does a few helpful things:

  • If a project already exists, the data is updated rather than having a new object created (using upsert method)
  • If the project is for a Customer in dotproject that doesn’t exist in Salesforce.com, an Account is created
  • Projects are related to Accounts, and our project lead (a Contact record)

My consulting lead and my executive director nealy wept when they saw the first Salesforce.com reports on project actual and budgeted amounts, which projects are over, which projects are at risk of going over, the project pipeline, etc. dotproject could show us some of this, but Salesforce.com aggregates data much better, and my consulting lead is off and running with it.

Two-way data syncing is cool, but don’t forget the power you can get from getting read-only visibility to data important to the mission of your organization. We’ve seen this with our dotproject integration, which is by all accounts an ugly hack that at the same time will significanly impact the way we work.

Eclipse, my new favorite editor

Tuesday, April 4th, 2006

Salesforce.com just built a plug-in to Eclipse, the open-source Java integrated development environment (IDE) to support S-Control development.

This tool, which I started using yesterday, has made my S-Control development much more productive. Wow, what a great way to work on S-Controls!

  • I get a live list of all my s-controls (separate list for each sf.com instance)
  • I can do live editing of all my s-controls (hit save and they are saved to sf.com)
  • Have S-Controls from different Salesforce.com instances open at the same time
  • No more keeping the s-control edit screen handy in a tab with contstant copy code from the IDE, find the s-control list in browser, browser back one page, select all code, paste new code, save s-control, navigate back to sf.com to test.
  • Nice formatting, code coloring, block indenting, etc.
  • They throw in a schema explorer as well, so you can look for field names, test SOQL queries, etc.

If you work on S-Controls at all, give it a shot–it seriously rocks. There’s a quick write up of how to install the plug-in over at Salesforce.com.