Understanding Change Sets Limits

Several years ago, I was working on a massive Salesforce roll-out for a customer whose deployment policies were constraining the team to use change sets. It was a multi-sandbox, multi-vendor environments and change sets were not ideal, to say the least. As it happens, we ended up, for each version released to production, with several packages and 30+ pages of pre and post-deployment manual steps. A real nightmare, still, it gave me the opportunity to push the method to its maximum and see through it.

If you’re building a Salesforce solution making good use of standard objects and intend to ship all your configuration from sandbox to sandbox to production, get ready for a lot of manual work! Relying on manual rework generates the risk to build a great app in your Dev sandbox, get it somehow signed-off in the UAT sandbox and then screw-up the migration to Production delivering a non-functional product… Not what you’re after!

These are the usual issues people find when deploying with change sets:
Continue reading

SFDC Expiring Certificate

Have you ever received one of these mysterious messages from Salesforce mentioning “expiring Self-Signed certificates“? Salesforce sends 4 notifications per expiring certificate. These emails are usually source of panic and confusion.

SFDC Expiring Certificate Notification

For a certificate to expire without you knowing what it is used for, typically means that it’s been automatically created “behind your back” by one of the processes mentioned below:

  • Configuration of MyDomain on this org
  • Use of the Environment Hub to spin this org
  • An AppExchange application generated a self-signed certificate as part of its installation process

When you receive one of these emails, you basically have two options:

  1. You do indeed need a self-signed certificate and have to maintain it
  2. You don’t actually need any certificate and just want to stop receiving these scary emails

Do I really need a certificate?

The certificate is required when using Salesforce as an IdP (Identity Provider). This is the case when you’re login to external systems using your Salesforce username and password. It tends to be the other way around (SSO) but, let’s check:

  1. In Setup, navigate to “Identity Provider
  2. Check the bottom section “Service Providers”. If it’s empty, then this org is not acting as an IdP and you can simply ignore this message and the following ones. Salesforce will continue to function as usual and you won’t receive another batch of emails next year

How do I renew a certificate?

If you’ve found one or more service providers you may want to check if they are actually used. If you keep at least one service provider, then, you need to take action on the email message from Salesforce:

  1. In Setup, navigate to “Certificate and Key Management”

* Create a new Self-Signed Certificate (Example: “Cert-2018”)
* Check “Exportable Private Key”
* Optionnaly set “Key Size” to 4096

Note: In the unlikely case where Salesforce uses a self-signed certificate with an external system, you will have to download the newly created certificate and update the other system.

  1. In Setup, navigate to “Identity Provider”

* Edit and change the certificate to the one you just created
* In one or two years time, depending on the size of the key, you will receive the same email and have to go through the same process

idp-cert-setup

Related Posts & Resources

I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Mastering Spring ’18

It’s been a few years now that this series of posts has started, where I’m begging you not to discard the release notes and instead do study the new features as you would to prepare a certification. It’s important as a Salesforce professional to master what’s in the new release and make the most of it.
You’ll find below a selection of resources that should help you in becoming a “Spring ’18 ninja“.

Salesforce has now opened the doors to the certifications maintenance exam (until November 2, 2018) and I always recommend clearing your maintenance “before Salesforce starts talking about the next release“. This will avoid unecessary confusion around feature availability. I also ask to consider the thickness of the release notes as a blessing rather than a pain…

My method to prepare for the release consists in enjoying the journey first (steps 1 to 4) so that when you get serious and drill down into the details (steps 5 and 6) the learning becomes easier. The maintenance exam (step 7) is just the red tape, not the actual objective.

  1. πŸ“Ί Watch some videos
  2. 🐻 Get your Trailhead badge
  3. 🌍 Browse the best blogs
  4. πŸ“˜ Read Salesforce’s resources
  5. πŸ„ Learn the Release Notes
  6. ☁️ Play around with your DE org
  7. πŸš€ Take the exam

New Release Study: It’s not about the maintenance exam. It’s about configuring Salesforce to its best in your next project. Your clients will thank you for that!

Videos

πŸ“Ί Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study work.


In a different style, you may also want to have a look at the Release Readiness Videos videos. They’re an hour long entertaining talk shows discussing the ins and out of each of the Salesforce modules.

Trailhead

