Showing posts with label Trailhead. Show all posts
Showing posts with label Trailhead. Show all posts

Friday, September 9, 2016

So Many Resources, So Little Time

I found Auntie Pat Tern burying a hammer in the flower bed. When I asked why, she said it was Tim Toady's favorite tool and he needed to learn something new. When all you have is a hammer, everything looks like a nail, so she wanted to make sure he found new ways of doing things. I like to make sure my developers are constantly learning new skills as well, so they don't rely on "golden hammer" practices that may have become outdated.
Become a specialist and then learn even more.

Learning to develop on the Salesforce platform is like finding a magpie's nest full of shiny objects. Where do you start and how do you figure out which gems are most valuable? Here's the path I take:
  1. Attend Dreamforce. The keynote and product demos will help you know what you want to learn. The sessions will help you get started on that learning. It offers the chance to talk to people who are on the same learning journey as you are and share tips and interests. I am presenting two sessions on developing with Apex this year: 8 Essential Apex Tips for Admins and Apex Trigger Essentials for Admins.
  2. Watch more Dreamforce sessions online. After the event, Salesforce makes sessions available by video online. Sessions you wish you had attended, topics you didn't know you were interested in until after Dreamforce, all are free to watch online.
  3. Follow up your learning in the Success Community.  Find your local user group and developer group and follow the online conversations to learn how other people are using Salesforce and the challenges they are overcoming. Even if you don't have a local group, you can join groups online to be part of the discussions.
  4. Keep up the learning with Trailhead. Salesforce offers online learning opportunities through Trailhead. Don't be intimidated by the SuperBadges, they offer a well defined path to learning about a particular skill in Salesforce. And if you get stuck the community is there to help.
  5. Two places to turn for online help from the community when you get stuck on any of your coding projects are the Developer Community and Stack Exchange. Search the boards to see if someone has already asked about the question you have, and if you can't find a discussion, go ahead and post your question. Once you gain more skills, you should find that you are answering more questions than you are asking.
The resources are there to help you along. Learning to develop, or learning to develop even better, can be fun with all of the resources Salesforce offers. You don't have to rely on golden hammers when there are opportunities to learn new and better ways to work with Salesforce.

Tuesday, May 17, 2016

SeeAllData = Fail

According to Auntie Pat Tern, it takes 21 days to break a bad habit, but Salesforce developers have had about that many API versions to break the bad habit of writing unit tests with "SeeAllData=true".

In most cases, this clause alone can render tests completely useless. Unit tests should prove that code functions according to specifications by asserting proper database manipulations--create, read, update, delete operations--as well as Visualforce navigation.

I looked at unit tests in my org and found this example of a test that failed to achieve its purpose:

This test should be asserting that the data for ordering samples can be created with just a contact and sample type defined.  Unfortunately the test relies on existing, live, org data rather than test 'silo' data because of "SeeAllData=true" in the first line. There are easy methods for unit tests to create their own test data without relying on live org data.

