Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Salesforce Anti-Patterns
Salesforce Anti-Patterns

Salesforce Anti-Patterns: Create powerful Salesforce architectures by learning from common mistakes made on the platform

eBook
$25.99 $37.99
Paperback
$46.99
Audiobook
$51.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Salesforce Anti-Patterns

Why You Need to Understand Salesforce Anti-Patterns

Salesforce anti-patterns tell us about the kinds of systematic mistakes that make their way into many Salesforce projects, mistakes that can even seem like a good idea at the time of implementation but end up having serious drawbacks in the long run. We will learn the most common of these mistakes and how to think about them throughout this book. However, to do so, we must first really understand what anti-patterns are and how understanding them can help us architect and design better systems.

In consequence, this chapter will start by explaining what anti-patterns are by going through a number of different definitions and ways of looking at them. You will then learn how they can help you deepen your understanding of architecture by knowing how these common mistakes are made and how they can seem like a good idea at the time. We then finish the chapter by explaining the book and the ways in which you can approach the content.

In this chapter, we’re going to cover the following main topics:

  • Understanding anti-patterns
  • Where do anti-patterns come from?
  • How can anti-patterns deepen your architecture skills?
  • Learning about anti-patterns from an example

Understanding anti-patterns

Most developers and architects will be familiar with the concept of a pattern – a good solution to a recurring problem within an architectural domain described in a formalized and reusable way. Some classic examples include the following:

  • Singleton: A software design pattern that limits the number of instances of a given type to one.
  • Fire-and-forget: An asynchronous integration pattern that sends off a message from a computational context and proceeds without waiting for a response.
  • Model-View-Controller (MVC): An architectural pattern that divides an application into three tiers with specifically defined responsibilities:
    1. First, a model maintains the state of the application and is responsible for any changes to data
    2. Second, a view shows a particular representation of that model to an end user via some interface
    3. Third, a controller implements the business logic that responds to events in the user interface or changes in the model and does the necessary mediation between the view and the model

This pattern is shown in the following diagram:

Figure 1.1 – MVC pattern diagram

Figure 1.1 – MVC pattern diagram

Patterns such as these have been defined at many levels of abstraction and for many different platforms.

References

You can look at the following resources to get a good introduction to the various patterns that one can apply from a Salesforce perspective.

The integration patterns guide lists all the main patterns to use when designing Salesforce integrations: https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_intro_overview.htm. In a Salesforce world, this may be the most commonly referenced set of patterns as they are ubiquitous for integration design.

The book Apex Design Patterns from Packt, by Anshul Verma and Jitendra Zaa, provides patterns at the software design level and the concrete code level for the Apex language.

The Salesforce Architects site, while new, contains a range of patterns across domains, from code-level specifics to reference architectures and solution kits to good patterns for selecting governance: https://architect.salesforce.com/design/#design-patterns.

The point is that we have lots of good patterns to choose from on the Salesforce platform, many that are provided by Salesforce themselves, others by the wider community. Many patterns that apply to other platforms are also relevant to us and we learn much by studying them.

But this is a book about anti-patterns, not patterns. So why am I starting with a discussion about patterns? It turns out that the two are nearly inseparable and originate in the same tradition. Understanding anti-patterns, therefore, begins with an understanding of what a pattern is. Indeed, one common form of anti-patterns is a design pattern that has been misapplied. We will explore this in the next section.

From pattern to anti-pattern

The design pattern movement in software architecture originates from the work of Christopher Alexander, an architect whose job was to design buildings rather than systems. In his work The Timeless Way of Building, he introduced a pattern template for physical architecture that consisted of a name, a problem statement, and a solution in a standardized format.

The rhetorical structure provided by the Alexandrian template was rapidly adopted by architects of a different kind, the ones that build software. They recognized the power of a standardized way to describe problem-solution sets for communicating good practice. With the publication of the classic Gang of Four book, Design Patterns: Elements of Reusable Object-Oriented Software, the use of patterns became mainstream within software development and remains so to this day.