🌲 You can now access the current and previous release trainings on Trailhead. So, go ahead and have fun learning the new features with the trail Prepare for Salesforce Releases.

Blogs

🌍 I have handpicked the posts below from the best bloggers in the Salesforce community. They provide a different perspective and interesting use cases for the new features.

Salesforce Resources

πŸ“˜ To start with, I strongly recommend that you join the Trailblazer Community group Release Readiness & Feature Adoption.
Salesforce’s key resource when it comes to new releases is the one stop-shop Release Overview microsite. I like the posts from the Salesforce Developer evangelism team and there’s always lot of useful links to discover on the partner release resource page.To finish, you may also like the refreshing layout used in the Release Preview document to present the new features.

Release Notes

πŸ„ I guess you know it by now, the Release Notes come in two flavours.

  • PDF file: I use them in the train, downloaded on my iPad to make the best of otherwise wasted commute time.
  • HTML page: I use them on my laptop when I need advanced search capabilities.

Special Announcement

⚠️ Summer ’18 will bring a change to the URL format and Spring ’18 lets you test it via critical update that you can activate in a sandbox. Some custom code or AppExchange may stop working so it’s important for you to test ASAP in a sandbox and fix accordingly before being hit by Summer ’18.

Before:

[code lang=md]
https://<lightning.domain.com>/one/one.app/#/sObject/Account/home
[/code]

After:

[code lang=md]
https://<lightning.domain.com>/lightning/o/Account/home
[/code]

For more information, check Salesforce’s FAQ on the topic.

Play Time

☁️ Now, get one of your DE orgs and try out what are, in your opinion, the most important features. When done, configure the feature which feels the more complex to you. I also like to run some keyword searches in the HTML version. For instance, if “Leads” are a current area of interest for you, search what’s new for “Leads” in the new release. Play around, have fun, learn.

Exam

πŸš€ At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.

⚠️ Note that Salesforce announced at TrailheaDX ’18 that certification maintenance will gradually move away from WebAssessor to the Trailhead platform.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Buy vs. Build on Salesforce

The life of an IT manager is made of many decisions leading to long-term commitments:

  • Choice of technology (.Net vs. Java).
  • Choice of vendor (IBM vs. BMC).
  • Choice of architecture (on-premise vs. cloud).

And then, there’s the famous “Build vs. Buy” which is as much about computing as it is about business operations and risk management. In this post, I’m reviewing this IT classic in a Salesforce world…

Legacy Systems

Because it’s now an old age question, the advantages of both buy and build are well known. So, I’m just listing them as reminders below.

Buy

  • Fast implementation speed
    All capabilities being pre-built, the implementation time is reduced to installation and configuration.
  • Business process improvements
    The software business logic is built around best practices.
  • Benefits of scale savings
    The cost of each line of code is shared between customers. The vendor can invest more in security and innovation.
  • Resilience
    The software has been tested by many users and customers before you.
  • Support
    Support is available from both the vendor and the community.
  • Zero technical debt
    The vendor’s business model guarantees a high level of documentation and skills.

Build

  • Feature granularity
    The solution can be tailor-made to exactly fit the current business process.
  • Short terms costs savings
    This is the easiest way to cut corners.
  • Business advantage
    Automates a company business process with a software which is not available off-the-shelf.
  • Keep IT busy
    The skills required to build are available and unused.

Salesforce

Although you can build on the Salesforce platform, it is essentially a member of the “Buy family”.

Buy

The Salesforce equivalent of buying is making the most of the components already available on the platform by favouring button-click configuration over code (say 80% code). Think of replacing most of the out-of-the-box business logic like approval processes with code to work around current feature limits. Although technically possible, I don’t recommend it for the main reason that it’s not part of the platform’s DNA, Salesforce started as a highly configurable on-demand CRM with the original strategy to reduce the need for IT involvement (click-no-code). Coding capabilities were rapidly added and, yes, using them all in the same project is possible and exciting for the nerd in you.

Unfortunately, this will also most certainly lead to technical debt. Still, this is what big SIs, coming from the world of J2EE bespoke apps, tend to favour and rarely think twice before building complex, unmaintainable systems.

Also, custom code doesn’t benefit as much from Salesforce constant innovation as much as standard features do.

Your Choice


Think again, you either go with Salesforce, or you go alone…

Don’t Do It