We encountered the following problems because of using "SeeAllData=true":
  • It required us to maintain test data among our real data.
  • When the test data was changed during data cleanup (in one case, Pat Tern's Account was deleted), the tests failed even though functionality was unchanged.
  • Tests were not reliable between Sandboxes and Production orgs due to data differences rather than actual functionality.
  • Apex Hammer Tests may not have been automatically monitored in our org for each Salesforce release since Hammer Tests are blind to live org data.
In the rare case where a specific piece of data may be required for your code to behave, consider using custom metadata types instead of Salesforce objects. Trailhead can help you learn more about how they allow you to move metadata and records between orgs and test functionality without needing to see all data in the org.

Wednesday, February 24, 2016

Using Trailhead To Resolve Unknown Unknowns

According to my Auntie Pat Tern, the only trouble with my cousin Tim Toady is that "like every teenager, he don't know what he don't know.  And that wouldn't be so bad if his teachers were better at knowing what he don't know."  So I took a look at the code in my org to see if I could pinpoint what it is that the developers don't know.

Luckily, the Trailhead team is great at foreseeing what it is that people don't know about Salesforce and have created a Trail for that, no matter what that is.  And while the developers might find the Apex trails on their own, they might not recognize that there is more about Salesforce they need to understand.  In fact, there is an entire Trail on the Salesforce Advantage, the core technology that differentiates Salesforce from other CRM systems and other development platforms.

Learn, or review, Salesforce Technology Basics
with the new Trailhead module.
One developer expressed concerns about "the Governor's limits", which indicates to me that they need to better understand multitenancy and performance.  Another expressed concern about Salesforce firewalls and security breaches, which indicates they need to learn about Salesforce security standards.  A third developer suggested we build custom objects for storing employee contact data and build content management and customer service solutions from scratch, which meant they need to learn more about fast app development with Salesforce customizations and third-party apps.

Happily, Salesforce has a new Trailhead module to help my group know more about all these topics, Salesforce Technology Basics.  Of course my developers are a lot like my cousin Tim Toady, they know they are a smart bunch but they often don't realize that there are things they don't know.  It's the Dunning-Kruger Effect, the unknown unknowns.

For those who are deeply familiar with Salesforce, Trailhead can help you avoid the "curse of knowledge" tendency to believe that if you know it then most people must know it as well.  Trailhead modules are thorough, starting with the basics and moving to more challenging information.  And they are entertaining, so anyone with a smattering of knowledge will find familiar topics fun to review and new topics informative.

With Trailhead, you can avoid the problem Auntie Pat Tern described for cousin Tim Toady, the unknown unknowns as well as the curse of knowledge.  Just encourage your team to earn Trailhead badges, which you can review in their Salesforce Community Profile pages, to bring the team up to speed even when you, or they, think they know what they need to know already.

Saturday, September 19, 2015

Struck By Lightning, Now What?

We have all seen the new Lightning user interface by now and while it currently effects the way sales teams and admins interact with Salesforce, we can start planning for a broader implementation right now.  Lightning provides for a modular page layout that we can configure for our own processes and dynamic components including a Kanban board layout and interactive charts, among a lot of other cool features.  And it represents a big change in the way users can view and interact with data in Salesforce, whether sales users today or every user as new releases become available.

As you consider rolling these new features out to users, here is one process you might consider:

Step 1, Learn

Trailhead offers learning modules to help
with smart implementations.
Recruit some super users to play with Lightning Experience in a Sandbox.  Find enthusiastic users that you know will have exciting ideas, but also have at least one of the more reluctant users.  If you have a user who is just not that into Salesforce, this could be a good opportunity to win them over by listening to what they need and letting them effect change.

As an admin/developer, start learning about Lightning App Builder in Sandbox or in a developer org.

Of course, everyone should go through Trailhead modules related to Lightning.  End-users might want to start with the features module.  Admins and developers both can start creating apps to become familiar with features and limitations.  At Dreamforce 2015, there were already 17 Trailhead learning modules available that you could find with the Lightning tag filter.

If you have not set up a CoE (Center of Excellence or Success Committee) in your company to bring together representatives of each department using Salesforce, this would be a good time to put that group together and start planning as a team how to bring Lightning to users in each department.

Evaluate some of the Lightning Components from the AppExchange and see if there are any quick wins you can bring to your users or inspiring solutions that may already be available.

Keep mobile in mind as well.  The Lightning user interface works well across all devices and if you have not considered the mobile user experience, this is a great time to learn more about it as well.

Step 2, Plan

Meet with your super users and your CoE to workshop ideas about what may be the best way to design page layouts but make it clear that this is a way to gather ideas, not all of which can be implemented right away. This is a time for generating wish lists rather than worrying about actual final product.  Let users dream up their ideal page layouts but keep realistic expectations, their ideal may be unattainable, but it should help you understand their needs and goals to work towards a better middle ground.

Give each user paper and have them draw out what they would like their page layouts to look like now that they have seen what could be possible with Lightning.

After you give users a chance to draw up their own ideas, give groups of users who perform the same job function the chance to work as teams to combine their ideas on a whiteboard or, better yet, on a poster board you can keep as a reference.  Try to have multiple groups of users each create a board and then have the groups come together and discuss why they designed the page layout on their board the way they did.  As they discuss their ideas, they may want to make changes and you should be able to discover some of the most important concerns and requests.

During the planning phase, admins and developers at your company should also conduct a workshop, or internal hackathon.  Create a new Sandbox Idea Factory where they can put together ideas that they think might benefit the company or the individual user experience as well as ideas that simply interest them as a challenge.  This is a great place to promote creativity and inspiration and bank resources that may come in handy for development.

Step 3, Develop

Create a project plan that merges the most workable options from your Idea Factory with the most desired and manageable requests from user workshops.

Keep the channels of communication open as you execute this project plan.  Whether you use Agile or other project management methodologies, it is important to make sure everyone understands the immediate goals as well as the more long term goals.

Keep meeting with your CoE to make sure they are behind the development efforts and aware of timeline, progress and roadblocks.  You want to ensure that the users are kept in the loop during the development cycle so that they don't feel forgotten or get the wrong impression that their ideas from the workshop were merely dismissed.

Make sure your super users from the learning phase are still involved with user acceptance testing and helping with creation of training materials and best practice guidelines as you develop those as well.

Step 4, Implement

Now for the fun part!  With the support of your super users and your CoE, start rolling out your customizations to users. Make sure they have the training and support they need for a good start with your custom Lightning user interface.

Step 5, Evaluate

Listen to your CoE to discover what worked well in the process and determine what changes you can make to these steps before beginning the process again.  When you start the next learning phase, you might consider introducing your users to some of your favorite ideas from your internal Idea Factory as well as new Salesforce features they may not be using yet.

This initial Lightning release affords us all time to work with users and plan how to meet their needs. If we start now, we can create a process that will make transitioning to the new user interface a chance to impact user adoption as well.

This is just the beginning.  With three releases a year, Salesforce will have more features coming available so keep your Idea Factory Sandbox active to give admins and developers a place to challenge themselves and stretch the capabilities of the org.  And let your CoE continue to support project planning and generate enthusiasm among end-users.

Saturday, August 22, 2015

Nurture Creativity, Passion And Collaboration To Be Innovative

The Salesforce Trailhead online training modules are inspiring a lot of us to learn new features and exercise what we already know to earn points and badges. And to have fun with Salesforce. There are modules, or trails, specifically for admins or for developers and trails for specific activities like learning about Event Logs. There is even a trail for getting ready for Dreamforce.

These are definitely worthwhile exercises for anyone interested in encouragement to practice new skills. Once you get started, they draw you in with virtual rewards that inspire continuing with a just-one-more goal. And the list of trails is growing at great speed to ensure that just-one-more goal offers something new and different.

I wanted to explore how this popular project came to be so that I can encourage that kind of innovative thinking among my teammates. So I interviewed Lauren Grau, Developer Relations at Salesforce and a member of the Trailhead team, and here's what I learned.

According to Lauren, the Developer Marketing group was looking into ways they might improve on the existing training workbooks. While these were popular for learning Salesforce, they didn't always provide a clear path or define a way to progress beyond introductory steps. It was also difficult for the folks at Salesforce to gauge the usefulness of any particular workbook. Were people getting stuck? Were they making mistakes?

Coincidentally, while that group was looking into improving the workbook training experience and exploring new tools like those from Udacity, one of the developers on the Developer Evangelism team, Josh Birk, was working on a side project called "Medals". Josh intended to demonstrate using the Metadata API to verify changes in an org based on steps in training. As a group, Developer Evangelism is all about coming up with cool uses of the platform to inspire people and Medals was another project intended to inspire developers with the power of the Metadata API.

According to Lauren, this kind of creative exploration is not limited to any single team. Salesforce is willing to help "carve a space" for projects that employees are passionate about and the company is filled with people who are passionate about Salesforce products. Salesforce has even encouraged that sort of creativity with project challenges that eventually get released as Salesforce Labs applications on the AppExchange.

While marketing had started creating learning paths based on roles and flow charts of the "known universe" of the Force.com platform, the demo of Medals was catching fire among all who saw it. In some companies, these two efforts would continue on their independent paths, but at Salesforce, collaboration and alignment across departments is a huge part of the culture. They use Chatter to connect people and ideas and have a "great open door policy" according to Lauren.

This combination of technology and policy helps Salesforce overcome barriers to innovation that other companies find insurmountable. As a result, the people who could bring together the two teams, marketing and evangelism, did so, and brought in the documentation team as well.

The people involved in Trailhead are passionate about solving the problem of helping Salesforce admins and developers with the task of keeping up with the cloud. With Trailhead, Salesforce can provide training that offers real-time feedback and does not require switching back and forth between disparate systems like workbook and computer to execute training steps. The gamification elements ensure that training is fun and addictive while well-thought-out projects and paths make the skills taught even more meaningful.

Luckily for all of us who enjoy the training modules, Lauren tells me "there is still a lot we haven't gotten to do with Trailhead that we've got planned". New learning trails and badges are on their way, expanding beyond the platform to other clouds as well. There will also be trails for end-users. Just imagine pointing users to Trailhead for learning and relearning tasks like running reports and using filters to see just the data they need.

If you have ever wished you could create your own learning trails for Trailhead, you will get your chance as Salesforce expects to harness the power of its incredible community for content creation and review. Beyond that, we'll have to wait and see what ideas develop thanks to Salesforce nurturing creativity, passion and collaboration so that fun and innovative projects like Trailhead thrive.