Encompass Best Practices for Development and Deployment
- Formulate Acceptance Criteria
- Analyze the problem we are trying to solve
- Write up a one or two-page Requirements Document
- Include a diagram if possible
- Use the document when validating requirements with the Business
- Use the document when communicating with QA and Training
- Come up with a solution
- Reach out to fellow Admins and/or Developers to brainstorm
- Document components that will make up the solution
- plugin, codebase, custom fields, screens, etc.
- Come up with a Business Communication Plan
- Do we need Compliance approval?
- What users will be affected by the change?
- Do we need Training involved?
- Do we create a wiki that will help explain the feature?
- Inform Support Teams
- Once Development is completed, the feature must pass:
- Unit testing by the developer/admin
- Dev Demo to Stakeholders
- Code Review including
- forms, code-behind
- custom fields, biz rules
- custom C# code
- QA Testing by QA
- User Acceptance Testing by Stakeholder
- Explicit Approval by Stakeholders Ideally via Email with Product Owner and Scrum Master Copied in the email
- Come up with a Deployment Plan – Build a list of steps that will be needed in order to deploy the feature depending on the work that was done. For Example:
- Deploy Master Plugin
- Import UW Summary Form
- Import 2 Modified Custom Fields
- CX.ModifiedFieldOne
- CX.ModifiedFieldTwo
- Import 3 New Custom Fields
- CX.CustomFieldOne
- CX.CustomFieldTwo
- CX.CustomFieldThree
- Import 1 modified Business Rule
- Auto-Populate Closing Date Rule
- Come up with a Roll Back Plan – Build a list of steps that will be needed to put things back the way they were before your deployment. For Example:
- Rollback Master Plugin
- Get the latest from Master
- Increment Version Number
- Deploy Master Plugin
- Rollback UW Summary Form
- Import from Backup made just before deployment
- Rollback 2 Modified Custom Fields
- Import from Backup made just before deployment
- CX.ModifiedFieldOne
- CX.ModifiedFieldTwo
- Remove New Custom Fields (if needed)
- Delete CX.CustomFieldOne
- Delete CX.CustomFieldTwo
- Delete CX.CustomFieldThree
- Execute Rollback Preparation – For Example:
- Backup UW Summary form by exporting the form only from Input Form Builder
- Back up existing Custom Fields and Biz Rules modified by exporting them from Input Form Builder
- Add all backups in the Jira Story that governs the feature you are working on (source control, separate conversation)
- Execute Deployment – Pair Up with someone whenever possible
- Announce deployment in Release Chat/Team Chat
- Announce all components and services
- Stage your Deployment objects (separate best practice)
- Execute Deployment Plan
- Smoke Test (separate conversation)
- Be aware of reports of things not working as expected in and around the area that your feature touched
- Make sure to over Communicate in Release Chat or Telephone and not Email if you have questions or input on any existing issues or outages post your deployment