The OOTB Fallacy

Posted by admin on October 13, 2024

My Personal Experience with ServiceNow implementations

When it comes to ServiceNow implementations, there is a widely promoted mantra: "Use Out-of-the-Box (OOTB)." The idea is that by leveraging the platform’s pre-built capabilities, you can save time, reduce complexity, and avoid reinventing the wheel. However, through my years of experience implementing solutions—particularly within the HRSD space—I’ve come to realize that this belief is often misguided. In fact, for most organizations, OOTB is simply not enough.

Disclaimer!

The thoughts and perspectives shared in this post are based on my personal experience and professional observations while working on various ServiceNow implementations. Especially within the GPS space. I recognize that this may not apply to every situation and that other professionals may have differing opinions or experiences. I am also aware that this is a controversial topic within the ServiceNow community, as many developers and architects strongly support OOTB solutions. My intent is to spark discussion and provide insight based on the challenges I have encountered in real-world implementations.

The Reality of Complex Requirements

In theory, OOTB solutions are supposed to cover the majority of business needs, providing a ready-made framework for various use cases. But in reality, most clients have unique, complex, and unpredictable requirements. No two organizations are the same, and neither are their workflows, processes, or needs. As a result, OOTB can rarely deliver a solution that fully meets the expectations of a client.

When Customization is Inevitable

What happens when OOTB can’t handle these intricacies? Customization becomes inevitable. The question then arises: Is a solution still considered OOTB when it's been customized? This "hybrid" state can create confusion. Some argue that meticulous documentation of customizations will mitigate issues down the road. However, over time, documentation upon documentation can create a problem in itself—leading to information overload and a cumbersome maintenance process.

Client Expectations

The OOTB fallacy doesn’t just impact developers—it extends to clients as well. Many clients come into the process with the expectation that OOTB solutions are ready to go and will immediately meet all of their business needs. This creates a false sense of expectations. Often, clients are not fully aware of the complexity behind their requirements and the limitations of OOTB functionality. As a result, they might assume that the solution will work "out of the box" without the need for customizations or additional effort.

Adding to this, clients often pay handsomely for these OOTB modules, expecting them to provide comprehensive solutions. When they realize that additional customizations are required—and come with added costs—it can lead to significant frustration. This is especially true when things aren’t clearly communicated upfront, and the client has a false sense of understanding about what OOTB can actually deliver.

In my experience, this can lead to frustration and misalignment between the client and the development team, especially when it becomes clear that customization is necessary to deliver on their full vision. It’s important to educate clients early in the process, helping them understand that while OOTB can serve as a solid foundation, real-world requirements often demand customization. Setting realistic expectations upfront can help avoid dissatisfaction later on and ensure that the project is aligned with their actual business goals.

The Dangers of Over-Reliance on OOTB

One of the most significant issues I’ve seen is the false sense of security that OOTB creates for developers. ServiceNow promotes OOTB so heavily that developers often become rigid in their thinking. They start believing that OOTB offerings are the ultimate solution, leading to confusion and stagnation when they encounter requirements that can’t be addressed with the platform’s pre-built features.

This rigidity results in a development culture that is unsustainable. Developers shy away from customizations or alternative solutions out of fear that stepping outside the OOTB boundaries will cause more harm than good. But this mindset simply doesn’t reflect the real-world complexity of most implementations. Eventually, as more customizations are introduced—often in an ad-hoc, reactive manner—the platform becomes harder to maintain and technical debt builds up.

When these ad-hoc, reactive customizations arise, developers often find themselves hacking away at the system because architectural changes are too late in the process. At this stage, they’re forced to make quick fixes that deviate from best practices, and over time, these "hacks" muddy the environment. What was once a structured approach devolves into a wild west, where consistency and maintainability are sacrificed for short-term problem-solving. This creates a chaotic environment where the platform becomes difficult to manage, upgrade, or extend, and long-term scalability is compromised.

My Proposal