Not doing it is the new kid on the block of enterprise application design, sadly not a popular one though. In the old days, upgrading software was a multi-month long project and IT was often reluctant to upgrade a production environment for the sake of adding new features. As a result, there was quite a lot of pressure on implementation teams to squeeze in as many features as possible on v1 because nobody knew when will they get a v2. As a result, building often was an attractive option.
Now, here is the game changer:

  1. All Salesforce tenants run on the latest version.
  2. There are three new releases every year.
  3. Salesforce is quite an innovative company.

These three facts remove the pressure on feature richness and, instead, offer new capabilities you’ve never dreamt of (mobile, AI, IoT, …). In my post “The million dollars picklist“, I’m telling the story of a customization which has gone too far the custom build way!

When blocked by a feature’s current limitation, don’t start coding, start thinking… Align your application roadmap to Salesforce’s own one. For the bits you don’t know about, the best way to remain compliant with future releases is to stay as standard as possible (buy, don’t build too much). You’re not obliged to say “yes” to all requests from your stakeholders, but you’re obliged to provide good advice! Many businesses are doing great running on “non-perfect” lean apps, whereas others are struggling to grow trapped into technical debt issues of what’s become a bloated org.

Writing code is fun! Thing is, you’re not here to have fun but to leave behind a resilient enterprise class application.

Related Posts & Resources


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Who Changed What?

When several admins or consultants work side by side on the same Salesforce org, it’s often difficult to keep track of configuration changes, especially if teams are remote and no CoE is in place.

There are many reasons why you should get yourself a forensic tool to investigate configuration changes:

  • Repairing:
    Suddenly broken features are hard to fix. Checking what’s been recently changed in your org is the first port of call. For instance, enterprise orgs share some configuration areas between Apps and departments. Opportunities may be only used by the Sales team but then Products may be shared between the Sales department and Customer Service. If the Customer Service administrator modifies a Formula field on the Product object this might impact the Sales App and the Sales administrator will need to know that.
  • Improving:
    When things go pear shape, it’s always good to be able to learn from what went wrong: some changes may have been applied directly into production, a code freeze may not have been respected, a junior admin may have done a mistake, etc… Although some will see this as a way to blame others, I prefer to see it as a way to improve a process.
  • Upgrading:
    It can also be useful to track down who built a specific feature that needs to be improved or refactored. Who created this custom object, who last touched this workflow rule, etc… Granted, its author may have left your company but that’s another story and at least you get some contextual information.

Listing Configuration Changes

To list configuration changes, navigate to Setup, then type Audit in the Quick Find box. This will narrow down the menu options to View Setup Audit Trail. This page shows the last 20 changes done to your org. It can be useful when reacting to a recent change. But if you really need to investigate what happened to your org then you will want to pull more data.

Today, there are three ways to list configuration changes:
1. πŸ–₯️ View on screen the last 20 changes from the View Setup Audit Trail.
1. πŸ“„ Download a CSV file containing the last 6 months of changes.
1. πŸ€– Run a SOQL query via the SOAP API on the sObject SetupAuditTrail and get every tracked change.

The CSV file uses the same format as displayed on screen. The SOAP API implementation introduces a couple of differences:

  1. SetupAuditTrail.Display pulls the data from the Action column, and SetupAuditTrail.Action is, in fact, a short version of the Action column – yeah, I know…
  2. Source Namespace Prefix is not exposed to the API.

Here is a list of the fields queryable and their equivalent column in the CSV file:

  • Action: short version of the Action column.
  • CreatedById: Id of the User column.
  • CreatedDate: Date column.
  • DelegateUser: Delegate User column.
  • Display: Action column.
  • Id: record ID not available in the CSV file.
  • Section: Section column.

The closer you can get to the CSV file is by running the following SOQL query:

[code lang=text]
SELECT
CreatedDate,
CreatedBy.Name,
Display,
Section,
DelegateUser
FROM SetupAuditTrail
/* WHERE CreatedBy.Profile.Name = 'System Administrator' */
ORDER BY CreatedDate DESC NULLS FIRST
LIMIT 10
[/code]

⚠️ Note:

  • Again, Source Namespace Prefix is not queryable.
  • Customise the WHERE clause to your exact need or get rid of it for a full dump.
  • Drop the LIMIT for a full dump.

