Written by Vasi

December 20

My ServiceNow Journey

Looking at my experience with ServiceNow

“The capacity to learn is a gift; the ability to learn is a skill; the willingness to learn is a choice.” - Brian Herbert

The Beginning

As a fresh computer science graduate, I was enthusiastic to get my first job and start putting to practice all the skills I had learned about software engineering. I landed an entry-level software engineer position at TJX Europe, a big retail company. I went through a learning bootcamp at the start that went over some of the most important tools and concepts that I already had some experience with from university, like Agile Methodologies, DevSecOps, writing code using Javascript, and the software lifecycle. I felt prepared because I already knew most of this stuff, but it gave me the opportunity to dive a bit deeper into some concepts as I had the time available. Once that was over, I was assigned to a team within the company: The ServiceNow Platform Team.

Until then, I had never heard of ServiceNow. What is a ticketing system? It surely cannot be only that. I got access to the company instances, and it looked much bigger than that. I started looking at the available information. The ServiceNow Developer website was a big resource for me at the start. There, I started learning about the fundamentals of the platform. Once I got a basic understanding of what ServiceNow was, I was a bit skeptical about it. I always envisioned my daily job to be writing code, and while you write code in ServiceNow, the fact that the platform involves many administrative tasks and uses ECMAScript 2009 for scripting made me feel that I might be missing out on a lot of stuff if I did ServiceNow work. The team I was working on was great; everyone was helping me learn and helping me along the way, and I also liked the challenge. Everything was new, and I wanted to learn, as learning for me was never the wrong thing to do. So I kept learning; there were always new things to learn and new problems to solve.

The Platform

I think the fundamental building tools on the platform have been very well designed, and that is why ServiceNow did not end up as just another ITSM tool and became much more than that. Everything on the platform being a record in an SQL table means data can be queried and modified very quickly, and you have multiple ways of manipulating the data as you need.

The structure of a ServiceNow table is well-thought-out to be able to configure it as you need it. You have business rules that can modify the data before or after it is inserted into the table, and there are also data policies to ensure the data that gets inserted always meets your standards, no matter where it came from. Then you have Client Scripts, UI policies, and UI actions to make the user experience better and help the end-user create or use the data efficiently. Being able to send emails when someone needs to be notified about something by just creating a notification on that table is easy and efficient.

The security aspect of the platform is what I appreciate more than anything. Having a Zero Trust Access framework means that no one gets access until explicitly defined. When looking at data at a table, the user needs to pass the ACLs in place to interact with it. Not only that, but you also have the ability to set it up in multiple ways. The ACLs are also executed very effectively and have a smart caching mechanism that does not degrade the user experience. The “new” automation tool Flow Designer is a very good upgrade from the “Workflow” tool used before and is beneficial in some situations. There are many more fundamental functionalities that make ServiceNow a great tool for working with data, like the multiple data filtering options on a list view. My favorite one is the options in the context menu that I always use to filter data quickly.

I also enjoyed working with their APIs. I think their server-side API (like GlideRecord, GlideAggregate, GlideSystem, etc.) is quick, intuitive, and well-documented, and the REST APIs are also widely available for almost all the functionalities of the platform, which makes integrating with ServiceNow easy and straightforward.

There is much more I can talk about here, and maybe in future blogs, I can get into more details about other stuff I find interesting. From my experience, once you understand the fundamentals of the platform, you can work on any ServiceNow application, as almost all of them are built using these fundamental building blocks.

Overall, I enjoy working with the platform because it gives you the ability to create solutions more quickly by leveraging the out-of-the-box functionalities of this platform. You can create a reliable, quick, and secure solution to a business problem if the platform has the capabilities to solve it.

On the other hand, some things I don’t like when working with the platform, and I know not everyone might share the same views, and these might not even be issues for some, but I think it’s worth mentioning some of these as well.

There is a lot of documentation that ServiceNow provides, but it still does not fully explain how things work together to achieve a certain result. An example from my experience was when I was working on implementing AI search in the company instances for their portal, and their instances had customization done for their Access Requests that needed to be displayed. I had to change the EVAM configurations for that search, which proved more difficult than expected, as there was no real documentation on how this was set up for the OOB catalog items. Only certain community posts have been made for similar situations that people had, and it was trial and error for me to try to understand how all the components of an EVAM config work together to get the desired result. There were other times when I could not find the information I needed from the official documentation and had to go to the community with the hope to learn more or to try things out to better understand all the parts of the system.

Another issue I encountered while developing on the platform are the low-code functionalities that can be easier and better done by writing code. I had some time to spend with UI Builder to discover its functionalities, and while I think the tool is excellent and provides many opportunities to develop amazing solutions, it became too complicated to navigate and work with as certain stuff had to be made low-code. To add functionality when a button is clicked, you need to navigate multiple layers of abstraction to set it up, while in code, this can be made simpler. I would love to be able to open an experience in a code editor and work on all the stuff in there and then import it into the instance.

As I said previously, I like to write code. I can understand the functionality in code much faster than navigating through configuration items, and maybe that is why I detailed my previous concern with the platform. The other one would be to use ECMAScript 5 on most of the platform besides the custom apps developed using ECMAScript 6 after ServiceNow introduced this functionality. By using an older version of the language on your daily job, it’s challenging to work with newer versions of Javascript on other projects and follow best coding practices. The same goes the other way, where I would love to use Javascript at its full potential within the platform.

The Journey

In my previous role as a ServiceNow engineer, I had the opportunity to design, develop, and implement solutions that streamlined various processes across IT, corporate, and retail sectors. I worked with multiple ServiceNow applications, such as ITSM, HR, and CSM, to align with specific business requirements while adhering to ServiceNow best practices and maintaining high code standards. I also created and maintained workflows and flows to automate tasks and improve overall efficiency. I developed custom ServiceNow applications to automate operational workflows and boost productivity across the organization.

One of my key achievements was replacing the legacy Service Portal with Employee Center Pro. This transition significantly enhanced the self-service experience for our end-users. Additionally, I created and maintained Virtual Agent topic flows to streamline CSM processes and provide better support to our customers.

My responsibilities extended beyond development. I also acted as an L4 support engineer, troubleshooting complex Production Incidents. As I had a solid knowledge of the fundamentals of the platform, I was tackling issues in applications on the platform that I had no previous experience with. I liked to learn about anything that was going on with the platform so I could grow my skills as a professional.

I also enjoy sharing my knowledge with others, as you can learn more while teaching others. I provided guidance and support to the new engineers on my team, fostering a collaborative learning environment. I focused on nurturing their technical skills, problem-solving abilities, and adherence to best practices.

To stay at the forefront of ServiceNow development, I actively utilized the ServiceNow product documentation and learning platform to acquire new skills and certifications. Along my journey so far, I have been able to acquire two certifications on the platform: Certified System Administrator and Certified Application Developer.

While I’m always striving to improve my technical and writing skills, I’m excited to share my experiences and insights in this blog. This post is a general overview that I hope can be helpful for someone, and I hope to create more posts that will go into more detail about my experience with ServiceNow or any other technologies I experiment with in the future.

The Journey continues….