The research on patterns inspired an incipient community of practitioners and researchers in software engineering to think about failure modes of software systems analogously to how design patterns were being used. This happened over an extended period of time, and it isn’t possible to point to anyone in the anti-patterns movement that can be seen as the genuinely foundational figure.

However, many research papers on the topic start with the definition given by Andrew Koening in the Journal of Object-Oriented Programming in 1995. This definition says that an anti-pattern is very similar to a pattern and can be confused for one. However, using it does not lead to a solution, but instead has negative consequences.

That definition captures much of the essence and can be usefully combined with the following thoughts from Jim Coplien, another early pioneer. He thought that good patterns in and of themselves were not sufficient to define a successful system. You also have to be able to show that anti-patterns are absent.

In a nutshell, then, an anti-pattern is a pattern that occurs in unsuccessful software systems or projects that can look superficially like a good solution but in practice gets you into trouble. Some common anti-patterns that have been around for ages and are still relevant include the following:

  • Stovepipe: A system or module that is effectively impossible to change because of how its interfaces are designed. See the following diagram for an illustration:
Figure 1.2 – The Stovepipe anti-pattern

Figure 1.2 – The Stovepipe anti-pattern

  • Blob: A design where a single class effectively encapsulates all the business logic and functionality, leading to major maintenance headaches.
  • Intensive coupling: A design that uses an excessively large number of methods from another class or module in implementing a feature, leading to a deep dependency that is hard to understand or change.

We’ll dig into all these anti-patterns from a Salesforce perspective in later chapters, underscoring the unfortunate fact that Salesforce, while a great platform, is still a software system prone to the kind of mistakes that have plagued software systems for decades. If this were not the case, then, of course, there’d be no need for this book or, for that matter, for Salesforce architects.

Having discussed the historical origins of anti-patterns, we will now discuss how they arise in the real world.

Where do anti-patterns come from?

Anti-patterns tend to arise again and again because the circumstances that drive technology projects into trouble are at least somewhat predictable. Equally predictable are the responses of people put into those situations and as people in tough spots frequently make the same bad decisions, we get systematic patterns to study.

Generally speaking, the most important thing to remember about anti-patterns is that they seem like a good idea at the time. They aren’t simply bad practices that someone should know better than to apply. You can make a reasoned argument that they should lead to good or at least acceptable outcomes when applied.

Sometimes the decision to apply an anti-pattern is down to inexperience, and sometimes it is down to desperation. But as often as not, it is down to experienced professionals convincing themselves that in this case, doing what they’re doing is actually the right call or that this situation really is different.

We will try to reflect this diversity of origins in the examples we show throughout this book. However, to do this, we first need to show how we will present the examples in a consistent way to enable learning.

An anti-pattern template

One of the key characteristics of both patterns and anti-patterns is that they are written using a recognizable template. Many templates have been suggested over the course of the years, some more elaborate than others.

The template we will use in this book contains the bare bones that recur in nearly all existing anti-pattern templates. However, we do not include a great number of optional elements. Most additional elements that are included in other templates serve to ease categorization or cross-referenceability. Those are highly desirable elements to have when creating a searchable catalog of patterns or anti-patterns but are less useful in a printed book. Therefore, we omit them and instead include the following elements:

  • Name: An easy-to-remember moniker for the pattern that serves to identify it uniquely and help discourse among architects.
  • Type: In this book, we categorize our anti-patterns by the domain from the Certified Technical Architect (CTA) review board examination that they are relevant to. This is both to help people on the CTA journey, but also because this is a familiar typology for Salesforce architects.
  • Example: We will introduce each anti-pattern by giving an example of how it might occur. The examples will be fictional but grounded in real-world events. This will frame the anti-pattern and give you an immediate understanding of the issues involved before delving deep into the nuts and bolts.
  • Problem: This section describes more formally the problem or problems that the anti-pattern purports to solve. These are the real issues that the anti-pattern is meant to be a solution for, although using it in practice will turn out to be a bad idea.
  • Proposed solution: How the anti-pattern claims to solve the problem described in the previous section and how that can be tempting to believe given certain circumstances.
  • Results: In the results section, we outline what results you can expect from applying the anti-pattern along with its main variations. We go into the detail of why this is a bad solution, although it might look good at the outset.
  • Better solutions: The final section in the template will tell you what to do instead when faced with the problem that is the basis for the anti-pattern. Not all problems have easy solutions, but you can generally do better than applying an anti-pattern.

