Atlassian SDLC

Software Development Life Cycle (SDLC) is a methodology which defines processes for software development. SDLC provides standard processes and tools designed to help facilitate high-quality technology solutions, effectively meet the business needs of the university community, efficiently use resources, and securely protect University data and interests. It includes:

  1. Requirements gathering and analysis

  2. Planning

  3. Design

  4. Development

  5. Testing

  6. Deployment

  7. Maintenance

About SDLC

Environments

Environments represent isolated instances of an application.  An application environment can run on physical hardware, virtual machines or containerized platforms.  Each environment is deployed for a unique purpose and serves a specific audience.

  • Production - Production environment includes only stable, fully tested, source code.  It's accessible to all users and represents the "live" system.

  • Staging/Test/QA – Staging, Test or QA environments includes source code which has been unit tested and deemed ready for user acceptance testing.

  • Development - Development environments are used by software developers working on new features and bug fixes.  Access is typically limited to IT staff.

ITS Applications & Technology Solutions recommends deploying at least one non-production environment for every application.

Virtual machines and containers may be requested from ITS by submitting a ticket to the Technology Support Center.

Issue Tracking

Developers use issue tracking systems to plan and track software development activities, such as new feature requests, tasks and bug fixes.

ITS Applications & Technology Solutions supports version control using Jira Software by Atlassian.  JIRA is tightly integrated with other Atlassian products and provides developers with a mechanism to audit SDLC activities from project initiation through deployment.

Visit the SDLC Tools page for a summary of Jira Software features.

Requests for access to Jira Software can be facilitated by submitting a Support Request to the Technology Support Center.

Version Control

Version control systems, such as Git, track changes to source code (and other application files) committed to their respective code repositories.  Implementing version control allows developers to view change histories and, if needed, rollback to previous versions.

ITS Applications & Technology Solutions supports version control using BitBucket by Atlassian.  Visit the SDLC Tools page for a summary of BitBucket features and its integration capabilities with other Atlassian solutions.

Requests for access to BitBucket can be facilitated by submitting a Support Request to the Technology Support Center.

Technical Documentation

Technical documentation is created for a multitude of reasons, including serving as a reference point for the developer long after an application has been developed and deployed.  Most importantly though, it informs other team members (or any future developer responsible for maintaining or improving software) of the business rules, data constructs and architectures associated with the application.

ITS Applications & Technology Solutions supports Confluence by Atlassian for a variety of different documentation needs.  Visit the SDLC Tools page for a summary of Confluence features and its integration capabilities with other Atlassian solutions.

Requests for access to Confluence can be facilitated by submitting a Support Request to the Technology Support Center.

Deployment & Release Management

Deployment tools interact with source code control systems and environments to create builds, compile sources, test (automated) and deploy software. Deploying source code using a product such as Bitbucket Pipelines is highly recommended.  For example, Bitbucket Pipelines allows software developers to configure a deployment project that is associated to a specific BitBucket branch and deploy the source code or compiled package to a specific target environment (e.g. master branch to production environment).

ITS Applications & Technology Solutions supports version control using Bitbucket Pipelines by Atlassian.  Visit the SDLC Tools page for a summary of Bitbucket Pipelines features and its integration capabilities with other Atlassian solutions. 

Requests for access to BitBucket  can be facilitated by submitting a Support Request to the Technology Support Center.

It is recommended developers follow a controlled, well documented, release management process. 

Release management is the process of managing, planning, scheduling and controlling a software build through different stages and environments; including testing and deploying software releases.1

A typical release management process will include control steps to ensure software developers are not unilaterally releasing code to production environments:

  • Developer creates Jira Software issue to track new feature or bug fix

  • Developer commits code to BitBucket branch

  • Developer deploys sources/packages using Bitbucket Pipelines to non-production environment for testing

  • Developer troubleshoots and resolves issues reported during testing (commits code changes as needed)

  • Developer updates Jira Software issue when fully tested code is ready for production release (may require functional approval/sign off)

  • Release Manager reviews source code changes in BitBucket 

  • Release Manager creates and assigns release/fix version in Jira Software

  • Release Manager submits Change Request and updates Jira Software issue with approval

  • Developer merges BitBucket branch to master branch

  • Developer deploys sources/packages using Bitbucket Pipelines to production environment

  • Developer updates Jira Software issue after code has been successfully deployed to production

  • Release Manager closes Change Request

  • Release Manager releases Jira Software issue

 

Next

Available SDLC Tools

 

Citations

1 Wikipedia. 2020. "Release management".  Last modified December 22, 2020. https://en.wikipedia.org/wiki/Release_management

 

Â