So, how can we balance the benefits of OOTB with the need for custom solutions? The answer lies in adopting a hybrid (the correct hybrid) approach—leveraging the core capabilities of ServiceNow OOTB, but not being afraid to customize when the business need demands it. However, it’s crucial to make these customizations thoughtfully and strategically.

  1. Flexibility in Design: Rather than defaulting to OOTB, architects should be encouraged to evaluate where custom solutions can provide value and differentiate the business. OOTB should serve as a foundation, not a limitation.
  2. Abstract Layer on Top of OOTB: One of the most effective strategies is to create an abstract layer on top of OOTB. This layer acts as a framework that leverages OOTB functionalities while extending them to meet specific customization needs. By designing this abstraction layer, developers can ensure consistency, scalability, and easier future maintenance. This approach also protects the core OOTB features from direct modifications, making upgrades smoother and reducing the risk of breaking changes.
  3. A Unified Architecture: Avoid the siloed approach where different teams build scattered applications across the platform. A unified, modular architecture ensures that applications are developed consistently, integrated effectively, and can scale as the business evolves.
  4. Avoid Custom Fields on OOTB Tables (No "u_" Fields): One of my key restrictions is avoiding the creation of fields that start with "u_" on OOTB tables. This is a sign of poor customization practice. Instead, I leverage ServiceNow’s inheritance model or design a custom approach. If a new field is absolutely necessary, it should be created within a custom application scope, resulting in a field named <custom_scope_name>_<field_name> rather than "u_". This ensures that custom fields remain decoupled from the OOTB tables and makes it easier to move custom applications between instances. This way, you can migrate the entire application without worrying about dependencies on update sets.
  5. Limit Changes to OOTB Update Sets: I don’t want to see any updates within update sets belonging to the OOTB application scope, as this indicates there have been customizations made directly to OOTB features. Such changes can cause significant issues during upgrades and maintenance, as they may interfere with the OOTB upgrade paths. When I'm leading a development team, I ensure that no customizations are made within the OOTB scope, except for controlled and documented instances of cross-scope caller access. This practice helps maintain the integrity of the core platform and minimizes upgrade risks.

Benefits of the Proposed Hybrid Approach

Adopting the hybrid approach as outlined in my proposal offers several advantages, particularly in ensuring flexibility, scalability, and maintainability within ServiceNow implementations. By strategically customizing on top of OOTB capabilities, you create a more robust and adaptable solution that addresses both immediate and long-term needs. Here are the key benefits:

  1. Portability and Ease of Migration: By creating custom fields and features within a separate custom application scope (rather than modifying OOTB tables or features), your application becomes portable. This means it can be easily transferred between different ServiceNow instances without needing to manually track down dependencies or worry about update sets. Whether you're moving between development, testing, and production environments or deploying the solution across multiple clients, this modular approach ensures smooth transitions.
  2. Future-Proof and Extensible: Building an abstract layer on top of OOTB allows the solution to be extended in the future to accommodate new requirements or further developments. As the business evolves, so can the application, without the risk of impacting core functionality. This ensures that your platform remains adaptable to future needs while still leveraging OOTB capabilities as a solid foundation. Customization in a separate layer also makes it easier to enhance or modify specific areas without disrupting other parts of the system.
  3. Separation from Core OOTB Functionality: By keeping customizations separate from ServiceNow's core OOTB features, you minimize the risk of conflicts during upgrades. Upgrades become seamless, as your custom application operates independently of OOTB components, which means you don't have to worry about OOTB changes breaking your customizations. This separation enhances system stability, making it easier to manage upgrades without extensive testing or troubleshooting of custom components.
  4. Consistency and Scalability Through Unified Architecture: Implementing a unified, modular architecture across teams ensures that the application development process is consistent and integrated. By avoiding siloed, fragmented applications, you reduce redundancy and create a system that can scale effectively as the organization grows. This architecture also supports easy integration between different custom applications and the core platform, reducing complexity and ensuring a smoother, more predictable development lifecycle.
  5. Improved Upgrade Compatibility: Since no direct changes are made to OOTB update sets or application scope (with the exception of controlled cross-scope access), your customizations are fully compatible with future ServiceNow upgrades. This reduces technical debt and ensures that upgrades don't interfere with the custom solutions you’ve built. This practice also enhances long-term maintainability, reducing the need for extensive rework or fixes after upgrades.
  6. Enhanced Governance and Development Standards: By avoiding poor customization practices, such as creating "u_" fields on OOTB tables, and enforcing design principles like leveraging ServiceNow's inheritance model, you establish clear governance standards. These practices ensure that the solution adheres to best practices, is more manageable, and can be developed and maintained in a structured way. This also leads to better collaboration among development teams as they follow consistent guidelines, reducing errors and improving overall system quality.
Empowering Developers Beyond OOTB

The key to sustainable development on ServiceNow lies in shifting the mindset of developers and architects. Rather than being constrained by the false security of OOTB, developers need to be empowered to think critically and creatively. Customization should not be seen as a "failure" to stick to OOTB but as a necessary step toward delivering truly effective and tailored solutions for complex client needs.

By striking the right balance between OOTB and customization—through approaches like abstract layers and modular design—we can build solutions that are not only powerful and flexible but also sustainable in the long run. The future of ServiceNow development hinges on adopting this balanced, thoughtful approach—one that doesn’t fall prey to the OOTB fallacy.

While OOTB solutions offer an excellent starting point, they are not the end-all solution for complex business needs. By encouraging flexibility, strategic customization, and sustainable practices, we can create an ecosystem where ServiceNow is truly aligned with the ever-evolving demands of modern enterprises.

Copyright © Formcloud LLC 2024