2 minutes on what drives me

January 16th, 2010

I want to live my life with autonomy, mastery, and purpose*.

Autonomy–the freedom to act and decide my own direction.

Mastery–excelling at whatever I choose to do.

and Purpose–the why behind my actions.

My purpose in life is driven by a great love for people, and a desire for them to be powerful in their lives.

What is power? Power is the ability to make change, to accomplish things, to be proficient, to have a say.

When you have power, you are confident, you get things done, you can unleash your creativity in solving problems. Powerful people make change for themselves and others.

My purpose is to help others find their power. This applies to all people–

  • I want all people to have a voice in decisions that affect them
  • I want people to unleash their creativity in service of solutions that improve the world
  • I want my children to grow up to be independent/free-thinking adults
  • I want the opportunity for all people to live a life of autonomy, mastery, and purpose

The work I do supports this purpose, and I am always looking for ways to push my impact deeper and broader.

*Be sure to check out Dan Pink’s talk on motivation.

An Introduction to Exception Handling in Apex

January 12th, 2010

I was privileged to get to write an article for DeveloperForce.com on exception handling in Apex. I wrote this article not from the perspective of an expert on the subject, but as someone who really wanted to learn more about my options for using exception handling in my Apex code.

I’ve always had a nagging feeling that I wasn’t following best practices in my exception handling in Apex. In most cases I wasn’t doing any exception handling at all. I decided to write up what I have learned about error handling on the Force.com platform so that others could jump into it full-bore, and make their programs more robust and fault tolerant.

I hope it’s helpful to Apex programmers out there. Let me know what you think!

I’m going to Rwanda

December 29th, 2009

Today I got confirmation of some great news–in February I’ll be going to Rwanda for a week to help install an open source medical records system at a rural health clinic! I’ll be going with Lucky Gunasekara and meeting with Partners in Health.

I’m really excited to work with Lucky! This project will be amazing, and Lucky has a longer-term vision. He wants to answer the question: does cloud computing have a role in health systems in rural Africa? He’s planning some really interesting efforts in Kenya later this year. In time, I think Salesforce.com can be a boon in rural Africa, and I’m really interested to start the work to figure out if that time is now, soon, or farther down the road. I see this trip as a great first step on that path.

When I started working with Salesforce.com five years ago, I felt part of my role was to go down the path of trying to deeply customize the platform for nonprofits, and then to report on that experience, warts and all. I really enjoyed that work, and I hope to do similar work and storytelling around Salesforce.com in parts of the world where people assume the cloud can’t work.

But most of all, I’m really excited to have all my assumptions and expectations blown out of the water! I can’t wait to walk the roads, meet folks, and most of all listen and learn. I will be arriving with no answers, and I don’t expect to leave with any. For me, it’s all about getting to the right questions. There will be so much to take in, to start orienting myself to this new set of challenges.

Only just a week ago a friend pointed me to this piece by David Brancaccio on Partners In Health’s work in Rwanda. I was floored by the outcomes they are getting, and the thoughtful design of the community health program. I recommend watching it–it’s amazing.

So many times people look to technology as a savior. That never works in my estimation–human systems are how problems are solved. Technology can augment and transform those solutions, but it isn’t the answer. I’m incredibly excited by what’s already working in Rwanda, and am fired up to start thinking about how technology can help extend that impact.

I watched this video and emailed the link to a friend of mine with the message, “this is the work I want to do with my life–helping people build community-based systems that really work.” Four days later I got an email from Lucky inviting me to Rwanda, to the very region where that video was filmed. Serendipity is a fabulous thing!

Ahh! I’m going to Rwanda! I still can’t really believe it. It all feels so fast and so amazingly exciting. Of course I’ll be writing about the experience, as well as taking tons of pictures and videos. So much to do to prepare!

The greatest

December 23rd, 2009

Believe that with your feelings and your work you are taking part in the greatest; the more strongly you cultivate this belief, the more will reality and the world go forth from it.

- Rilke

A great job opportunity

December 11th, 2009