Depending on what you’re after, these three methods should be useful to help you find who’s changed what in your org, but if you need to dig deep you’ll have no other help than your fluency in SOQL. Several months ago, I needed a tool to do an in-depth investigation and created a Google Sheet for this purpose.

Spotting Unexpected Changes

To get cracking with your investigation, you need to go through the following steps (I’ll provide a better explanation at the end of this post):

  1. Clone the Google Sheet template.
  2. Pull the Setup Audit Trail data from Salesforce.
  3. Upload the data in the Log tab of your Google Sheet.
  4. Start your investigation from the Dashboard, then the Data Cruncher and finish with the Log.

The big picture

Navigate to the Dashboard tab and you’ll find two charts.

  • The first chart is a timeline of the changes made to your org year to date. This may help you to communicate with key stakeholders about the various phases of a project and how is the charge distributed, what are the trends, etc…
  • Just below is a pie chart showing what changes are about (Admin, Config, Dev). This can be used in a weekly report to discuss the amount of development, but cannot be related to the actual effort or cost: resetting a password counts for as much as writing a class! The split is based on the data from the Categories Setup tab.

Dashboard Tab

The investigation

The Data Cruncher tab is a pivot table pulling its data from the Log tab. I’m proposing a default setting with Categories and users’ Names as rows and Months as columns. This gives you a “who was doing what each month” but the idea is to let you massage the log data by trial and error. Play around with the rows, columns, filters and values, this will give you different perspectives each time.

Data Cruncher Tab

Playing around with the tool will let you discover interesting information you were not even looking for!

The post-mortem

Once you’ve narrowed down your scenarios in the Data Cruncher, chances are that you’ll want to drill down to the individual change level. For this, the best is to return to the source of the data, the Log tab. Using the various column filters, you’ll be able to return some pretty accurate information.

Log Tab

Setup

To take ownership of this spreadsheet and customize it to your taste, you need to understand how it works. The output is done on the Dashboard and Data Cruncher tabs. The input is the Log tab. The Categories Setup tab enriches the Log tab with categories (Dev, Config, Admin).

Google Sheet Architecture

To start analysing your setup audit trail:

  1. Empty the cells in columns A to E of the Log tab (do not empty the grey columns).
  2. Import the fresh data without Source Namespace Prefix in the Log tab.
  3. “Copy” and “Paste Formulas” on columns F to H from top to bottom.

The Categories Setup tab is already configured in my template. But don’t hesitate to double-check the mapping Section to Dev, Config or Admin. It’s a one-off thing to do. Once set to your liking, you’ll just have to clone your own template into a new spreadsheet to be used in a new investigation. Ping me on Twitter (@fcathala 🐸) if you need any help.

Categories Setup Tab

Google Sheet are free and I suggest that you keep all your old versions and always start an investigation on a new spreadsheet rather than overwriting an old one.

Related Posts & Resources


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.
Fab 🐸

Mastering Winter ’18

Ok, here we go again!
Salesforce just opened the doors to the certifications maintenance exam (until July 13, 2018). I hate to focus new release study on the exam only, but it’s a nice way to validate your work has paid off. Here is a training plan I put together to ease the learning toward new release mastery. The idea is to enjoy the journey first (steps 1 to 4) and then get serious, drilling down into the details (steps 5 and 6).

  1. πŸ“Ί Watch some videos
  2. 🐻 Get your Trailhead badge
  3. 🌍 Browse the best blogs
  4. πŸ“˜ Read Salesforce’s resources
  5. πŸ„ Learn the Release Notes
  6. ☁️ Play around with your DE org
  7. πŸš€ Take the exam

New Release Study: It’s not about the maintenance exam. It’s about configuring Salesforce to its best in your next project. Your clients will thank you for that!

##Videos
πŸ“Ί Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study work.


In a different style, you may also want to have a look at the Release Readiness Live Admin and Release Readiness Live Developer videos. They’re an hour long entertaining talk shows discussing the ins and out of each of the Salesforce modules.

##Trailhead
🌲 You can now access the current and previous release trainings on Trailhead. Ideally, you should only need access to the current release, as it’s always best to stay up-to-date with the current release.
So, go ahead and have fun learning the new features with the trail Prepare for Salesforce Releases.

Trailhead Winter 18

