Nicholas Gulrajani
Nicholas Gulrajani
October 24, 2017

DevOps applied to is a different beast—know the challenges

DevOps as applied to ( development is a different kind of animal—there are a number of challenges to address and guiding principles toward success.

It’s not a typical Java (Maven-Jenkins) based software development. It’s about managing changing object configurations and releasing them and it is less about writing code, as one would with Java.

To a degree, however, the Apex development environment must not be ignored (see link below).

These are common challenges in software development and release management.

  1. Low confidence in testing

Low confidence in testing
  • New and untested deployments for every request between environments.

  • Testing suffers when environments differ, resulting in defects and production issues.

  • Loss of confidence in testing results when environments are different, leading to defects and re-work.

  1. Environments not in sync

Environments not in sync
  • Environments quickly get out of sync. Refreshing takes time, deployments have errors.

  1. Deployment challenges

Deployment challenges
  • Manual deployments are a bottleneck across projects and test phases.

  • Developers directly update environments, leading to missed deployment steps.

  • Future Releases built on an old Production refresh requires additional testing and deployment time.

  1. Maintenance issues

Maintenance issues
  • Go-Live is painful with hundreds of manual steps and 8+ hour outage windows.

Managing multiple environments and multiple project work streams also pose hurdles (for example, Prod Hot Fix, R1 Major Release, R2 Major Rel, Features 1 and 2 Releases with varying degrees of Prod Envs).

Please see Table below in Exhibit A and a Proposed Branching Model in Exhibit B.

Exhibit A 

Exhibit B – A Parallel Development Release Branching Model

Exhibit B

Your odds of success will be enhanced if you account for the following:

  • Source code version control

  • A change of history that is visible to all team members

  • Ability to alert developers if there is a code conflict

  • Enforcing test classes to be run in sandboxes so that test class issues can be discovered at an early stage

  • Ability to roll back to a previous point

  • Ability to roll back specific changes

  • Allow weekly (possibly daily) deployments

  • Ensure that the Release Management Team can manage deployments

  • Ensure that the workflow is not too complicated for Delivery Teams

  • Ability for releases to be initiated by Delivery Team Leads

  • Release Management Team can use the same releases created by Delivery Team Leads for deployments

DevOps Success Criteria

Milestone 1: Establish Source Code Control

Milestone 1: Establish Source Code Control 
  • Establish Git Repository as “golden source” of entire solution, both code and configuration.

  • Bring governance and transparency to the code review process.

  • Achieve environment consistency with dynamic, repeatable deployments to every environment.

Milestone 2: Empower the Developers

Milestone 2: Empower the Developers 
  • Provide real-time deployment validation feedback to developers with any deployment errors.

  • Empower the developer to resolve their own issues, rather than back-and-forth with an environment manager.

  • Keep the release branches 100 percent deployment-ready as errors are never committed.

Milestone 3: Continuous Deployment Lifecycle

Milestone 3: Continuous Deployment Lifecycle 
  • Automated, immediate validations and deployments when code is merged.

  • On-demand, triggered, and scheduled deployments to keep any number of environments in-sync.

  • Add Selenium regression testing scripts and automated code review tools to DevOps pipeline.

In conclusion, developing in the with DevOps is more about managing configurations and less about coding. To a degree however, there is Apex environment which must not be ignored. Read more details here.

Get the biggest stories of the week, delivered to your inbox.






Your Data Privacy

By providing your e-mail address, you agree to the terms
outlined in our privacy statement associated with
commenting on the site. Your e-mail address will not be
used for promotional marketing purposes.

Retype the CAPTCHA code from the image
Change the CAPTCHA codeSpeak the CAPTCHA code