SDLC in Atlassian - Summer 2025 series

4 SDLC for Agile teams


Let's be honest: the emphasis on Agile has led to a backlash against requirements and test coverage and, overall, against the Software Development Life Cycle (SDLC). The principle of "working software over comprehensive documentation" resulted in the marginalization and neglect of requirements management. As a discipline focused on describing the product or system, requirements management was sidelined, with greater attention placed on enabling developers to work at high velocity.

SDLC has become synonymous with waterfall. Agile teams believed they did not want or need a proper SDLC.

While the industry has focused on velocity, our customers expect us to deliver new features without compromising quality; they do not want to choose between the two. For instance, on July 19, 2024, millions of passengers experienced flight cancellations due to a failure of the CrowdStrike Falcon Sensor. These customers would have preferred that CrowdStrike had a more effective software development life cycle (SDLC) process in place. Endpoint security is just one critical area where we need to ensure both high adaptability and reliability, even though it is not as heavily regulated as industries like pharmaceuticals or avionics.

To achieve speed without compromising quality, we must adopt a more holistic approach that encompasses the entire Software Development Life Cycle. (SDLC). And no, let's not confuse SDLC with Waterfall.

In designing more adaptable Software Development Life Cycles (SDLCs) suitable for an agile environment, I draw inspiration from several current trends: First, DevOps practices must integrate product teams and the SDLC. DevOps emphasizes cross-disciplinary collaboration and automation, which are foundational to creating streamlined SDLCs. Additionally, the concepts of organizational agility, particularly those from Team Topologies, provide us with a beneficial framework and vocabulary.


Requirements are distinct from stories and epics; they are not development tasks

In the effort to minimize documentation and paperwork, teams have overlooked an important point: Jira stories describe the work that we need to complete, not the product or system itself. To determine whether a deployment is successful, we must understand the requirements of the deployed system. Therefore, it is essential to clarify what those requirements are.

For example, this is a typical requirement for a banking system:


Summer-space-icon_Green icon.png Requirement

Key: EBANK-63

Summary: Copies of documents used during new customer onboarding (for KYC verification), will be stored in an approved electronic form

This requirement governed the banking system when it was first created. It remains valid today, even after five years and numerous updates. However, it is not part of any of the recent stories or epics.

Looking ahead, the bank plans to upgrade its document scanning module in the upcoming product increment. To ensure that the new module scans to an approved format, we need to identify what these approved formats are. If we lack proper documentation, how can we verify this? Furthermore, how can we guarantee that the new system will meet the requirement if we do not have a regression test in place?

Requirements serve as the foundation, outlining how the product or system should function. An effective regression test suite can verify that it does.

We configure stories and epics to optimize how our teams work. We cannot overload them with other intentions or needs without compromising their raison d'etre.  


Dynamic Requirements Handling for Agile Teams


Separating requirement work items from development work in Jira provides several benefits:

  1. Optimizing requirement work items for product specifications (rather than instructions for developers). For example, the summary and description field can use 'requirements' language, not Story language. Also, the split into individual requirements will not be disturbed by product architecture or team structure considerations.

  2. Creating a workflow that enhances the productivity of product teams.

  3. Simplifying epics and stories, avoiding bloated workflows and boards.

  4. Respecting the cognitive limits of all individuals involved, including product managers, business analysts, project managers, developers, and testers. For example- not getting product owners into the weeds of the development flow.


When designing the Jira configurations for requirements, consider the following aspects:

  1. Do you have a hierarchy of requirement types? For example, work item fields and workflow may be different between User Requirements and functional specifications.

  2. Use the fields and custom fields that you need and remove those you do not need. For example, add a 'Requirement category' field and remove the development panel. Also- consider the semantics of fields. For example- will you use the fix versions field, and how? How will you know which versions of your product are fulfilling this requirement?

  3. Tailor the workflow to the specific needs of product teams. The done status for a requirement is that it is part of the product.

  4. Include a review status by the product owner in the Definition Of Done for stories. This step will be the control point to ensure the implementation meets the needs.

  5. Automate the handover processes between the Story workflow and the requirements workflow. Here are some areas of handover: When does a requirement create a story? When the story is complete, does it impact the status of the requirement?

  6. Clearly define how requirements that are already in the system can be updated.

  7. In Xray, ensure that requirements are considered coverable items. This will allow product teams to see directly the status of test coverage for each requirement.

SDLC Agile Requirement to UAT (Page 1).png
Conceptual flow for interaction between Product and Engineering, related to the implementation of a requirement.

Summer-space-icon_Pink icon.png Looking for a more technical, Jira configuration focused perspective? Checkout my article in the Atlassian community: Jira Magic: Transforming Product and Engineering handovers in Agile SDLC

Here are video demos of the Jira configuration:



Test management for agile teams

Agile teams aim to integrate testing efforts into their development sprints. But what does this mean in practice?

Summer-space-icon_Green icon.png Checkout our previous articles about tests management in Jira (for SDLC):

2 Want a rapid SDLC? Manage testing directly inside Jira

3 Integrate test automation with SDLC

Testing is multi-layered, ranging from code reviews and unit tests to User Acceptance Tests. The testing process begins as soon as a User Story is groomed for the Sprint and continues even after the story achieves the Definition of Done. To better understand how to integrate testing with the development Sprint, it's helpful to look at distinct types of test activities.


Test activity

Organization in Jira

Story-level tests are crucial as they feed into the Definition of Done. This is where close collaboration between developers and test engineers is essential. The key activities are:

  • Code reviews

  • Unit testing

  • Testing by a software QA engineer

  • Demos and acceptance by the product management team

Test executions or sub-test executions are created for each story in the Sprint. This allows testers to assess the scope of testing, create new tests, or update existing ones even before development work on the story is ready to be tested.

Other testing tasks, such as regression, security, and performance testing, are also included in the Sprint. However, these tasks are not part of the "definition of done" and may be part of a later Sprint. These tasks include:

  1. Create new test cases or update existing ones, either as manual scripts or through test automation implementation.

  2. Test executions.

  1. When creating new tests or updating existing ones, new test work items are initially assigned a 'To Do' status. Existing tests are also reverted to 'To Do' to trigger the update work. Once the work on these tests is complete, they will be moved to a 'Ready' status (or similar wording) to indicate that they are ready for use.

  2. Execution of regression tests or other 'non-story' tests: Test executions for these tests are created during Sprint planning or in previous Sprints.


User Acceptance Tests (UAT)

UATs are typically conducted separately from the Development Sprint and are owned by product managers.


Conclusion

Requirements and test management add additional work items to Jira and necessitate a configuration beyond the Sprint board. This is not busy work created for the sake of formality; rather, it reflects tasks that already exist. By establishing a Software Development Life Cycle (SDLC), these tasks can be explicitly outlined and managed as part of your organizational workflow. This approach also helps in delivering better systems.


I hope this article has provided you with insights on how to effectively manage this flow in Jira.