As for the previous release, the Winter ’18 Trailhead module is a only summary which makes it an excellent place to start after the less involving videos.

##Blogs
🌍 I have handpicked the posts below from the best bloggers in the Salesforce community. They provide a different perspective and interesting use cases for the new features.

##Salesforce Resources
πŸ“˜ To start with, I strongly recommend that you check the Release Readiness & Feature Adoption page and maybe join the Trailblazer Community Group.
Salesforce’s key resource when it comes to new releases is the one stop-shop Release Overview page. I also like the posts from the Salesforce Developer evangelism team.

##Release Notes
πŸ„ I guess you know it by now, the Release Notes come in two flavours.

  • PDF file: I use them in the train, downloaded on my iPad to make the best of otherwise wasted time.
  • HTML page: I use them on my laptop when I need advanced search capabilities.

##Play Time

☁️ Now, get one of your DE orgs and try out what are, in your opinion, the most important features. When done, configure the feature which feels the more complex to you. I also like to run some keyword searches in the HTML version. For instance, if “Leads” are a current area of interest for you, search what’s new for “Leads” in the new release. Play around, have fun, learn.

##Exam
πŸš€ At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

An Ecosystem Of Trailblazers

On October the 17th 2017, Salesforce renamed the “Success Community” to “Trailblazer Community“. This may not sound like a relevant information in a blog dedicated to Salesforce architecture but in fact it is! Let me explain…

Success” was a Sales message: buy Salesforce and you’ll be successful. “Trailblazer” is a humble move from Salesforce, removing itself from the center stage and bringing its great community of customers and partners under the spotlight.

What it says to the prospective customer is, it’s not about our technology alone, it’s about the perennity of your investment in your business critical platform: unlike its competitors Salesforce comes packaged within a community of trailblazers. So yes, somehow, it ends up as a Sales message but one built on the Salesforce Ohana rather than on the product itself.

trailblazer-community

What I like with the new paradigm is that it’s scalable. In such a high growth economy, scalability is key to avoid bottlenecks. By recognising the role played by the community, Salesforce delegates a part of its Marketing efforts to an always growing number of trailblazers. This number is roughly growing at the same pace as the ecosystem, making it a sustainable model…

Eric Kuhl, Vice President Community, said in her annoucement post

It’s more than just a name. It’s a statement.

For me, Salesforce just discretly changed gear. In a few years time, we’ll look back at October 17 and realise how much of a great move renaming the Success Community was.

So, for the architects, this new name reinforces the idea that Salesforce is only the foundation, the starting point. Salesforce as a business solution takes its building blocks from the good old AppExchange and the AppExchange for Components, as much as the native platform. As a Salesforce professional, you’ll learn with Trailhead, resolve blockers with Answers, expand your professional network with the Community Groups, get a quick tip on Twitter, etc… In other words:

☁️ Salesforce is the technology, 🌺 the Ohana is the solution.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

A Componentisation Fairytale

I recently had a delivery saved by the componentisation brought to the Salesforce platform by the Lightning Experience. I thought I had to tell this story as it sticks so much to my beliefs of the architectural benefits of components frameworks over more “classic” web-app style configuration.

The context

It starts like this:
πŸ§šβ€ Once upon a time, a team of consultants were migrating their customer to the Lightning Experience. The customer’s actual requirement was to retrain their staff and deploy the mobile app. After a quick gap analysis, we identified that the solution footprint was qualifying for LEX upgrade (all objects supported in Lightning, that was Winter ’17 by the way). This was an ideal situation since the work required to upgrade to Lightning was also configuring Salesforce 1 at the same time. It all went well: config, UAT, training, cutover.

The drama

A few weeks after go-live, the news came in that one niche use case had been missed in UAT (not part of the customer’s test scripts) and that it was becoming a massive pain point. The Sales Ops team was used to go through their list of today’s tasks on the home page in Classic, calling back customers one after the other to address all sorts of issues. The routine didn’t even involve a single click since thanks to a custom mini-page layout they had all the required information handy when hovering on a Task.

Classic Task detail page

Accessing the Phone number was now requiring several clicks. This issue laid with a combination of reduced capabilities at the home page level and the record detail page level plus the specific constraints found on standard objects in general and Activities in particular:

  • The Home page Tasks didn’t support hovering.
  • The Task’s page layout wasn’t showing the Contact’s phone number whereas it did in Classic.
  • The Task Phone field is not exposed, preventing the consultant to build workarounds.

