Software Development Life Cycle Processes
Overview
A Software Development Life Cycle (SDLC) is the process of planning, creating, testing, and deploying software. Unqork uses a SDLC to ensure updates to the Unqork Platform are prompt and reliable. Client teams are included in every step of our platform release and change process. Our clients are an integral part of the SDLC. The following article describes Unqork's SDLC process. This process shows you how we build, maintain, and deploy the Unqork Designer Platform.
Why is the SDLC Important for Unqork?
Unqork prides itself on being a no-code platform. We enable enterprises to build enterprise-grade applications without coding. But, if we're a no-code platform, why does Unqork need an SLDC?
At its core, Unqork is a Software-as-a-Service (SaaS) company. We build and maintain the Unqork Designer Platform. This software lets our customers build applications without using code. Since our delivery model is SaaS, we continually deploy changes and new features.
Environment Stages
Environments in Unqork support each phase of building and rendering applications. As a work ticket advances through the SDLC, it passes through the following environments:
Environment |
Description |
Code-base |
---|---|---|
Customer Staging |
Where Unqork creators configure applications. This non-production environment hosts test data only. Features and bug fixes are released to Customer Staging at the end of a sprint cycle (every two weeks). After launch, this is where you prepare updates before promoting to UAT for testing. Unqork hosts the Customer Staging environment internally. Staging offers both a Designer and Express View interface. |
Staging |
User Acceptance Testing (UAT) |
Where both Unqork and the client can view the latest build. This non-production environment hosts test data only. Unqork hosts the UAT environment internally. UAT offers both a Designer and Express View interface. |
UAT |
Production |
This is the live application, and the only environment that end-users can access. This is also the only environment to host live client data. |
Production |
NOTE Some customer applications move through up to five environments. The additional environments are Quality Assurance (QA) and Pre-production (Pre-prod). QA environments use the UAT code-base. Pre-prod environments use the Production code-base. The progression order is Customer Staging, QA, UAT, Pre-prod, then Production. Client leads decide the number of environments to use when developing a customer application.
Unqork Platform SDLC Overview
Unqork uses Agile techniques (release planning, iterative development sprints, cross-functional teams), project management practices (dependency planning, milestone tracking, sponsor reporting), and follows the standardized SDLC process below.
Planning
The Unqork Platform team receives requests for new features from customers, internal team members, creators, and solutions architects. The Platform team reviews and ranks these requests. Ranking the requests helps to decide which features the team works on and at what priority. Other teams work to research, design, and build solutions that address the problems the proposed features look to resolve.
Iterative Development
New features go through alpha, beta, and general access (GA) releases. Alpha releases are released internally, typically to solutions architects. Solutions architects provide feedback and the feature is updated accordingly. Beta releases are released to select customers in their Staging Environment. Customers provide additional feedback and teams update the feature based on the feedback. GA releases are released platform-wide. All releases are behind a feature flag to allow Unqork to fully understand the impact of a new feature and make any required fixes. The feature flag is turned off if there is an issue with the feature and the team resolves the issue. After a GA release, if no major issues or concerns arise for at least one release, then the feature flag is removed and the release is available for all customers.
Continuous Integration and Testing
The QA team assigns risk levels to features based on the likelihood that the feature causes regressions. Low-risk changes are less likely to cause regressions than high-risk changes. The QA team performs multiple tests through the process. They perform automated and manual regression tests and exploratory tests on new features to make sure no regressions are introduced. Additionally, automated daily regression tests are run.
Staged Deployment
Unqork uses a staged deployment process. Any changes merged to a particular branch are deployed to internal environments overnight. These environments are used for internal testing, verification, and regular building. Unqork uses this process to catch any regressions before the code is ready for staging, UAT, and production environments.
The image below represents the Unqork SDLC:
To start, someone at Unqork records a ticket for a bug or new feature request. From there, the ticket follows this journey:
1. | Feature Validation: We review the ticket to make sure it's valid. |
2. | Sprint Prioritization: Product Managers, along with input from the Solutions and Delivery teams, prioritize the ticket. They use a weighted framework, ensuring a blend of ticket types. If prioritized, the team puts the ticket into a sprint. |
3. | Unit and Security Testing: In a two-week sprint cycle, we design and build the feature or the fix for a bug. Then we run changes through Quality Assurance (QA). We release updates to the Unqork Staging environment nightly. |
4. | App Test Harness: Once in the Unqork Staging environment, we test the changes using complex applications. |
5. | Staging Deployment: We release changes to the Customer Staging environment on a two-week cycle. At this stage, there is a cross-functional coordination of the feature release. |
6. | UAT Deployment: We release changes to the UAT environment on a four-week cycle. Once in the UAT environment, we continue testing the changes. Here the customer can also test and sign off on the feature. |
7. | Production Release: If the new feature passes all tests, we deploy the change to Production. We release changes to the Production environment on a four-week cycle. |
8. | Rollback: If at any point the feature breaks, our team creates a new intake ticket and the process starts over. |
Security and Development Process
Security is everyone's responsibility at Unqork. Our security team created a set of guidelines that encompasses threat modeling, approval process, and requirements for the development process. They also created guidelines for engineers to ensure that the code they write is as secure as possible. There are mandatory code reviews and additional scrutiny is given to tickets related to security topics. Peers and security team members conduct reviews and test the changes before code is merged into the repository. Unqork also leverages a combination of scanning software to scan code and check for dependencies and performs container, infrastructure-as-code, and log scanning.
Information classification, data-handling policies, and security configuration standards for networks, operating systems, applications and desktops are all topics covered in one or more of Unqork's security policies. Security policy updates follow a similar process to the software development process. Policies are first developed in a draft stage. Policy drafts go through a review and approval stage. Finally policies are published to internal storage locations for consumption by the appropriate user bases.
Release Process
As seen in the SDLC diagram, product changes are released on a set schedule. Each step of the release process includes its own guidelines and processes.
- Unqork Staging Environment: Changes are released every night.
- Client Staging Environments: Client Staging releases happen every six weeks, on Thursdays. The release is tested for two weeks before the UAT release.
- UAT Environments: UAT releases happen two weeks after the Client Staging release, on Thursdays. Releases go through UAT testing for two weeks.
- Production Environments: Production releases happen two weeks after the UAT release, on Tuesdays.
NOTE Releasing to UAT and Production environments requires sign-offs and testing.
TIP For more information on the release process, see our Unqork Release Notes Process article. To learn more about the release schedule, see our 2023 Calendar.
Application Development Process
When you partner with Unqork to build an application, you'll follow a standardized proceed. An Engagement Delivery team led by an Engagement Manager and Solution Architect, along with two to four Technical Specialists help develop your solution. The first step in the application development process is a kick-off and requirements review meeting. The purpose of this meeting is to make sure your Engagement Delivery team understands your business, integration, and end-to-end API requirements, your data dictionary, your solution architecture, and any RBAC requirements.
Unqork is an equal partner in the development process so the next step is establishing a joint governance model with your organization. The joint governance model establishes regular status reviews, major milestones, and roadblocks.
After the joint governance model is established, the Security and Architecture teams start reviewing any potential security vulnerabilities and architectural issues before the configuration team starts building.
When the process of building the application begins, a detailed best practices guideline is followed. Unqork also uses an automated guardrails review process to ensure configuration best practices are followed. Following best practices and using automated guardrails helps technical specialists build secure applications quickly. As the configuration team builds the application, the QA team builds QA test cases for the application. This allows us to catch any future regressions before they can cause problems.
After the application is built, there's an additional round of testing and security review before the application is live. Additionally, Unqork performs daily static and dynamic application security testing and runs bug bounty and penetration test programs.
Unqork is continuously enhancing the platform with new features and capabilities through the release cycle. All of these enhancements are available to all customers across all platform levels. If you need a custom feature and it's included as part of the original scope of work or use case, then there's no additional fee to you. If this custom feature is not included in the original scope of work or use case, then there could be a development or build fee.
Product Roadmap
Unqork is committed to accelerating application development by making no-code available to everyone as quickly as possible. We have a strong vision and a multi-year roadmap that include four pillars:
-
Creator productivity: We want to help enable creators to be as productive as possible.
-
Powerful application management: Allows creators the ability to manage their applications themselves in an easy and cohesive manner.
-
Strong ecosystem and community: Provides creators with guidelines and support as they build applications.
-
Enabling platform extensibility: New features and capabilities are constantly added to the platform.
Support
Unqork has a 24/7 global support team. If you experience an issue, you can file a support ticket at support.unqork.com. As soon as you file the support ticket, a Support team member takes the pertinent information to the right people to resolve your issue.
If an incident affects the Unqork platform or a specific environment, it displays on the Status page. The status page updates in real-time and you can subscribe to updates to the page. You can find the Status page at status.unqork.com.
Finally, if you have questions related to building in Unqork, you can find answers at the Creator Community Hub. The Creator Community Hub provides community sourced questions and answers to almost anything you might run into while building an application in Unqork. You can find the Creator Community Hub at community.unqork.com.