Groundwire is an organization near and dear to my heart. I spent many wonderful years there back when it went by the name ONE/Northwest. My Salesforce-related career got it’s start there. Some of my most cherished relationships began there. And I was given the space and encouragement to grow exponentially as a person, technologist, and agent of change. I look back on those years very fondly–the work, the nonprofits we worked with, but most importantly the people.

Groundwire is looking for a top-notch CRM Consultant. Opportunities to join this amazing team are rare. If you are at all interested in using your Salesforce.com skills to make a difference in this world, you should follow up with Groundwire and make sure you don’t miss this chance.

Ramping up on Africa

December 10th, 2009

A few weeks ago I felt a change in the force that drives me to do my work. It was a good and welcome change, one of renewed energy and focus. I wrote about how Africa has leapt back to the forefront of my mind, back to a position of prominence it held long ago. I have much to learn and catch up on as try to get reconnected to Africa. It’s an exciting time!

I’ve started connecting with interesting NGOs and entrepreneurs working in Africa. Through my contacts at work, I’ve been learning about some of the work being done in some of the countries in Africa. These conversations have been very interesting and helpful. I wrote a bit a while back about the cloud and the stack of infrastructure it relies on. This resetting of the landscape is an excellent process to undergo for me. It’s a process of understanding new constraints. Feeling out those constraints is key to critically thinking and solving problems. Knowledge workers who don’t understand the constraints they work under are doomed to come up with solutions that will not work.

And it’s been amazing to know those constraints but to keep in mind that boxes need to be broken out of. While constraints make you think creatively, blindly accepting those constraints is unacceptable if we want to bring about transformative change. Last week I changed my status message on IM from “constraints breed creativity” to “constraints are for suckers” to try to get at this duality. Understand, but do not accept the binds you feel!

A great place to get grounded in some of the newest thinking about Africa is to watch Africa-themed TED talks. So many of these talks are mind-blowing. In 2007, TED Global went to Tanzania and there are many amazing talks from that conference. If you’ve ever talked with me for more than 20 minutes, I’ve probably recommended a TED talk to you. I recommend watching them all! Stories about leadership, entrepreneurship, the economy, banking, the list goes on.

I’ve found a great way to follow what’s going on in Africa is to find the amazing folks on Twitter interested in the topics. I’ve created a list of Africa-related Twitter accounts I follow. Many are technology related, but not all. Feel free to peruse or follow the list if you want daily info on what’s happening in Africa from some amazing people.

Following Twitter will point you to all these blogs eventually. They’re all great:

Deep article about Ominfocus for GTD

December 9th, 2009

Ryan Norbauer just published a really deep article about one of my favorite pieces of software, Omnifocus. It’s a great tutorial on how to use the program, but I think it’s real value is as a description of what Getting Things Done (GTD) really is.

The great achievement of David Allen’s framework has more to do with relieving stress about work than organizing your lists, a fact that is seemingly lost on most of the GTD-professing masses who spend all day twittering about lifehacks and Moleskine list-management. GTD is about psychology, not “productivity” per se. Moreover, the system pays most of its psychological benefits when it’s implemented fully, and I mean really nitty-gritty, every-little-thing-in-your-head fully. The difference between 99% and 100% implementation is truly vast, as anyone who has made it to 100% readily attests (David himself included).

Add a Donor Status Funnel to the Nonprofit Starter Pack

December 9th, 2009

donorstatusfunnelThe vision of the Nonprofit Starter Pack has always been that it would be a starting place for nonprofits. It’s not a “application” so much as it’s a “platform.” We’ve tried to architect it in a way that gives some immediate benefit, while not precluding the change and extension that I feel is necessary for successful use. In that spirit, I want to show how to add some donor segmentation you might find interesting if you’re using the One-to-one Account model.

The image on the right is from a Dashboard showing all Contacts in an instance with the Nonprofit Starter Pack installed. All Contacts have been categorized by something called “Donor Status.” We’re looking at their giving and putting them in one of four categories–never a donor, a donor previous to last year, a donor last year, or a donor this year. Here’s how I created it.

