Elevation Gain: A review of Salesforce Trailhead

12,120 Trailhead PointsI completed the available Salesforce Trailhead modules last Friday with mixed feelings. I’m really pleased to have checked all the boxes and gained all the badges, but I’m more than a little sad that I’m done (for now).

I wanted to give back some love to the Salesforce Developer Relations group by writing a review.  You can probably guess that I loved it, but I hope to say more on why, and better yet, get you to check it out for yourself. Plus some tips on how to best use the tool, and advice on what you might want to skip over if you’re short on time.

Before I get into the nitty-gritty of each of the trails, I wanted to give a quick shout out to why, in general, I think Trailhead rocks and why you should try it.

What I liked about Trailhead

  • Covers both clicks and code. You don’t have to be a coding geek to get something out of Trailhead. There are two whole trails that do not include a single bit of code.
  • It’s interactive! In most of the units there are examples that you can try out in your own Developer org. This helps to relate to and retain what you’re learning. Not only that, it give you practice before you get to strut your stuff in the end-of-unit challenges.
  • The challenges are real. They’re ones that are applicable to many production orgs. I ran across a use case the other day that harkened back to one of the modules; I went right back to it to steal the code. Thanks, Trailhead!
  • Mostly good use of conversational voice. Most of the lessons are in plain English and easy to work with, although the first coding module was a bit of a leap…more on that later.
  • Cool Badges! I’m a sucker for positive reinforcement, especially when I’m trying something new. So getting a shiny new badge and bragging rights on Twitter (and Facebook, Linked In) helped keep me engaged.
  • Built-in encouragement! I love encouragement, and any time I posted on Twitter that I had completed a unit, I got a ton of positive reinforcement from a variety of folks. I have a sneaking feeling they may all work for the Salesforce Developer Relations Group, but whatever! It was still awesome and helped me feel like they were rooting for me and celebrating my successes. I love you peeps! (@Adamse, @iayori, @TheChrisDurate, @coundysan, @rockchick322004, @thisisnotapril)

Enough of the generalities, let’s dive in to the details!

Trails 1 and 2: The Declarative Trails

One of my mentors is fond of saying, “Don’t build what you can buy, don’t buy what you can borrow,” (I think he actually says “steal,” but that’s another story). I’d prefix that with, “Don’t code what you can click.” Salesforce Engineering recently posted a great article, Declarative Development – When to Click Instead of Write Code, but it all boils down to time, talent, and treasure. It can take more of all three to code a solution when a perfectly good click solution is available. You need to learn about all the tools in your tool belt, not just use a hammer for everything. We all know that hammers are the glam tool (you know it!) but you shouldn’t reach for your hammer before you’ve fully understood the problem. Then yes, it may be that it is just the tool to get the job done, but it might also be all you’ll get with by using it is holes in your wall and a sore thumb.

First Declarative Trail: Getting Started with the Force.com Platform

Getting Started with the Force.com PlatformWho should hike this trail? This trail includes a great overview of the Salesforce Point-and-Click basics. It would be suitable for a power user, new admin, or someone wanting to round out their declarative knowledge. It includes:

  • Force.com Basics – covers navigation setup and an intro to the developer console. This last unit is a must before you start any kind of Salesforce Coding, but skip this if you’re not interested in that (yet).
  • Data Modeling – includes all sorts of information about standard objects; creating custom objects, fields, and relationships; and working with the Schema Builder, one of my favorite tools for visualizing the Salesforce environment.
  • Data Management covers importing and exporting data using the tools native to Salesforce.
  • Formulas & Validations introduces formula fields, roll-up summary fields, and validation rules. Salesforce has another great resource, Useful Formula Fields, which has some really helpful starter code.
  • UI Customization this was the module that I found most interesting in this trail, because at the time I had not yet  created custom links or buttons, so it was fun learning how to do that. Turns out it’s super easy! Along with that, there are units on modifying page layouts and creating list views.

I thought that Salesforce did a great job with this first Trail. I have two comments for you (and the Trailhead Dev team):

  1. I’d move the Developer Console unit to beginning of the third trail. It’s not much use to people who are aren’t yet ready to code, and having it here makes one think that perhaps you need it to do declarative programming (which you don’t!).
  2. I would have liked more depth in was the Formulas &Validations Module. In many cases, formulas are a declarative developer’s best tool for creating magic. There are a ton of different functions that I find super helpful, but weren’t covered here, including:
    • CASE – a type of logical function that’s similar to IF/ELSE, but helpful when comparing a moderate to large number of values.
    • TEXT – converts a picklist value to text value so that you can test against it
    • ISCHANGED – an awesome function that compares a field’s previous value to see if it has changed. Very useful in validation rules and workflows.
    • HYPERLINK – my new favorite function, which I used just last week to create links from a Salesforce record (in my case a Posted Invoice) back to the record in our backend ERP (think accounting and fulfillment system). You do something similar in the UI Customization Module, when creating a custom button, but this is useful as you can display the link in a related list.

