Paige Duffey
ServiceNow Employee
ServiceNow Employee

Automating the Development Process​

It’s important to introduce automation into the development process for two primary reasons. One, it reduces the burden placed on the core team by automating manual tasks. Two, it helps shield citizen developers from the complexity of the development process allowing them to focus primarily on the application they’re building.​

Most enterprises have at least three instances established in support of their development process. The typical development pipeline includes the following stages: DEV – where developers build their applications. TEST – where applications are tested before being moved into production. PROD – the production environment where users do their work.​

 

The key areas of automation in the development process include: ​

  • Source control​
  • Code promotion​
  • Testing​
  • Code review ​
 

In this article, we’ll discuss automating each of these at a high level. If you require detailed configurations, you will find these in related documentation.​

 

When it comes to automating the development process, the best practice is to introduce automation on a gradual basis by first executing the process manually, followed by automating the most common aspects, which is then followed by complete automation.​

 

Automation tools are available both from ServiceNow and third-party vendors. This guide will focus on options that are available from ServiceNow.​

 

Source Control​

ServiceNow provides three mechanisms for source control: Update sets, Git repositories, and Application repositories (App repo).​

 

In general, organizations choose one of these methods prior to establishing a Citizen Developer program. Any of these methods can be automated to support citizen development activities.​

 

Update sets are the most historically used method of source control for traditional developers since they have been available since the platform was launched. More modern capabilities exist using Git repo and App repo.

 

Best practices are to settle on a single approach for source control ideally across the enterprise but also certainly for your Citizen Developer program. That approach may use more than one mechanism as outlined above depending upon the development pipeline.​

 

The most common source control model we see in enterprises for citizen development is:​

  • App repo exclusively: application repository is used for source control across all instances in the pipeline​

Code Promotion​

Code promotion is the process of moving an application from environment to environment. It can be done manually by the platform administrator, or it can be automated using capabilities provided by ServiceNow.​

Code promotion best practices include running tests and code scans as part of the process of moving applications up the pipeline.​

 

ServiceNow provides two primary mechanisms for code promotion: CICD Spoke and APIs. ​

 

ServiceNow has built a series of APIs to support Continuous Integration/Continuous Deployment (CICD). Those APIs provide for the movement of code from instance to instance, the ability to run automated tests, and the ability to execute code scans. ​

 

The APIs are also accessible from third-party CICD tools such as Jenkins, GitHub, GitLab, MS Azure Dev Ops. Any of these third-party tools in conjunction with the APIs can be used to automate the pipeline.​

The ServiceNow CICD Spoke uses Integration Hub to provide prebuilt automation using the APIs above. This allows enterprises to automate their pipeline entirely on the platform using flow designer. An example of flow designer-based automation is in the Pipeline application which is part of App Engine Studio.​

Key factors to consider when deciding between the two approaches are:​

  • Do you want to keep your pipeline automation entirely on the platform or do you want to use a third-party tool?​
  • Does your enterprise have a standard third-party CICD tool? Or do you have a preferred third-party CICD tool?​
  • Does your team have the prerequisite expertise in the tools selected?
 

Testing​

ServiceNow provides an Automated Test Framework (ATF) which allows for the automation of functional testing. ATF tests and Test Suites are typically authored by the core team or professional developers. ​

 

Regardless of who creates the tests, those tests can be run automatically, and the results captured as part of the CICD process. Best practices include running specific sets of tests when promoting from Dev to Test and running specific sets of tests when promoting from Test to Prod.​

 

Applications that pass the test get moved up the pipeline to the next environment. Applications that fail the test provide that feedback to the submitter and stay in their existing environment. ​

 

Code Review​

When it comes to code review for apps developed by citizen developers, best practice is to include the application code review as part of the development process. While code review can be a very intensive manual activity, automation can greatly reduce the burden on the core team.​

 

ServiceNow offers Instance Scan capability allowing you to review citizen-developed applications against the set of best practices and standards. These best practices and standards are represented by “checks” used by Instance Scan. ​

 

A set of checks is provided by ServiceNow, but organizations can create their own definitions in accordance with their best practices and standards. Just like ATF tests, Instance Scans should be run between Dev and Test and again between Test and Prod.

 

Center of Excellence Navigation

Citizen Development - Center of Excellence

  1. Vision and Plan
    1. Themes of a Successful Citizen Development Program
    2. Define a Clear Value Proposition
    3. Understand the Foundational Elements
  2. Focus the Program
    1. Identify the Right Use Cases
    2. Recruit the Citizen Developers
  3. Enable and Empower
    1. Train the Citizen Developers
    2. Establish a Support Model
  4. Establish Guardrails
    1. Define the Application Lifecycle
    2. Automate the Development Process
Version history
Last update:
‎03-02-2023 01:23 PM
Updated by:
Contributors