Wednesday
Jan042012

Proud to a Part of the Salesforce MVP Program

Today I found out some great news, that I was invited to return for a second stint of the Salesforce community MVP program!  The point of this blog is not to toot my horn, but instead put the focus on what is so great - the Salesforce community.

They have been working dilligently to round up mavens such as myself and get us together in productive ways.  We help other Salesforce users out and serve as brand ambassadors.  If you follow me on Twitter (@DarthGarry), you might see the recurring theme.  And as a favor back to us, we get access to product experts at Salesforce and primo seating at events.  

So what does this mean to you?  Well, a few things.

#1 - Anyone can become an MVP.  I don't know the formula but it is based on a system of nominations and Salesforce reviewing social media engagement metrics.  Go out, make friends, and help people.  It won't go unnoticed.

#2 - If you're not already, you should engage with as many MVPs as possible.  When you need a hand, seek us out.  We're a group of product experts and overall nice people.  If we don't know an answer, we usually know how to find it.

And, here are a few Salesforce MVP related resources:

The Master list of all MVPs and their Twitter information - https://twitter.com/#!/salesforce/community-mvps/members

General overview of the MVP program - http://www.salesforce.com/mvp/

Thanks to my fellow MVPs for making this experience so fun and rewarding.  Thanks to Salesforce for tapping into all of this energy and making a great program out of it.  Also, thanks to Erica Kuhl, the Salesforce Community manager.

Garry

Tuesday
Dec272011

Red Argyle Accepted into the Harvest New Founders Program

One of our core philosophies at Red Argyle is that we eschew hardware.  We want to run our business in the cloud from A to Z.  We sell cloud technology, and we use cloud technology in all aspects of our company.  We needed a solution for our billing system.  It had to be easy to use, affordable, and cloud based.  Our search led us to an application called Harvest.

We love Harvest.  For those of you who that are unfamiliar with the product, it is cloud based time and expense tracking application designed for small businesses.  It's got a great UI, works great on our iPhones and, to put it simply, it just works.  Upon subscribing, we had the system working for us within minutes, and it now fulfills a core business need for us flawlessly. 

Last week Tom and I got a great piece of news.  We hard from Harvest and found out that we had been accepted into the "New Founders Program".  This program is a grant given once a month to businesses founded within the past year, that meet certain criteria for innovation.  It's Harvest's way of saying that they support small businesses and includes a 1 year subscription to their service.

So, it may be a small thing, but it greatly appreciated by us.  It's another piece of validation that we are heading in the right direction as a company and people are starting to notice.  

For more information on Harvest's Awesomeness, look here:  http://www.getharvest.com.  The New Founders' program is listed here:  http://www.getharvest.com/newfounders

I'll wrap up this post saying thanks to the great folks at Harvest for creating an excellent product, and for giving back to small businesses.

Thursday
Dec152011

Soul Cleaning...

I recently just went through a move and learned a few things that I thought I would share.

Prior to the move, I thought I had a great plan.  I ruthlessly got rid of stuff.  In the past six months, I probably downsized my physical posessions by about half.  Ebay and Craigslist became my best friends as I reduced the clutter and things that I didn't want to move.

The end result is that I've been at the new place for 6 weeks and still have hundreds of unpacked boxes.  I unpacked the stuff that I use every day and left the rest in the attic.  Now that I've gone through all the trouble of packing things, I realize that I don't have the need or gumption to unpack it.  Now I know what I REALLY need, and it's quite a bit less than I ever thought possible.  It is going to be much easier to go through the rest and get rid of tons more stuff.

So a few lessons here.

 

  1. Even thought I thought I was being ruthless in my pre cleaning, I wasn't nearly ruthless enough.
  2. The thought of getting rid of more stuff, actually makes me happy.  Decluttering my life is a wonderful prospect.
  3. Having less stuff in the way allows me to get more done.
  4. If I had an outside opinion, I would probably have been more strategic about what I kept.

 

