Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to this Azure Well-Architected Framework Operational Excellence checklist recommendation:
| OE:03 | Formalize processes across the full software development lifecycle, from ideation to delivery, and make them transparent to the team and stakeholders. |
|---|
Software development is more than just producing code. Developers need to clearly understand what to build and why, while product owners and managers maintain visibility into what work is being done and how it is progressing. By establishing consistent practices, teams can deliver with quality, surface risks early and manage expectations, and track progress.
This guide provides recommendations on how to run software development in a structured, predictable, and collaborative manner.
Establish standards for managing change
In software development, every unit of work is a change. Even new features represent a shift from a non-existent state to an implemented one.
When initiating work for a requested change, follow these aspects:
Collaborate. Teams should work together rather than in isolation. Most changes affect more than one component or role. Involve developers, testers, operations, and product stakeholders early to ensure important details are not missed and that everyone understands the impact on their area. It also leads to more accurate effort estimates, since people with relevant experience can contribute their perspective.
Keep the goals of collaboration simple. Agree on the scope of a change, identify dependencies, and break the work into clear, manageable tasks and document them in a backlog.
Communicate. Standardize how the team communicates releases, both internally and externally. Define what information should be shared with external audiences (such as customers), the appropriate level of detail, required onboarding or support documentation, and the communication timeline. For example, notify stakeholders two weeks before a release and send a reminder 24 hours before deployment.
Retrospect. Regularly review each development cycle to identify what worked, what didn't, and what can be improved. Keep these reviews blameless and focused on learning.
Use this opportunity to check whether standard practices are effective. For example, whether developer tasks were clearly defined, time estimates were accurate, and processes are working as intended.
Reports. Standardize reports on how the product is changing. Keep the reports focused on product growth rather than individual developer productivity. For example, it's good for stakeholders to track:
- Adoption growth
- Performance improvements
- Onboarding time
- Incident frequency
Choose industry-proven tools
Instead of inventing your own process, use proven ones like Agile, Scrum, and Kanban boards.
Using proven approaches saves time, reduces effort, and makes it easier for team members because most should already be familiar with these tools. Standard tools also simplify onboarding new hires and improve collaboration across teams.
Tradeoff: Agile methodology can become too rigid if it's overly prescriptive. Strive for a balance between well-defined standards and innovation.
Standardize how development work is recorded
Standardize a template for capturing discrete unit of work. It should be written from the user's perspective and should follow these principles:
- Independent. One story shouldn't depend on another to avoid overlapping work.
- Negotiable. Open to discussion and refinement because the work must be realistic from development perspective and aligned to business goals.
- Valuable. Must clearly benefit user experience.
- Estimable. The team can confidently estimate effort so that the feature is delivered on time. Prefer small items that can be completed in a few weeks or less.
- Testable. There's a clear way to verify the functionality and deployment of the feature.
Note
All development assets in production should be traceable back to the code, tests, acceptance criteria, and backlog items. Tracking supports quality control, simplifies debugging, and helps meet compliance requirements in regulated environments.
Also, standardize a template for acceptance criteria so the team and stakeholders know that the work is complete. Each unit of work should be an acceptance criteria that's not ambiguous and can be verified through tests.
Make sure everyone agrees on what "done" means for a development cycle. This should include completed code, finished testing, updated documentation, and addressed accessibility. Clear definitions prevent unfinished work from piling up.
AI opportunity: Writing work descriptions and acceptance criteria can be templatized based on organizational policies. Use Copilot to generate initial drafts from those templates. AI can also enforce standards by validating documents against those templates. For advanced scenarios, use AI agents grounded in your standard templates to consume outputs from code reviews and root-cause analyses, then automatically create compliant work items for identified defects and improvements.
Standardize coding practices
Coding practices define the conventions and guidelines developers follow when writing and collaborating on code. These practices establish how code is structured, documented, and reviewed within and across teams. It also helps to accelerate developer onboarding and reduce defects caused by variation in implementation.
Development environment and tools. Standardize IDE configurations, development tools, and approved code generation tools across teams. Enforce the use of common libraries, frameworks, and package management standards to promote reuse, ensure consistency, and comply with organizational security requirements.
Coding conventions. Define and document coding standards that cover naming conventions, code structure, formatting. It's recommended that you enforce standards in code blocks that handle exceptions and do instrumentation. Clear conventions make code easier to read, understand, and maintain, and help teams work consistently across features and components. Make sure these guidelines are accessible to all developers and are regularly updated as the codebase evolves. For example, you can use EditorConfig in Visual Studio environment to enforce coding styles.
Code repository. Establish and enforce standardized branching strategies, such as Gitflow, GitHub Flow, or Trunk-Based Development across all repositories to ensure consistent code integration and release practices.
Peer reviews. Define pull request standards that specify acceptable pull request size, required title and description formats, and mandatory review requirements. Require peer reviews for every code change to ensure standards are followed. Define a collaboration model for PR reviews that sets expectations for responsibilities, feedback, and approvals.
Templates for common artifacts. PR descriptions, commit messages, and unit tests are classic examples that can be templatized. Make sure the documentation includes purpose, context, testing steps.
Test coverage. Require unit tests for all new code and significant modifications to existing code. Tests should follow agreed-upon patterns and include meaningful assertions to verify functionality.
AI opportunity: AI tools can automate repetitive, manual tasks in coding and review processes. GitHub Copilot can generate standardized code blocks, unit tests, and pull request descriptions, reducing the effort spent on routine work.
Tools like SonarQube or Copilot Labs can automatically identify deviations from coding standards, missing test coverage, and common anti-patterns. Offloading these repetitive validation tasks to AI frees teams to focus on higher-value work. However, human review remains essential, as development practices are critical to the correct implementation of business logic and overall workload quality.
Standardize integration practices
Integration refers to the automated processes and conventions used to validate, secure, and package code as it moves through the development lifecycle. This includes how code changes are built, tested, scanned, and prepared for deployment as part of continuous integration pipelines.
Standardizing integration practices are necessary to validate code against defined quality and security requirements and also enable faster feedback loops for developers.
- Build automation and integrated testing: Standardize automated builds that run on every code push and enforce automated unit and integration testing with defined coverage thresholds, where applicable.
- Code quality analysis: Apply static code analysis and quality gates using approved tools to ensure code meets defined quality standards before promotion.
- Dependency management: Continuously scan dependencies for outdated or vulnerable components and integrate security scanning, including SAST, DAST, and secrets detection.
- Artifact management: Standardize package and artifact versioning, storage, and retention policies to ensure traceability and reproducibility.
- Monitoring and reporting: Collect and monitor build and pipeline metrics to track quality, performance, and compliance.
AI opportunity: Consider AI-driven workflows to automate repetitive integration tasks, such as generating CI/CD pipeline configurations, creating test scaffolds, and detecting build or test issues, like missing tests or dependency problems. While AI accelerates pipeline setup, ensure human review is retained to validate critical decisions.
Azure facilitation
Azure Boards is a web-based service that enables teams to plan, track, and discuss work across the entire development process. It's well suited for Agile-based development practices.
GitHub Projects is a customizable project management tool that can organize projects and integrates by using issues and pull requests in GitHub.
Related links
Community links
Operational Excellence checklist
Refer to the complete set of recommendations.