Now that we have an understanding of what anti-patterns are and how they are going to be structured in this book, we will move on to explaining how you, as an architect, can improve your skills by using them to learn.

How can anti-patterns deepen your architecture skills?

While a theoretical understanding of what patterns and anti-patterns are and how they might generally be helpful is great, you are no doubt looking for more from this book than just a theoretical discussion.

In this section, we will go through the value of learning from mistakes, both your own and other people’s, and show you how we are going to use anti-patterns to sharpen your architecture chops in the context of a concrete example.

How great architects learn from mistakes

We work in an industry where failure is a normal occurrence. The Standish Group CHAOS report, which is the most commonly cited source on these matters, in 2020 estimated that 66% of all technology projects globally ended in partial or complete failure.

This is a little bit better than when I started my career more than 20 years ago. Then, the figure stood in the low 70s. However, while things have improved, they have only improved a little bit, despite agile development, cloud computing, artificial intelligence, and great software platforms such as Salesforce.

This is disheartening, but only proves the point of one of my personal heroes, Fred Brooks, that “The complexity of software is an essential property, not an accidental one," which unfortunately means that we will never find a silver bullet to solve all problems in software architecture and design. Instead, we are faced with the hard work of learning how to manage this complexity in a reasonable way. To do so is the principal job of an architect.

It stands to reason that in an area with high failure rates and irreducible complexity, we need to have good rules and guidelines to keep us on the right path. That is what patterns and best practices are for. They are indispensable, but they are not enough.

To become great at our profession and to be able to design software that bucks the industry trend, we need not just learn from our own failures but also from the vast repository of failed projects and bad practices we see all around us.

That usually isn’t hard to do. Many times, when the architect is brought into a project, it is because there is already an issue to fix. Using these occurrences as learning opportunities and analyzing them with that view in mind can be greatly rewarding.

However, there is a step further to go in this direction, which is what anti-patterns offer. They encompass the ways in which things frequently go wrong in a way that allows both post-hoc learning and also real-time intervention.

The thing is that while projects go wrong, they don’t do so randomly. There are systematic patterns that repeat time and again. Learning how things go wrong in systematic ways can give you an entirely new set of responses in your toolbox that you can deploy to help make your project one of the 34% that don’t fail.

We will start that learning journey with an explanatory example.

An example: The Hero anti-pattern

There is no better way to start learning than using an example. We won’t have the chance to cover many general management-level anti-patterns in this book, so I will use one of the classics in this genre to show you how the template works and how to read it to get the most out of it.

First, we will present the anti-pattern and then provide an analysis of what we can learn from it.

Hero (development life cycle and deployment planning)

Tom is the project manager for a large greenfield Salesforce implementation in the manufacturing industry working with Sales and Service Cloud for 2,000 users. The project is meant to be quite simple, a basic MVP to get the platform off the ground, and that is how it has been scoped and staffed. The project is meant to go into full production after six months with four months of implementation followed by test, training, rollout, and hypercare.

The first three months of implementation fly by and everything on the project management dashboard stays green. The team makes steady progress and relations with the external consultancy that is helping provide specialist resources remain good.

However, when Tom delivers the first round of business reviews, things start to change quickly. It turns out that a lot of detailed requirements have been missed from the initial scope and that many edge cases aren’t covered by the current configuration. The feedback from the business is that they won’t be able to go live with the system unless a large list of additional functionality is included.

