Skip to content

Software Development Life Cycle

Introduction

This flowchart provides a visual representation of the key stages involved in the software development life cycle. Each step is accompanied by detailed documentation to guide you through best practices and standardized processes.

Flowchart

---
title: Software Development Cycle
---
flowchart TB
  A([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/jira-story-best-practices/?h=jira' style="text-decoration: none;"><span style="color: inherit;">➊  Open Jira Story 🔗</span></a>])
  B([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/git-branch-naming-standards/' style="text-decoration: none;"><span style="color: inherit;">➋ Create a branch from main 🔗</span></a>])
  C([<span style="color: inherit;">➌ Develop Python code</span>])
  D([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/cofig-files/' style="text-decoration: none;"><span style="color: inherit;">➍ Config files 🔗</span></a>])
  E([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/input-validation-with-pydantic/' style="text-decoration: none;"><span style="color: inherit;">➎ Input Validation with Pydantic 🔗</span></a>])
  F([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/error-handling-and-logging/?h=jira' style='text-decoration: none;'><span style="color: inherit;">➏ Error handling and logging 🔗</span></a>])
  G([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/type-checking-mypy/' style="text-decoration: none;"><span style="color: inherit;">➐ Type hints 🔗</span></a>])
  H([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/docstrings-and-inline-commentaries/' style="text-decoration: none;"><span style="color: inherit;">➑ Inline comments and docstrings 🔗</span></a>])
  I([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/pytest-inroduction-guide/' style="text-decoration: none;"><span style="color: inherit;">➒ Unit test with PyTest 🔗</span></a>])
  J([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/type-checking-mypy/?h=type+che' style="text-decoration: none;"><span style="color: inherit;">➓ Type check with Mypy 🔗</span></a>])
  K([<a href='https://markeyser.github.io/cookiecutter-collabora/tutorials/black-formatter/?h=black' style="text-decoration: none;"><span style="color: inherit;">⓫ Format code with Black 🔗</span></a>])
  L([<a href='https://markeyser.github.io/cookiecutter-collabora/tutorials/ruff-linter/?h=lint' style="text-decoration: none;"><span style="color: inherit;">⓬ Lint code with Ruff 🔗</span></a>])
  M([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/pre-commit-hooks-guide/' style="text-decoration: none;"><span style="color: inherit;">⓭ Pass pre-commit hooks 🔗</span></a>])
  N([<a href='https://markeyser.github.io/cookiecutter-collabora/tutorials/mkdocs-docs/?h=mkd' style="text-decoration: none;"><span style="color: inherit;">⓮ Update documentation 🔗</span></a>])
  O([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/commit-message-standards-ml/?h=commit' style="text-decoration: none;"><span style="color: inherit;">⓯ Commit changes 🔗</span></a>])
  P([<span style="color: inherit;">⓰ Push to remote repo</span>])
  Q([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/templates/?h=pull' style="text-decoration: none;"><span style="color: inherit;">⓱ Open a Pull Request 🔗</span></a>])
  R([<a href='https://markeyser.github.io/cookiecutter-collabora/how-to-guides/code-review-best-practices/?h=review' style="text-decoration: none;"><span style="color: inherit;">⓲ Code Review 🔗</span></a>])
  A ==> B
  B ==> C
  C ==> D
  D ==> E
  E ==> F
  F ==> G
  G ==> H
  H ==> I
  I ==> J
  J ==> K
  K ==> L
  L ==> M
  M ==> N
  N ==> O
  O ==> P
  P ==> Q
  Q ==> R
  R ==> |Start again with a new issue|A