Skip to main content

Development Lifecycle

Planning and Requirements

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/Azure%20DevOps/Azure%20main%20services/azureboards/intro

Development

IDE

Version Control

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Version%20control/practicesversioncontrol

Package Management

  • Nuget: Package manager for .NET. It enables developers to create, share, and consume useful .NET libraries.

  • npm (Node Package Manager): For managing JavaScript libraries and dependencies.

  • Yarn or pnpm (alternatives to npm).

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Artifacts%20management/practicesartifacts

Code Collaboration

  • Pull Requests: For code reviews and collaboration.

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/GitHub/githubcodereview

AI Code Assistants

  • GitHub Copilot: an AI-powered code assistant that helps developers write code faster by providing context-aware suggestions and completions directly within their IDE.

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/GitHub/GitHubCopilot

Testing

The test pyramid is a guide for balancing automated tests: lots of fast and reliable unit tests at the base, fewer integration tests in the middle, and minimal, slower end-to-end tests at the top to ensure efficient and robust software testing.

alt text

Read more on Microsoft Learn: https://learn.microsoft.com/en-us/training/modules/visual-studio-test-concepts/

Unit Testing

Integration Testing

Performance Testing

  • BenchmarkDotNet: Powerful library for microbenchmarking .NET code.

  • dotTrace: JetBrains tool for performance profiling and bottleneck analysis.

  • PerfView: Lightweight tool for CPU and memory performance investigations.

  • Application Insights: Azure's integrated tool for monitoring app performance.

  • Visual Studio Profiler: Built-in profiler to analyze .NET app performance.

Load Testing

  • Apache JMeter: Popular open-source tool for simulating heavy loads on servers.

Acceptance Testing

  • SpecFlow: BDD framework for creating executable specifications using Gherkin syntax.

UI Testing

  • Selenium: Industry-standard tool for browser-based UI automation testing.

  • Playwright for .NET: Cutting-edge browser automation tool for end-to-end UI testing.

Static Code Analysis and Quality

Static Code Analysis

  • SonarCloud: To enforce coding standards and ensure code quality.

Code Formatters

  • Built-in .editorconfig support in Visual Studio for consistent code formatting.

Read more on Microsoft Learn: https://learn.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022

Build and Integration

Build Pipelines

  • Azure DevOps Pipelines: CI/CD for automating builds and deployments.

  • GitHub Actions: For lightweight CI workflows integrated into GitHub.

Dependency Management

  • Azure Artifacts: A cloud-based package management service for hosting, sharing, and managing dependencies in Azure DevOps.

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Artifacts%20management/practicesartifacts

Deployment

  • Azure Pipelines/CD: Automates deployment to Azure environments.

  • Bicep Templates: Infrastructure-as-code tools for provisioning Azure resources.

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/Azure%20DevOps/Azure%20main%20services/azurepipelines/gettingstarted

Monitoring and Observability

  • Azure Monitor: For performance monitoring and diagnostics.

  • Application Insights: For application performance management (APM).

  • Log Analytics: For querying logs.

Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Observability/practicesobservability

Read more on Microsoft Learn: https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-overview

Security and Compliance

Read more on JTI DevOps Platform: https://devops.jti.com/docs/DevSecOps/about

Documentation and Knowledge Sharing

  • GitHub Wikis or Azure DevOps Wikis: For project documentation.

  • Markdown: The preferred format for creating lightweight documentation.

  • Docusaurus: An open-source framework for building modern, customizable documentation websites with ease.

  • D2 Diagrams: A text-based diagramming tool for creating and version-controlling diagrams with real-time rendering.