Not satisfied with the current behaviour of Tasks management in Lightning, we realised we would be able to deconstruct part of Salesforce and rebuild it with bits and bolts found in the AppExchange… Welcome to the world of componentisation! πŸŽ‰

The fight

We identified a Salesforce Labs components in the AppExchange called “My Tasks“. Although there was some hope at first contact, its lack of customisation turned out to be a major pain. The fact that it was opening Tasks in Edit mode meant that we wouldn’t be able to show any formula should we find a way to, somehow, pull-in the missing Phone number. So, we dropped it. Still, I left a feedback to let the developer know about what I thought were areas of improvements.

I investigated ways to do things differently but hit product limits:

I’d like to take the opportunity and remind you of the Salesforce professional rule #1:

Always leave your feedback in the AppExchange. πŸ›’
Always submit or vote for your needs in the IdeaExchange. πŸ’‘

So, during this investigation, although no immediate solution was found, I left behind me a trace that will later save my day!

The hero

Introducing Anthony Barrow, the creator of Mopsy. Anthony bumped on my AppExchange feedback. At the time, he was looking for a use case to start his journey into Lightning components development. He used my feedback as a set of requirements and built Mopsy, a highly configurable Lightning component to display a list of tasks and their relevant information.

When done, he visited me at the Thames Valley Salesforce Developer Group to show-off his baby.

Anthony Barrow

I was stoned! I waited for Mopsy to become GA and installed it at my customer who loved it! I later re-used it on other Lightning projects to fix a bit of Salesforce which would have otherwise been left untouched with the good old Classic.

The conclusion

I see three things here.

  • First, Lightning builds on the Citizen Developer success story started in 2006, I think, when Salesforce introduced the Developer Edition. It was nice for me to see the solution to my problem coming from a local developer and it validates that the model still works with LEX.
  • Also, one of the key factor of success for “Salesforce’s DE org driven ecosystem” was the fact that besides ISVs, developers have been empowered to create their app, say at the weekend, and publish them on the Appexchange. In return, Salesforce’s apps library was growing the same way the iPhone AppStore was. In Classic, although you could publish something as small as a Report, the trend was to write self-sufficient applications. With Lightning though, the level of granularity of the code pushed to the AppExchange is reduced drastically to potentially focus on a tiny use case. It means that we should see more and more of these components landing on the AppExchange to address very niche needs, maybe to the point to make finding the right component more difficult than needed. Is it time to improve the AppExchange search engine?
  • By the nature of the framework, parts of Salesforce otherwise non-modifiable are now open for customization. So, as a Lightning solution architect you need to forget about the old fashioned frustration when out-of-the-box doesn’t cut it. You now have a bigger “toolbox“, or should I say a “palette“, full of small components that you can use to refine the behaviour of your next delivery.

The end


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Mastering Summer ’17

I was talking to one of my friends from the community at a Dev Group the other day and was surprised to hear that they were simply skimming through the release notes “because they’re getting too big these days“. I argued that as a professional there’s no magic, you do need to learn what’s new if you want to use the cool new features. It may be that we need to start specialising ourselves as a consultant, but there’s no doubt that we need to stay current.
So, in this spirit, I’m trying to ease the transition to the new release by bringing in this one post all the resources that will make it easier for you to digest the β€œSummer ’17” release notes.
If you haven’t yet read my old but maintained post, Preparing Your Maintenance Exam, I suggest you do it now.

Summer '17

##Training Plan

My approach to is to enjoy the journey first (steps 1 to 4) and then get serious, drilling down into the details (steps 5 and 6).

  1. πŸ“Ί Watch some videos
  2. 🐻 Get your Trailhead badge
  3. 🌍 Browse the best blogs
  4. πŸ“˜ Read Salesforce’s resources
  5. πŸ„ Learn the Release Notes
  6. ☁️ Play around with your DE org
  7. πŸš€ Take the exam

New Release Study: It’s not about the maintenance exam. It’s about configuring Salesforce to its best in your next project. Your clients will thank you for that!

##Videos
πŸ“Ί Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study work.

In a different style, you may also want to have a look at the Release Readiness Live Admin and Release Readiness Live Developer videos. They’re an hour long entertaining talk shows discussing the ins and out of each of the Salesforce modules.