Tom goes to the steering committee to ask for more budget and a scheduled increase to accommodate the business demands. The steering committee grants the request for an increased budget but tells him that the schedule is immovable. He must find a way to get it done within the current timeline.

Tom replans the project from the ground up. He can just make it all fit by compressing the testing and cutover plan if he adds some new resources from the external partner and asks for some overtime from his existing team. He sends out the new plan to the team along with a rousing email calling on everyone to rise to the challenge.

Over the course of the next month, the project slips again, and Tom’s new plan is looking less and less likely to succeed. It’s not that anything big goes wrong, but lots of little things just aren’t completed on time or require rework because of misunderstandings. In particular, the new consultants he has brought in from the external partner seem to make a lot of basic mistakes.

Tom calls his boss, the Senior Director for IT, to tell him about the situation and ask for help in getting an extension to the schedule. She tells him that the schedule has been committed to the board of directors of the company and that heads will roll if it is not met. This is the time for the team to pull out all the stops and get it done, she says.

Tom goes back to his team to relay the news and once again calls for everyone to give it everything to get things over the line. Unfortunately, most people are already working as hard as their situations allow. In addition, relations with the external partner have soured and they are not willing to put in additional hours without additional funding, which Tom does not have in the budget.

There are some bright spots, however. In particular, two young members of the technical staff, Kayleigh and Negash, prove willing to go above and beyond in order to get things done. Over the final month of delivery, they work 24/7 on the project with Tom cheering them on.

Figure 1.3 – The dangerous feeling one might have when engaging in the Hero anti-pattern

Figure 1.3 – The dangerous feeling one might have when engaging in the Hero anti-pattern

Between the two of them, they manage to clear away enough of the new features and change requests during the final stretch that Tom feels growing confidence that he will be able to meet enough of the requests for the project launch to not be a disaster. There will be exceptions, but he can find a way of managing those later. As long as the impending go-live goes well, the project can still succeed.

However, User Acceptance Testing (UAT) throws a spanner in the works as major quality issues are discovered. The steering committee holds a crisis meeting that ends up concluding that the go-live will have to be postponed for a week. The team will have to work flat out during this period to fix the issues.

While everyone pitches in, the responsibility falls disproportionately on Kayleigh and Negash, who are both starting to show the strain of the continuous effort. Tom gives them encouragement at every chance and singles them out for public praise. He also promises them a cash bonus and extra holidays when the project is done.

The day for retesting arrives and while many issues have been fixed satisfactorily, there are quite a few remaining issues, including a good number that had previously been fixed and are now recurring.

The steering committee holds another crisis meeting and they take the decision to go ahead with the launch despite the issues. These issues will need to be fixed during the hypercare period, but they can be tolerated for a short amount of time.

The next few weeks of Tom’s, Kayleigh’s, and Negash’s lives happen in a blur of constant motion. They are pulled from escalation to escalation as issues occur, are fixed, and reoccur. Kayleigh and Negash start buckling under the pressure, but with no alternative resources knowing the configuration, they are effectively forced to carry on.

Eventually, the issues settle down. The important bugs are fixed, the business puts in place manual workarounds for the things that were missed, life starts to get back to normal. Tom calls the team for a victory celebration, but it is a muted affair.

After taking their extra holidays, Kayleigh and Negash both accept offers from big consulting companies, leaving the company with no one to support large chunks of functionalities on their newly implemented platform.

Problem

The Hero anti-pattern generally purports to fix an urgent delivery problem that has occurred either in a project context, as in our example, or during normal operations. When it occurs in normal operational mode, this is often in a context where firefighting issues with the system have become a run-of-the-mill occurrence.