So how can this apply to you and your current situation?  You don't have to be facing a move to clean up.  Consider your digital pictures.  Do you have 10,000 old digital photographs?  Why not take the top 10% and save to a separate album and archive the rest.  I bet the archive will never be needed or looked at again, and the 10% will be looked at more often.  What if, while you were doing this review of photos, you had the help from a neutral friend who told you which pictures were worth keeping? I bet you would end up with a more concise group of pictures.  Why do you think many directors hire editors?  It's hard to get rid of footage that may have an attachment.

I guess I'm trying to make the case that it's good to have help.  I think many organizations are hesitatant to solicit an outside opinion either out of fear of knowing the truth, or the perception that paying for an opinion is not worth it.  I believe that peace of mind is priceless, and often profitable :)

What about you, any thoughts or opinions?  I'm sure there are many analogies that are worth hearing about.  Please post a comment!

-Garry

Friday
Dec092011

Cloudforce - Social Media Speakeasy

I wanted to do a followup about the Cloudforce conference last week and touch on a few things.

The most important, in my opinion is Salesforce's attention to "The Social Enterprise".  What is very interesting is that not only are they selling it, but they are also doing it.

I'm pretty involved with the Salesforce community.  Over the past six months I've noticed their ability to respond to community requests and questions increase dramatically.  I'm involved in a few different forums, and my concerns have been heard quickly.  In some instances, they have a quick answer, and in other instances, I am refered to someone who does.  Sometimes, this person ends up being pretty high up the Salesforce food chain.  I've been getting the feeling that they are really listening.  It's a great way to have a relationship!

About a week before Cloudforce, Salesforce invited me to a special event.  It was called the "Social Media Speakeasy".  I was honored and humbled to be considered one of the brand influencers and graciously accepted.  Upon arrival, I thought I'd be dining with a bunch of Salesforce community members, but instead I was sitting at a table of elite social media professionals.  Community and Brand managers from popular internet startups, to media companies, and some big players in the social media space (a Facebook VP & Radian 6 C level folk).

Besides being wowed and amazed by the fantastic food, even more interesting was the conversation.  People at my table were discussing some pretty high level concepts, tools and techniques.  They discussed challenges that they've had in their business.  What was very interesting is that many social media challenges are universal.  From my history in the nonprofit space, it turns out many of the same questions they were asking were the same questions that fortune 500 companies are asking.

It was encouraging to say the least.  We're all in it together.  Whether our title is "Community Manager", "Principal", or "Just Some Employee", our challenges and responsibilities are the same.  We have all been given the ability to amplify our life and brand.  The tools are there, and now... very affordable.  The question is, what are we going to do with them?  How can we push the envelope?  How do we maximize our potential?  

I was very excited to be invited to this event and walked away with a full stomach, a lot of laughs, some interesting ideas, and a few new friends.  I must take a minute to thank the innovators at Salesforce who got us all together in a room together to meet up.  It was an extension of their own Social Enterprise strategy.  Get people together to collaborate, learn, and have fun.  If that was the mission statement of the Speakeasy, than I would consider it a blazing success.  Thanks to my friends at Salesforce, and for all my new friends that I made that evening.

-Garry

Thursday
Dec012011

Answering the "What Language do You Code In?" Question for Force.com

When explaining Salesforce.com and the Force.com platform, I'm often asked the seemingly-simple question "what language do you code in"? Typically, my first response is "it depends", which tends to garner confused looks from the audience. But, if you're a developer working with Force.com, you know this question is not so straightforward, especially in the past year or so.

To elaborate on "it depends", I think it's best to explain the different ways a developer can interact with Force.com.

Option #1: External Apps: The Web Services API

The Force.com Web Services API is the longest-standing mechanism for writing code that interacts with a Salesforce org. A SOAP-based version of the API was its first manifestation and that continues to exist today. A REST-based version became available recently and is arguably more-efficient and easier to work with.

The API is intended for use in applications managed outside of a Salesforce org. This can include web, mobile, or desktop apps as well as lower-level services, scripts or batch jobs.