##Trailhead
🌲 You can now access one full year worth of release training on Trailhead. Ideally, you shouldn’t need it, as it’s best to always stay up-to-date with the current release but at least you’ve got this flexibility.
So, go ahead and have fun to learn about the new features with the trail Prepare for Salesforce Releases.

The Summer ’17 Trailhead module has been shortened to four units and focuses on the frequently used clouds. It’s an excellent way to dive into “learning mode”.

##Blogs
🌍 I have handpicked the posts below from the best bloggers in the Salesforce community. They provide a different perspective and interesting use cases for the new features.

##Salesforce Resources
πŸ“˜ I strongly recommend you check the Release Readiness & Feature Adoption resources page and maybe join the Success Community Group.
One of the great resources I found there is the Customer Resource page.

The Salesforce Developer evangelism team regularly publishes release centric posts.

##Release Notes
πŸ„ I guess you know it by now, the Release Notes come in two flavours.

  • PDF file: I use them in the train, downloaded on my iPad to make the best of otherwise wasted time.
  • HTML page: I use them on my laptop when I need advanced search capabilities.

##Play Time

☁️ Now, get a one of your DE orgs and try out what are, in your opinion, the most important features. When done, use whichever features feel confusing or complicated to you. Play around, have fun, learn.

##Exam
πŸš€ At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

The Million Dollars Picklist

Several times in my career, I came across situations where my client wanted to take the driving seat of an implementation after a brief introduction to the basics of Salesforce configuration. Maybe they looked over the shoulder of a consultant creating a report or a page layout. “Oh yes, I get it it’s a bit like such and such language” I still hear them shouting…

##The Story
One of my friends, was telling me about this Sales Cloud project originally meant to be declarative-only but the customer was feeling strongly about the implementation of a lookup field which should look like a picklist field enhanced with typeahead capability.

The team didn’t have the exact skills required, but under the customer’s pressure, one consultant was assigned the task to implement a typeahead picklist pulling its data from a custom object. The development was slow. The testing reported quite a few problems which in turn were slow to be fixed. The client was also squeezing in nice-to-have on top of bug-fixes. The project ended-up delayed and way over budget for a picklist which, quite frankly, could have been delivered as a standard lookup at no added cost. For my friend’s company the project was a total disaster.

##Agile Implementations
When implementing Salesforce at a customer you need to make sure that users’ inputs won’t derail the project. It’s one thing to leave the door open to feedbacks and suggestions but it’s another thing to accept everything because it’s coming from the customer.

In consulting, it’s not the vendor working FOR the customer, it’s the vendor AND the customer working FOR the project.

The project is an entity in itself with a budget, a timeline and a scope.

The project triangle

##The Salesforce Police

The vendor and the customer must work together to keep the balance right. Because the vendor is the one bringing project expertise to the table, he is the one expected to agitate a red flag when the client’s changes in requirements are becoming a risk to the project. As a Salesforce expert, you need to make sure that best practices are followed, declarative comes before programmatic, you don’t reinvent the wheel, your solution is compatible with the next releases… You are the Salesforce police!

The Salesforce police

##Avoiding Scope Creep
To avoid your project to go pear shape as in the previous example, you may want to consider the following advices:

End of Sprint Demo

This is the place where most of the scope creep happens. Because there’s still, in theory, plenty of budget in this phase of the project there’s no feeling of financial pressure, and there’s tendency is to accept change requests with the hope that they will be absorbed during the remaining part of the build. Also, be conscious that you are pulling the curtain on unfinished software. The chances are that your audience can’t visualise the solution as you do and potentially ask for useless changes.

  • Be budget conscious from start to finish. Your team has a fixed capacity: More effort will require more resources or more time and anyhow more budget.
  • Avoid demoing half-baked features as this is going to waste everybody’s time and bring low-quality feedback.

User Acceptance Testing

This is another part of the project that can generate an important increase in scope. Key users may be change averse, they may want their brand new system to behave exactely like the old one. The idea of the UAT is to get a feel for adoption before go-live fixing bugs and addressing show-stoppers. It’s not about going back to the drawing board because Joe Blogg doesn’t like your solution.

  • Always clearly state the goal and limits of UAT.
  • Obviously, it’s down to the stakeholders to deal with people issues internally.