Usually, the problem occurs in a context characterized by some of the following factors:

  • There are limited resources to carry out the work needed to fix the urgent problem and there are good reasons why new resources cannot be brought in at this time.
  • The project has a tight schedule that is perceived to be set in stone or the issue is live, critical, and affecting important business users adversely in ways that cause a lot of noise.
  • There is knowledge about the problem concentrated in a small number of heads, that is to say, a few people, such as Kayleigh and Negash, who volunteered to take on the role, or frequently a lead developer who is the only one with the technical knowledge to fix the issue at the given time.
  • The situation is considered somehow special: either this is a new project and there isn’t a precedent, or the issue is considered so unique that you can’t really plan for it.
  • The crisis element is often quite visible in situations that foster the Hero anti-pattern. Sometimes, important parts of the company’s future success or even survival are brought into play.

These factors can all make the problem seem more important to fix in a limited time scale and make the Hero option seem attractive.

Proposed solution

The Hero anti-pattern proposes to solve the problem described in the preceding section by allowing an individual or a small group to take too much responsibility for resolving it effectively by working as much as is required, even at some cost to themselves, to get things done.

This can be attractive both to management and to the people involved for a variety of reasons:

  • The effort does tend to produce some results in the short term, giving a sense of momentum and success.
  • Everyone, or at least nearly everyone, wants to be a hero and be singled out for praise and rewards. To some people, that is worth the inconvenience of the additional effort.
  • It is always possible to imagine that the current situation is somehow unique and not reflective of a deeper problem with process or culture within the organization, thereby justifying what is done as exceptional.
  • Even if we acknowledge that there are underlying issues, often these can be put out of mind as something to be dealt with later. Of course, in organizations that rely on the Hero anti-pattern, later never comes.

There are several common variants of the Hero anti-pattern that are worth mentioning:

  • Superman, a variant where someone, usually a senior technical person, is glorified and held up as the only person who can fix serious issues with a given system. Often, this myth becomes self-perpetuating.
  • Rookies, the variant seen in the example, where junior team members take on extra responsibilities in an effort to step up to the challenge that is being presented to them.
  • No Time for Knowledge Transfer, a situation where heroics are required by a seemingly never-ending time crunch that would make it possible for the hero or heroes to transfer required knowledge to others.

While this anti-pattern is clearly seductive, and many of us have fallen prey to it several times over the course of our careers, it almost invariably has negative long-term consequences, which we’ll explore next.

Results

While the Hero anti-pattern tends to give good short-term results, which is a major source of its enduring appeal, there is a long list of negative results that tend to accumulate over time in organizations that rely on this anti-pattern to get things done.

Some of the most common negative results include the following:

  • The creation of a single point of failure that increases risks to an organization substantially, should the Hero fall under the proverbial bus, and gives the Hero a lot of leverage in negotiations with the organization.
  • The Hero, over time, will start to feel the pressure, as Kayleigh and Negash did in our example, but will have very limited options to change the situation. This situation is highly conducive to burnout, which brings with it all the problems of the first point as well as the risk of the Hero making serious errors due to the strain.
  • Heroes don’t scale. That is to say, the organization won’t be able to deploy projects at a bandwidth that is wider than what the Hero can accommodate. This can be seriously limiting to new initiatives in some cases.
  • Heroes aren’t replicable. You can’t easily replicate the Hero or their special powers and therefore you have limited options for creating a predictable and repeatable process.
  • Heroes can accumulate serious technical debt, which may often go unmanaged, because they must do things quickly, under pressure, and without real supervision. This can lead to major maintenance issues in the long term.
  • There is low transparency into the process by which Heroes get things done, leading to a lack of predictability and manageability.
  • Heroes don’t have time to explain how things were implemented, so there is often poor or entirely missing documentation.
  • The rest of the team may feel disempowered, overlooked, and demotivated as all the attention goes to the Heroes, with little opportunity for others to make contributions in a non-heroic way.

You don’t necessarily see all these negative outcomes in all instances of this anti-pattern, and this list unfortunately isn’t exhaustive either. But hopefully, this is enough to make you think twice about applying this anti-pattern and look at better options, which we’ll explore next.

Better solutions

The fundamental problem with the Hero anti-pattern is that you are relying on specific individuals, with often hidden knowledge, working hard – usually too hard – to get things done rather than on repeatable, transparent, and manageable processes that will allow you to continue to deliver, even as the context and the people involved change.