Because it's consumable as SOAP or REST, you can use any programming language you want to build an app with the Force.com Web Services API. It's very powerful and lets you access and interact with the platform at many layers, from basic data input and querying to reviewing and modifying the metadata (aka schema) of an org. If you need to build an app to solve a business problem, the API should suit you just fine.

Option #2: Native Apps: Apex and Visualforce

About four years ago (I think), Salesforce introduced Apex and Visualforce as part of their "development-as-a-service" initiative. Apex is Salesforce's native programming language and Visualforce is Salesforce's native component-based web page rendering engine. By "native", I mean that Apex and Visualforce can be written and saved into a Salesforce org and the platform will execute the code and generate a web page based on the respective Apex and Visualforce that is saved, just like an Apache or IIS web server.

Apex is an object-oriented programming language. It looks a lot like C# or Java, but Apex is its own dialect (you can't just copy-and-paste code from either of these languages and expect it to work). I often compare Apex to the System.Web and System.Net libraries of C# (or the correlating java libraries, which I have forgotten) - Apex is a somewhat stripped-down language when compared to C# or Java, which is intentional, as it focuses on querying and manipulating data in a Salesforce org

and making callouts to external services for data integration.

Apex supports everything you would expect in an object-oriented language, including classes, methods, interfaces, and inheritance. It supports all the data types you would expect (Strings, Integers, Arrays, Maps) and it helps speed up development by exposing any object in a Salesforce org as a bona fide class - if you add a new field to the Account object called "Favorite Color", you automatically get a new "Favorite_Color__c" property on the the Apex Account class. Finally, Apex classes can be exposed to the standard Force.com API (think "webMethod" in .NET), allowing sophisticated processes to be exposed without having to replicate them with the more basic commands in the API.

Visualforce is similar to ASP.NET: it has components that are represented as tags in your markup. These components take parameters and ultimately render data. Visualforce pages can reference Apex classes as that page's "controller", allowing developers to create completely custom user interfaces and backend business processes.

Because Apex and Visualforce run natively on the Force.com platform, they have the benefit of not requiring any additional infrastructure to support them. Compare that to our Option #1 approaches of working with the API: any language that consumes the Force.com API needs a server or device to run on.

Which brings us to our final option...

Option #3: Heroku

Heroku is not a programming language. Heroku is an application delivery platform (and a company of the same name). Heroku was acquired by Salesforce.com about a year ago.

So what the heck does it have to do with programming languages?

Remember Option #1? All those external apps need a place to live in order to run (traditionally and typically, a web server). In "the old days", this meant finding a reliable hosting provider, buying or leasing a server, configuration a slew of software to run on that server, installing your application on the server, then maintaining and upgrading that server into eternity.

Just like the Force.com platform, Heroku is a true cloud-based environment. The concept of a "server" is abstracted away from end users so there's no need to worry about the administration drudgeries anymore. But unlike the Force.com platform, which can only run apps written in Apex and Visualforce, Heroku can run apps written any number of programming languages, including Java, Ruby, and Python (but not .NET, and probably never, ever, ever .NET). So, you can take that Ruby on Rails web app you just built that connects to Salesforce with the REST API, push it up to Heroku, click a few buttons (literally, it's almost too simple) and have your web app running on Heroku. Backups are taken care of. On-demand application-scaling is another click or two away. And uptime is essentially gauranteed.

So, while Heroku itself is a platform rather than a programming language, I think it's important to note as an option and to compare against Option #1 because of all the capability it brings with it to help companies essentially eliminate traditional server infrastructures.

In Conclusion: It Depends

As you can see, you can interact with the Force.com platform with just about any programming language. Apex and Visualforce are the platform's native tools to add to your belt. As a web developer, I've run the gamut of languages, using PHP, .NET (web, desktop, and Windows Service), Java, Ruby, and Apex to build apps of all shapes and sizes. If you use Apex and Visualforce, your infrastructure is taken care of via the platform. For other languages, Heroku can help out in the same way - not having to deal with server infrastructure means I can focus on writing code to solve business problems.

If you've got specific questions around choosing a language or working with the Force.com platform or Heroku, please don't hesitate to ask!