Second Declarative Trail: Intro to Visual App Development

Intro to Visual App DevelopmentWho should hike this trail? This trail goes a little deeper into the development of Salesforce applications using Point-and-Click methods. Again, it would be suitable for a power user, new admin, or someone wanting to round out their declarative knowledge and includes:

  • Workflow Automation covering both Workflow Rules and Visual Workflow. At first glance I wondered why workflows were a part of App Development, instead of force.com basics, but in the end, I think it is helpful having the two major workflow tools together to compare and contrast. These tools are essential in any Admin’s toolkit.
  • Salesforce1 Mobile Basics I really enjoyed this module. Partially because my Salesforce users aren’t big into mobile yet (I know…what!), so I haven’t spent a lot of time customizing their mobile UI. It was great learning how easy it was. I’m ready now to jump on it when the need arises.

There are a lot of “Coming Soon” modules in this section, which a little birdy told me might be coming out in January (finger’s crossed). They include: Approvals, Chatter, Reports & Dashboards, and App Deployment…can’t wait!

Trail 3 – The Coder’s Trail: Intro to Programmatic App Development

Intro to Programmatic App DevelopmentOooh, so now we get to the good stuff. I know I said that “Clicking is Cool,” and it is, but coding is what I really wanted to learn. It was with much devilish rubbing of hands that I embarked on my first Trailhead coding module. I wasn’t let down!

Who should hike this trail? In my opinion, this trail isn’t for a newbie admin. It takes some time to develop an understanding on the why and when of coding. So, unless you have a year or so of Admin work under your belt, or you already have Object Oriented Programming (OOP) experience, e.g., Java, then I’d hold off. Or don’t, but just be patient with yourself and don’t get too frustrated if you don’t get everything immediately (good advice regardless!).

  • Apex Basics & Database covers your basic structure to Apex, sObjects, and data manipulation with DML, SOQL and SOSL.
    With my experience to date being focused solely on the Click aspects of Salesforce Administration, the jump between that and this first module was pretty steep. I think it would help to have more explanation of Apex terminology, including classes, objects, methods, and what it means to “return” something when you’re not using a void method. If you didn’t understood what I just said, you’ll probably take more than the suggested time to complete this first unit (I know I did!); and that’s just fine. If you are getting stuck on the first unit, read my post.
  • Apex Triggers covers, shockingly enough, how to create Apex triggers. Much good stuff here.
  • Apex Testing covers the much anticipated Apex test coverage material. Oh boy did I need this! As you know, we can’t deploy code to production without at least 75% of test coverage. I think the coolest unit is the last one on creating a bank of test data that you can reference across many tests. Very helpful!
  • Visualforce Basics includes nine units that cover the basics of building custom user interfaces (UI) within Salesforce using Visualforce. This was good, and I’m sure will be better once the “coming soon” modules are added. At the end of this module you can create Visualforce pages, but they don’t do very much. I’d say if you were short on time, skip these until the latter modules are complete, and learn them together.

Coming soon in this trail are: Apex Integration Services (e.g., Apex REST and SOAP services), asynchronous Apex, Visualforce & JavaScript, Visualforce mobile, Visualforce templates, and app deployment.  These will really add to the mix, especially the best practices for team app development.

Making the Most of Trailhead

So other than “It rocks” and such, what else can I say about Trailhead? Below are some tips to make the most of your time on the trails:

  1. Do all of the code examples – they are a great way to practice and to ensure you get the same result as Trailhead. Benjamin Franklin nailed it when he said, “Tell me and I forget. Teach me and I remember. Involve me and I Learn.”
  2. Customize your code – don’t just stop there, make changes to your code and see what results. Experimentation is fun!
  3. Type code in by hand – sure, it’s much easier to copy and paste code, but typing it by hand helps to reinforce what you’re learning.
  4. Look at the related resources – these are at the end of many units, and you can use them to go further into the material. Keep a list of resources to build up your own reference library, or borrow mine on the Resources page.
  5. Don’t give up – Some of these challenges are tricky. Don’t give up before the miracle happens! If you get stuck, do some googling, reach out to the dev support groups, re-read the challenge (that was my big stumbling block on the first coding challenge … doh!).
  6. Celebrate your successes – Post on Twitter when you complete a unit! It’s a great way to get a much deserved high-five.
  7. Start Coding – It’s fun to learn, but it’s even better to use what you learn. That’s where the real bragging rights are found!

And a last comment for the Salesforce Developer Relations Team…Maya Angelou said:

“I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.”

You guys made me feel great! Thanks for the experience and I’m looking forward to continuing the journey.

To everyone else, I wish you happy hiking!