The primary way to get away from the Hero anti-pattern is therefore to work on your processes and spread skills and knowledge systematically across the team. In our example, there were potential issues with scope management, with the initial discovery work, with governance and its understanding of the real issues on the ground, and with the way the project had been structured to go live with a big bang rather than in small increments.

What specific interventions will provide the most leverage will vary a lot between organizations, but some good places to look include the following:

  • Moving towards a DevOps culture with smaller incremental releases that have lower risk profiles
  • Having multi-functional teams with frequent direct collaboration and peer review to spread knowledge around
  • Encouraging and rewarding leads and specialists more for mentoring and bringing up juniors rather than for putting out the latest fire
  • Incorporating better risk management and governance in projects to have the right contingencies in place when things go wrong, as they inevitably will
  • Challenging the cultural norms that put primacy on delivering big dramatic wins against the odds, rather than on making steady, undramatic, but repeatable progress on a regular basis
  • Emphasize roles and processes, not individuals when planning, building, and operating systems, especially when communicating with the wider stakeholder community
  • Make the costs of the Hero anti-pattern visible by capturing the technical debt, the risk, and the missed opportunity to be able to replicate efforts that the organization loses by relying on this pattern
  • Ensure that detailed requirements and edge cases are planned for when beginning the project, which reduces the probability that you will need a hero

In truth, it is not always possible to completely avoid the Hero anti-pattern. Sometimes, things are on fire and there is only one person around who can fix it. What we need to recognize is that this is not a good situation, but an anti-pattern that we need to work hard to fix so that it doesn’t recur. The more you do this, the less you’ll have to rely on heroes and the fewer fires you’ll have to put out.

Having covered our first example of a real anti-pattern, we will go on to analyze it a little more deeply to see how we can maximize our learning from it.

Analyzing the example

The Hero anti-pattern is a classic and most seasoned IT professionals will have encountered it during their careers. However, interesting as it is, in this book, we are also looking to pull out the larger patterns, we can learn from our examples to hone our architecture skills.

Throughout this book, we will do this by having a section towards the end of a chapter that extracts key learning points for you to take on your future architecture journey. We do this both with a mind to real-life practice, but we also list learning points specifically for those of you who are on the track towards the CTA exam.

Considering the Hero anti-pattern, a few learning points you might extract for real-life practice are as follows:

  • When you are faced with a crisis that calls for extraordinary effort on the part of some or all of the team, take the time to step back and consider the process failures that led to this situation. Capture this for future use.
  • Relying on a small number of extremely skilled individuals can be dangerous in the long run, even if it’s useful right now.
  • The pressure you might feel towards going above and beyond may reflect a culture that doesn’t have its priorities right from a technical point of view. You may want to challenge that if possible.
  • Go out of your way to empower and bring up junior staff to avoid being in the position where you have to be the hero.
  • Be diligent about advocating for good governance both at the project and technical levels as well as capturing and remedying the technical debt that accumulates from “special” situations.

Looking at the CTA review board, you can note the following lessons:

  • Be careful about suggesting big bang delivery approaches. They can be the right choice, but frequently they can lead to the issues highlighted in the example. Prefer using agile, incremental approaches unless there is a specific reason not to.
  • Ensure that you do include the necessary governance functions, including Project Management Office (PMO), steering committee, design authority, and maybe a change advisory board. In this example, much could have been avoided if the latter two had been in place.
  • Be explicit about risks and risk management. Include risks upfront and be ready to talk about how to manage and mitigate them.

While we will be able to directly pull out many learning points, we also encourage you to go further with this method and see how much more you can get out of them. Learning from anti-patterns is a continuous and very rewarding activity for aspiring architects.

We have now achieved a foundational understanding of what anti-patterns are and how they can help us achieve greater mastery of Salesforce architecture. It only remains to summarize our progress before we dive into the deep end by looking at anti-patterns in the system architecture domain.