First, we need to have 2 rollup summary fields on Account that calculate the Opportunity values over this year and last year. You could also add a third rollup to get the value from two years back:

  • Total Giving Year To Date – (Won EQUALS true) AND (Close Date GREATER THAN 12/31/2008) AND (Close Date LESS THAN 1/1/2010)
  • Total Giving Last Year – (Won EQUALS true) AND (Close Date GREATER THAN 12/31/2007) AND (Close Date LESS THAN 1/1/2009)
  • Total Giving 2 Years Previous – (Won EQUALS true) AND (Close Date GREATER THAN 12/31/2006) AND (Close Date LESS THAN 1/1/2008)

These dates need to be hard-coded for the rollup summaries to work. On Jan 1, you’ll need to add a year to all the dates. Don’t worry, all the rollups will then recalculate for you.

Now you want to show these Account fields on the Contact. Create three formulas that just show the Account field value:

  • YTD Giving Total – Account.Total_Giving_Year_To_Date__c
  • Last Year Giving Total – Account.Total_Giving_Last_Year__c
  • 2 Years Previous Giving Total – Account.Total_Giving_2_Years_Previous__c

Once you have these summary values, you can use them in another Formula, our Donor Status formula:

IF( npe01__Lifetime_Giving_History_Amount__c >0, IF( YTD_Giving_Total__c =0, IF( Previous_Year_Giving_Total__c =0, "2. SYBUNT" , "3. LYBUNT") , "4. Current Donor") , "1. Not Donor")

Note that the npe01__Lifetime_Giving_History_Amount__c field is included in the Nonprofit Starter Pack. The others are fields you just created, so make sure the names match.

Now that you’ve got the formula field built, create a Contact and Organizations report that takes all Contacts and groups by Donor Status. Variations on this report can easily be used to send a letter to everyone who gave in the past but not this year. Once you save this report, you can build a funnel dashboard based on it and you’re done! You’ve now segmented your donors based on when they last gave.

Questions and Actions

December 6th, 2009

Jack Ricchiuto has an amazing essay on working beyond goals and plans. His articulation of opportunistic action in a dynamic world resonates with me at the deepest levels. I wrote earlier about how to act now in service of long-term goals, and I find that Jack has summed up everything I was trying to say much more eloquently. Here’s a passage I love, but please go read the entire essay. Thanks to Jodie for passing this on!

New questions are more powerful than plans because they cause us to learn what’s possible rather than presume what’s possible. Learning is the opposite of presumption. Questions lead us to discover clear and passionate vision and notice changes in our world.

Plans create a version of the world that becomes increasingly inaccurate and invalid in a dynamic world. Questions on the other hand make us both more proactive and agile than we would be trying to follow static plans in dynamic environments. They cause us to follow the actual changing landscape of the world rather than a static version of it.

New actions are more powerful than goals because they cause us to do whatever we can to realize our vision of what we want to create as possible. When we commit to any action, we commit to it as long as it’s realizing our vision of what we want to see possible.

The expansiveness of action is the opposite of the constraint of plans. When we act on our new actions, we often discover that it is possible to find ways to realize our questions beyond the limits defined by our plans. Actions are never predefined in the ways that plans predefine us.

Movement

December 3rd, 2009

Ideas are not enough for me.
Cast me in with the tinkers, the makers, the creators of things.
Revel in all their dented, half-functional glory!
For it is only through action that this world will change.

By making, by trying, we move–we learn
what works and what does not.
On this kinetic path lies the world we make
and remake daily, never satisfied,
always moving.

Gokubi.com is written by me, Steve Andersen

I'm a Solutions Architect at Salesforce.com Foundation helping nonprofits use Salesforce.com to change the world. I've been working with Salesforce.com since 2005 and working with nonprofits since 2001. We're at a point in time where agents of social change can get access to the same quality technology systems that large corporations can. I do what I do because I want to help people take advantage of this amazing opportunity.