User Designed Solution

Some users will find interest in this refreshing new project and drop funky requirements as a way to enlighten their day. They may ask you features that exist in other web applications like Facebook or Instagram. Please remember that ultimately you will be the one with the neck on the table when your Facebook like typeahead doubles the cost of the build phase.

  • Key users involvement in agile projects is about gathering business requirements then validating that the solution delivers the expected business outcome. It’s not about swapping seats.
  • Listen to implementation preferences but make the final decision design based on your experience.

New Features Requests

Accepting new functionality requests up until UAT is totally fine. It’s one of the core benefits of agile methodologies. But this should not lead to scope creep.

*Always position a conversation on new feature requirement in the context of project success and ask what the trade-off is: increase in budget, delayed delivery or dropping another feature.

Never Ending Refinements

To be deployed to production in time your solution must first reach code-freeze. In the picklist story, the customer was asking for numerous non-functional refinements, pixel level cosmetics. Because the work started without a crystal clear description of the requirement, many iterations were required before a satisfactory result.

  • Make sure that any piece of work is clearly described and understood by all parts. Associate each user story to acceptance criteria. Avoid subjective description like β€œThe picklist must look great”. From the list of acceptance criteria, you should be able to write the project’s Definition Of Done. Get an early sign-off.

Hopefully these few advices will help you avoid getting into budget troubles while keeping your customer happy and your project successful.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸

Mastering Spring ’17

Every time Salesforce ships a new release and however thick are the release notes, I do advocate for in-depth study! This is the only way that a Salesforce professional can stay on top of their game! Today, we’ll review the information available for β€œSpring ’17”. If you haven’t yet read my old (but maintained) post, Preparing Your Maintenance Exam, I suggest you do it now.

##Training Plan

My recommended approach to is to enjoy the journey first (1 to 4) and then get serious, drilling down into the technical detail (#5).

  1. πŸ“Ί Watch some videos
  2. 🐻 Get your Trailhead badge
  3. 🌍 Browse the best blogs
  4. πŸ“˜ Read Salesforce’s resources
  5. πŸ„ Learn the Release Notes
  6. πŸš€ Take the exam

New Release Study: It’s not about the maintenance exam. It’s about using Salesforce’s most suitable features in your next project. Your clients will thank you for that!

##Videos
πŸ“Ί Salesforce has a YouTube Channel where you’ll find all of their release specific video content. I find it a great way to start your new release study work.

In a different style, you may also want to have a look at the Release Readiness Live videos. They’re an hour long talk shows discussing the ins and out of each of the Salesforce modules.

##Trailhead
🌲 You can now access one full year worth of release training on Trailhead. Ideally, you shouldn’t need it, as you should always stay up-to-date with your certifications, avoid confusing features availability, turn the page and focus on the current release.
So, go ahead and have fun learning about the new features with the trail Prepare for Salesforce Releases.

The Spring ’17 Trailhead module is seven units long and spans across most Salesforce clouds. It does take some time to go through it especially if you drill down into the resources provided. But, it’s an excellent way to prepare your brain for the Release Notes.

##Blogs
🌍 The posts below are hand-picked from the best bloggers in the Salesforce community. They provide a different perspective and interesting use cases for the new features…

##Salesforce Resources
πŸ“˜ I strongly recommend you check the Release Readiness & Feature Adoption resources page and maybe join the Success Community Group.
One of the great resources I found there is the Customer Resource page.

The Salesforce Developer evangelism team regularly publishes release centric posts. And you can also find quite a few interesting resources on the Partners site.

##Release Notes
πŸ„ I guess you know it by now, the Release Notes come in two flavours.

  • PDF file: I use them in the train, downloaded to my iPad to make the best of otherwise wasted time.
  • HTML page: I use them on my laptop when I need advanced search capabilities.

Don’t hesitate to turn on a DE orgs and try out whichever new feature feels important (or confusing) to you.

##Exam
πŸš€ At this stage, the maintenance exam will be a breeze. I’m doing the exam using two monitors with WebAssessor on the main screen and two browser tabs on the second screen: (1) HTML release notes & (2) a DE org ready for quick tests.


I hope you enjoyed this post. Don’t hesitate to ping me on Twitter if you have any comment or question.

Fab 🐸