Summary

Phew, that was a lot of background. Thank you for sticking with it. You are now in a position to move forward with the book having understood the key facts about what anti-patterns are and how you can learn from them.

A few things to remember as you go into the next chapters are as follows:

  • It is important not to simply think about anti-patterns as bad practice. Bad practice is obvious, but anti-patterns are nefarious. They masquerade as good solutions and can be persuasive in certain situations, even to experienced professionals. That’s also what makes them so fun to study.
  • While we will be presenting a lot of individual anti-patterns in this book, it is important to draw out the parallels and meta-patterns that can be gleaned by comparing and contrasting them. We will do some of that work for you in the analysis sections that can be found throughout the book. You should also try to do this activity for yourself.
  • While we are focusing on a Salesforce context, many of the patterns you will learn about are applicable to other platforms as well. Some are even classics that will be known by a great number of grizzled architects.

With that out of the way, we are now ready to look in detail at our first architecture domain: systems architecture.

Left arrow icon Right arrow icon

Key benefits

  • Build exemplary Salesforce architectures by studying anti-patterns that lead to failing systems
  • Demonstrate deep architectural principles that you can apply in your Salesforce projects
  • Identify common problems in Salesforce architectures and apply better architectural solutions

Description

Salesforce Anti-Patterns teaches you to spot errors in Salesforce patterns that may seem like a good idea at first but end up costing you dearly. This book will enable Salesforce developers and architects to understand how ingenious Salesforce architectures can be created by studying anti-patterns and solutions to problems that can later lead to serious implementation issues. While there are several books on the market that start with the question, “How do I create great Salesforce architecture?” and proceed to a solution from there, this book instead starts by asking, “What tends to go wrong with Salesforce architectures?” and proceeds to a solution from there. In this book, you’ll find out how to identify and mitigate anti-patterns in the technical domains of system architecture, data architecture, and security architecture, along with anti-patterns in the functional domain of solution architecture as well as for integration architecture. You’ll also learn about common anti-patterns affecting your Salesforce development process and governance and, finally, how to spot common problems in how architects communicate their solutions. By the end of this Salesforce book, you’ll have gained the confidence to architect and communicate solutions on the Salesforce platform while dodging common mistakes.

Who is this book for?

This book is for Salesforce architects, aspiring architects, developers, consultants, and decision makers who want to start making the right architectural choices or prepare for their journey to CTA. This book helps you gain a professional understanding of Salesforce and its building blocks. It is not code-centric, so you will benefit from both functional and technical experience, but a basic level of platform understanding is required.

What you will learn

  • Create a balanced system architecture by identifying common mistakes around on- and off-platform functionality and interfaces
  • Avoid security problems that arise from anti-patterns on the Salesforce platform
  • Spot common data architecture issues and discover intuitive ways to address them
  • Avoid the dual traps of over- and under-customization in your solution architecture
  • Explore common errors made in deployment setups, test strategy, and architecture governance
  • Understand why bad communication patterns are so overlooked in architecture
Estimated delivery fee Deliver to Russia

Economy delivery 10 - 13 business days

$6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Nov 30, 2022
Length: 206 pages
Edition : 1st
Language : English
ISBN-13 : 9781803241937
Vendor :
Salesforce
Category :
Concepts :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Estimated delivery fee Deliver to Russia

Economy delivery 10 - 13 business days

$6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Nov 30, 2022
Length: 206 pages
Edition : 1st
Language : English
ISBN-13 : 9781803241937
Vendor :
Salesforce
Category :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 143.97
MuleSoft for Salesforce Developers
$46.99
The Salesforce Business Analyst Handbook
$49.99
Salesforce Anti-Patterns
$46.99
Total $ 143.97 Stars icon

Table of Contents

14 Chapters
Part 1: Technical Anti-Patterns Chevron down icon Chevron up icon
Chapter 1: Why You Need to Understand Salesforce Anti-Patterns Chevron down icon Chevron up icon
Chapter 2: How Not to Mess Up Your System Architecture Chevron down icon Chevron up icon
Chapter 3: How Not to Get Confused about Security Chevron down icon Chevron up icon
Chapter 4: What Not to Do about Data Chevron down icon Chevron up icon
Part 2: Solution Anti-Patterns Chevron down icon Chevron up icon
Chapter 5: Unpicking Solution Architecture Troubles Chevron down icon Chevron up icon
Chapter 6: Keeping Integration Straight Chevron down icon Chevron up icon
Part 3: Process and Communication Anti-Patterns Chevron down icon Chevron up icon
Chapter 7: Keeping the Development Life Cycle from Going off Track Chevron down icon Chevron up icon
Chapter 8: Communication without Mistranslation Chevron down icon Chevron up icon
Chapter 9: Conclusion Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(15 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




AMEY J. Dec 04, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Lars has done a great job in structuring the book itself, it has minute details of each topic for newbies, diagrams based interpretation for seasoned folks and curated quick recap summaries for CTA aspirants.Everyone majorly focuses on patterns to introduce standardization but Lars told us that it can indeed introduce Anti-pattern which might lead you to rethink entire design.
Amazon Verified review Amazon
JR Detroit Jan 25, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This was a great read. Easy to understand and lots of use cases and scenarios that are real world (I have run into many of the anti-patterns described in my career). The structure of the book and the way the sections and chapters are laid out were super useful.Specifically, I liked the way the chapters described the anti-pattern, then a use case, and then WHY the anti-pattern might have been used, the results, and recommendations on alternatives. The "extras" included about how to apply this learning to the CTA exam are also a great bonus. As a side note, the author also included a set of additional readings, both for more fundamentals of anti-patterns and for architects and those studying for the CTA exam. Some of his recommendations are already in my library, and I will definitely be looking into the others.Any Architect wanting to hone their craft, especially those studying for the CTA, will find value in this book. I would also submit that anyone trying to set up an architecture governance board for their organization should add this book to their "must-read" list.
Amazon Verified review Amazon
Steven Gonzalez Jul 25, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
It is a comprehensive guide that delves into the common mistakes and pitfalls encountered in Salesforce architecture and development. It provides valuable insights on how to create a balanced and effective system architecture by identifying and rectifying these anti-patterns. Whether you are a seasoned Salesforce architect or an aspiring one, a developer, consultant, or a decision-maker involved in Salesforce projects, this book offers essential knowledge to help you make the right architectural choices.One of the key strengths of this book lies in its ability to highlight the significance of on- and off-platform functionality and interfaces within a Salesforce system architecture. Malmqvist skillfully identifies and addresses typical mistakes made in integrating these components, thereby enabling readers to build a more coherent and efficient system.Security is a paramount concern for any Salesforce implementation, and this book does not disappoint in tackling the security implications of anti-patterns. By bringing attention to common security issues that arise from these practices, the author equips readers with the necessary knowledge to fortify their Salesforce platform against potential threats.Data architecture is another critical aspect covered in the book. Malmqvist adeptly points out common data architecture issues and provides intuitive solutions to address them. Readers will gain a deeper understanding of data management within Salesforce, ensuring data integrity and optimized performance.The book delves into the challenging balance between customization and standardization in solution architecture. By cautioning against over- and under-customization, readers learn to strike the right balance, resulting in a scalable and maintainable solution.
Amazon Verified review Amazon
Kristian Margaryan Jørgensen Feb 21, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book is a must-have for Salesforce architects, and an ought-to-have for all Salesforce professionals.Salesforce Antipatterns is concise, illustrative, and - at times - even a funny book about a serious subject - making it easy to read compared to other tech books. For anyone preparing for the CTA it is as critical to understand what or how not to design, as it is to know what to propose.
Amazon Verified review Amazon
Oleg May 09, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Learn Anti-patterns across the org, and don't repeat them in the future. This book will enhance your knowledge with mistake examples and solutions based on the author's experience.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela