Part 1
DevOps Introduction
Agenda
- SDLC Lifecycle
- Before Devops
- Devops
- Azure Devops
- LAB 01
- Azure Wiki
- Azure Dashboard
- LAB 02
- Azure Board
- LAB 03
Getting Started with Azure Devops: Build , test and Deploy your application.
Software Development Life Cycle (SDLC)
The Software Development Life Cycle (SDLC) is a structured process that outlines the stages involved in developing software. It ensures high-quality software is produced efficiently, meeting both business and technical requirements.
Phases of SDLC
1. Planning
- Objective: Define the project goals, scope, resources, timeline, and cost estimation.
- Outcome: A project plan or roadmap.
2. Requirements Gathering and Analysis
- Objective: Understand what the software needs to achieve by collecting functional and non-functional requirements from stakeholders.
- Outcome: A clear requirements specification document.
3. Design
- Objective: Create a blueprint or architecture for how the software will be developed.
- Outcome: High-level and low-level design documents, including database schema, architecture diagrams, and UI/UX designs.
4. Development
- Objective: Actual coding of the software based on the design specifications.
- Outcome: The working software product.
5. Testing
- Objective: Identify and fix defects or issues in the software to ensure it functions as intended.
- Outcome: A bug-free, functional software ready for deployment.
6. Deployment
- Objective: Release the software to the production environment where users can start using it.
- Outcome: A deployed software product available to the end users.
7. Maintenance
- Objective: Ongoing support for bug fixes, updates, and enhancements based on user feedback or emerging requirements.
- Outcome: Continuous improvement and support for the software.
Popular SDLC Models
- Waterfall Model: Sequential approach where each phase must be completed before moving to the next.
- Agile Model: Iterative approach focusing on collaboration, customer feedback, and smaller cycles of development.
- V-Model: Extension of the waterfall model with a focus on verification and validation.
- Spiral Model: Combines iterative development with a risk-driven approach.
- DevOps Model: Integrates development and operations for continuous integration and delivery.
SDLC helps in managing software projects systematically, ensuring that the software meets user needs, is developed on time, and is within budget.
Before Devops
Waterfall Model:
- The waterfall model is a software development model that is straightforward and linear.
- It follows a top-down approach.
Agile Methodology:
- Agile Methodology is an iterative based software development approach It follows a top-down approach
- The software project is broken down into various iterations or sprints
- Each iteration has phases like the waterfall model such as Requirements Gathering, Design, Development, Testing, and Maintenance
- The duration of each iteration is generally 2-8 weeks.
Key Features:
- High-priority features
- Customer feedback
- Application improvement post-feedback
12 Agile Principles:
Key Agile Methodology
Agile framework
SCRUM Methodology
Scrum is one of the most popular Agile frameworks.
SCRUM Roles:
- Scrum Master: Coach and gatekeeper, ensuring the Agile framework is followed.
- Product Owner: Subject matter expert tracking stakeholder expectations and communicating vision.
Scrum Workflow
-
Product Backlog
- The Product Owner creates and maintains the product backlog.
- It contains a prioritized list of features, enhancements, bug fixes, and other work items (user stories).
- The Product Owner ensures that the backlog is transparent, visible, and understandable to all stakeholders.
-
Sprint Planning
- The team holds a Sprint Planning meeting at the beginning of each sprint.
- The team decides what items from the product backlog will be worked on during the sprint.
- The team defines the sprint goal and creates the sprint backlog (work items committed for the sprint).
-
Sprint (Typically 2–4 weeks)
- The development team works on the tasks defined in the sprint backlog.
- Daily work involves coding, testing, and collaborating to complete the user stories.
- The team conducts Daily Standups (Scrum Meetings):
- These are short (15-minute) daily meetings to discuss:
- What was done yesterday?
- What will be done today?
- Any blockers or impediments?
- These are short (15-minute) daily meetings to discuss:
-
Sprint Review
- At the end of the sprint, the team presents the completed work to the Product Owner and other stakeholders.
- The team demonstrates the new features, improvements, and functionalities developed during the sprint.
- The Product Owner reviews the work and determines whether it meets the Definition of Done and accepts or rejects it.
-
Sprint Retrospective
- After the sprint review, the team holds a retrospective meeting to reflect on the sprint.
- The purpose is to discuss:
- What went well during the sprint?
- What could be improved?
- What action items can be implemented for the next sprint?
-
Backlog Refinement (Grooming)
- During the sprint (or between sprints), the team meets to refine the product backlog.
- The team and Product Owner collaborate to break down large user stories, clarify requirements, and reprioritize items as necessary.
- The team estimates the effort required for upcoming work.
-
Repeat the Cycle
- The next sprint begins, starting with Sprint Planning, and the Scrum workflow continues iteratively until the product is complete or the project is terminated.
Roles in Scrum:
- Product Owner: Defines the product backlog and ensures the team is working on the highest-priority items.
- Scrum Master: Facilitates the Scrum process, removes impediments, and helps the team stay on track.
- Development Team: Delivers the product increments by working on the items in the sprint backlog.
Scrum Artifacts:
- Product Backlog: The prioritized list of all desired work.
- Sprint Backlog: The list of work the team commits to completing during the sprint.
- Increment: The sum of all completed product backlog items during the sprint that meet the Definition of Done.
Key Events in Scrum:
- Sprint Planning: Establishes the sprint goal and backlog.
- Daily Scrum (Standup): Daily meeting to coordinate work and address blockers.
- Sprint Review: Presentation of completed work at the end of the sprint.
- Sprint Retrospective: Reflective meeting to identify improvements for future sprints.
- Backlog Refinement: Ongoing activity to ensure the product backlog is ready for future sprints.
Kanban Methodology
Kanban is a visual management methodology used to improve workflow and efficiency in various processes, particularly in software development and manufacturing. It emphasizes continuous delivery and encourages teams to visualize their work.
Key Principles
-
Visualize Work: Use visual boards (Kanban boards) to represent tasks, making it easy to see the status of work items at a glance.
-
Limit Work in Progress (WIP): Set limits on the number of tasks that can be in progress at any one time, helping to reduce multitasking and improve focus.
-
Manage Flow: Track the flow of work items through the system to identify bottlenecks and areas for improvement.
-
Make Process Policies Explicit: Clearly define and communicate the rules and processes that govern how work is done.
-
Implement Feedback Loops: Regularly review performance and gather feedback to enhance processes and practices.
-
Improve Collaboratively: Foster a culture of continuous improvement through team collaboration and iterative enhancements.
Benefits
- Increased Efficiency: By visualizing work and limiting WIP, teams can optimize their workflows and reduce lead times.
- Enhanced Flexibility: Kanban allows teams to respond quickly to changing priorities and demands.
- Better Collaboration: Clear visibility of tasks promotes communication and collaboration among team members.
Kanban is a versatile methodology that can be applied in various industries to streamline processes and enhance productivity.
DevOps Overview
DevOps is a collaborative approach that combines software development (Dev) and IT operations (Ops) to enhance efficiency, automate processes, and improve software delivery speed and quality through practices like continuous integration and continuous deployment (CI/CD).
DevOps brings together people, processes, and technology, automating software delivery to provide continuous value to your users. DevOps automates and speeds software delivery. It makes your process and your products more reliable.
Devops is more than a toolset , it enables communication, collaboration , sharing information. It enourages to work in a team not in silos.
DevOps Drivers
-
Increased Demand: The need for faster software delivery to stay competitive drives organizations to adopt DevOps practices.
-
Customer Expectations: Growing customer expectations for frequent updates and high-quality services compel teams to improve their responsiveness.
-
Collaboration and Communication: A push for better collaboration between development and operations teams leads to the adoption of DevOps to break down silos.
-
Automation: The rise of automation tools facilitates faster testing, deployment, and monitoring, making DevOps more feasible and effective.
-
Quality Improvement: Organizations aim to enhance software quality and reliability, prompting the integration of testing and feedback throughout the development cycle.
-
Cultural Shift: A shift towards a culture of continuous improvement and learning drives the need for DevOps practices.
Key Takeaways
-
Faster Delivery: DevOps accelerates the software delivery process through continuous integration and deployment (CI/CD).
-
Enhanced Collaboration: Promotes a culture of teamwork between development and operations, leading to better communication and cooperation.
-
Increased Efficiency: Streamlining processes and automating tasks reduces manual work, leading to higher productivity.
-
Higher Quality: Continuous testing and feedback help catch issues early, improving the overall quality of software products.
-
Adaptability: Organizations can respond more swiftly to market changes and customer feedback, fostering innovation.
Adopting DevOps practices can significantly enhance an organization’s ability to deliver high-quality software efficiently and responsively.
Azure Devops
Azure Devops is a cloud based platform from microsoft that fosters collaboration between developer and operations team. It brings together a set of comprehensive services to help you to
- Plan and track work
- Manage code
- Build and Test
- Deploy and Monitor
- Extend and Integrate
Azure DevOps supports a collaborative culture and set of processes that bring together developers, project managers, and contributors to develop software. It allows organizations to create and improve products at a faster pace than they can with traditional software development approaches.
Azure Devops Offerings
Azure Microsoft offers devops services on cloud or on-premises with Azure DevOps Server.
Feature | Azure DevOps Services | Azure DevOps Server |
---|---|---|
Hosting | Cloud-based (hosted by Microsoft) | On-premises |
Availability | Highly available with built-in redundancy | Depends on local infrastructure setup |
Updates | Automatically updated by Microsoft | Manual updates required; users must manage upgrades |
Scalability | Automatically scalable as needed | Limited by on-premises hardware and resources |
Pricing Model | Subscription-based (pay-as-you-go) | One-time purchase with licenses, plus ongoing maintenance |
User Management | Integrated with Azure Active Directory (AAD) | Integrated with Windows AD or local accounts |
Customization | Limited customization; primarily through extensions | High customization capabilities through APIs and extensions |
Features | New features and enhancements rolled out regularly | Feature set may lag behind Services; more stable |
Data Storage | Data stored in Azure, managed by Microsoft | Data stored locally; requires backup and recovery planning |
Collaboration | Real-time collaboration features (e.g., dashboards) | Collaboration features available but may require additional setup |
Performance | Performance managed by Microsoft | Performance dependent on local infrastructure |
Integration | Seamless integration with Azure services and other cloud tools | Integrates well with on-premises tools but may require additional configuration |
Compliance and Security | Microsoft handles compliance and security updates | User responsible for compliance and security measures |
Choose Azure DevOps Services
Azure DevOps Services supports integration with GitHub.com and GitHub Enterprise Server repositories. Choose Azure DevOps Services when you want the following outcomes:
- Quick set-up
- Maintenance-free operations
- Easy collaboration across domains
- Elastic scale
- Rock-solid security
Azure DevOps for Open Source
This plan includes:
- 10 free parallel jobs with unlimited minutes per month
- 1 free Microsoft-hosted CI/CD parallel job with up to 1,800 minutes per month
- 1 free self-hosted CI/CD parallel job with unlimited minutes per month
- Unlimited private Git repositories
- 2 GiB of free Azure Artifacts
Azure Pipelines
-
Public Projects:
- Free to use for building and deploying applications.
- Users need to request a free grant of parallel jobs.
-
Private Projects:
- Allows users to run up to 1,800 minutes (or 30 hours) of pipeline jobs per month for free.
Pricing for Azure DevOps
https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/
Azure DevOps navigation:
- Dashboards
- Wiki
- Boards
- Repos
- Pipelines
- Test Plans
- Artifacts
Azure DevOps Organization
An Azure DevOps Organization is a container for managing and co-ordinating DevOps activities across multiple projects and teams. It serves as the logical boundary for managing access, resources, users, and billing. An organization is linked to your Azure account and is used to organize all the DevOps resources.
Key Features:
- You can create multiple organizations under one Azure account.
- Each organization has its own set of users, permissions, and settings.
- Organizations are used to group related projects and manage resources centrally.
- Organization URLs follow the pattern:
https://dev.azure.com/{OrganizationName}
.
Azure DevOps Project
An Azure DevOps Project is a subdivision within an Azure DevOps Organization. It allows you to organize code repositories, build pipelines, test plans, and artifacts related to a specific solution or team. Each project in Azure DevOps is self-contained, with its own repositories, pipelines, work items, and teams.
Key Features:
- Projects allow you to organize work for different teams or parts of an application.
- Each project has its own Azure Repos, Azure Pipelines, Azure Boards, Azure Test Plans, and Azure Artifacts.
- Security and permissions can be configured at the project level to control access to resources.
- Projects support agile, Scrum, and Kanban boards for tracking development progress.
Relationship Between Account, Organization, and Project
- Azure Account: The top-level entity that provides access to the Azure ecosystem, including Azure DevOps services.
- Organization: A logical container within Azure DevOps, used to group projects, manage users, and organize resources.
- Project: A sub-container within an organization, allowing teams to manage and collaborate on a specific piece of work or product.
Azure DevOps Project Processes
When you create a project in Azure DevOps, you can select a process that defines how work items are tracked, organized, and managed. Azure DevOps supports several different processes, each tailored to different project management methodologies.
Agile Process
The Agile process is designed for teams that follow Agile methodologies like Scrum or Kanban. It provides a lightweight and flexible structure for tracking user stories, tasks, bugs, and other work items.
Key Features:
- User Stories: Represents a small feature or requirement from a user’s perspective.
- Tasks: Breaks down work into smaller, manageable units.
- Bugs: Tracks and manages software defects.
- Boards: Provides Scrum and Kanban boards for managing sprints and workflow.
- Backlog: Used to prioritize work and manage the product backlog.
Recommended For:
- Teams that follow Agile, Scrum, or Kanban methodologies.
- Small-to-medium-sized development teams focused on iterative, incremental development.
Scrum Process
The Scrum process is based on the Scrum framework, which is an Agile process that divides work into sprints. This process includes specific Scrum terminology and work item types.
Key Features:
- Product Backlog Item (PBI): Represents work that delivers value to the customer.
- Tasks: Used to define the work needed to complete a PBI.
- Sprints: Defines time-boxed iterations where work is completed.
- Sprint Planning: Organizes work into sprints with specific goals.
- Velocity Tracking: Measures the speed of work based on the number of completed PBIs and tasks.
Recommended For:
- Teams that strictly follow the Scrum framework.
- Teams working in time-boxed iterations (sprints).
CMMI (Capability Maturity Model Integration) Process
The CMMI process is designed for projects that require more formal processes for compliance and governance, often used in industries with stricter regulatory requirements. It is structured for organizations that need detailed tracking and rigorous process control.
Key Features:
- Requirements: Formalized requirements that must be fulfilled.
- Change Requests: Tracks requested changes to a project’s scope or objectives.
- Risks: Helps track and mitigate potential project risks.
- Reviews: Includes a formal review process for evaluating work items.
- Change Management: Manages changes to scope and processes.
Recommended For:
- Projects with strict compliance, governance, or regulatory requirements.
- Larger enterprises using formal processes.
Basic Process
The Basic process is a simplified, lightweight process ideal for teams that do not need the complexity of Agile, Scrum, or CMMI. It includes essential work item types like Epics, Issues, and Tasks.
Key Features:
- Epics: Large work items that represent a significant portion of work.
- Issues: Smaller units of work that can represent tasks, bugs, or features.
- Boards: A simple Kanban-style board for managing issues and tracking work.
- Minimal Overhead: Provides fewer work item types for simpler project management.
Recommended For:
- Teams that need a minimal and flexible structure.
- Non-software development teams looking for basic project tracking.
Process Selection
Each process offers different work item types, workflows, and board structures. When setting up an Azure DevOps project, selecting the right process ensures that the methodology aligns with your team’s workflow and project goals.
Choosing the Right Process:
- Agile: Ideal for teams that want flexibility and incremental delivery.
- Scrum: Suitable for teams that work in fixed iterations and prefer a more structured framework.
- CMMI: Best for teams that require formal processes and compliance.
- Basic: Perfect for small teams or non-development projects where simplicity is key.
LAB 01
- Create your Github Account
- Create Azure Devops Account using Github account or Azure cloud account
- Create an Organization
- Request to have microsoft hosted agent Request for Parallel hosting agent
- Create a project and select process of your choice along with Version control system
- Check if you can create private project.
NOTE:
You will see your work items and pull request after you login to Azure Devops
- Walk thtough Azure Devops UI
- Project Settings
- User Settings
- MarketPlace
- Also check for Organization Settings
- General
- Oragnization owner
- Organization Deletion
- Project Limits
- Billings
- Security
- Policies
- Boards
- Pipelines
- Repos
- Artifacts
- General
Azure Wiki
Overview
Azure Wiki is a collaborative documentation tool integrated into Azure DevOps. It allows teams to create, share, and manage documentation related to their projects.
Key Features
- Markdown Support: Write and format documentation using Markdown for easy readability.
- Version Control: Keep track of changes made to documentation over time.
- Collaboration: Team members can edit and comment on wiki pages, facilitating better communication.
- Search Functionality: Easily find documentation through a powerful search feature.
- Integration with Azure DevOps: Seamlessly connect wiki content with your Azure DevOps projects.
Use Cases
- Documenting project guidelines and best practices.
- Keeping track of technical specifications and architecture.
- Creating onboarding materials for new team members.
Azure Dashboards
Overview
Azure Dashboards provide a customizable view of your Azure resources, allowing users to visualize and monitor the health and performance of their applications and services.
Key Features
- Customizable Layout: Arrange tiles to create a dashboard that meets your specific needs.
- Multiple Data Sources: Integrate data from various Azure services, including Azure Monitor and Azure Log Analytics.
- Real-Time Monitoring: Get real-time insights into resource performance and status.
- Sharing Options: Share dashboards with team members or stakeholders for collaborative monitoring.
- Alerts and Notifications: Set up alerts to be notified of critical changes or issues.
Use Cases
- Monitoring application performance and usage.
- Visualizing resource utilization and costs.
- Tracking key performance indicators (KPIs) for projects.
LAB 02
- Create Azure Wiki
- Create Wiki Subpage
- Check other option moving here and there
- Link this with some workitems
- Add some sample Dashboard
Azure Boards Overview
What is Azure Boards?
Azure Boards is a service within Azure DevOps that provides a rich set of tools for planning, tracking, and managing software development projects. It allows teams to organize their work using agile methodologies, such as Scrum and Kanban.
Key Features
- Work Items: Create and manage work items like user stories, tasks, bugs, and epics to track project progress.
- Backlogs: Prioritize and manage work items in a backlog to ensure the team is focused on the most important tasks.
- Boards: Visualize work in progress using Kanban boards, allowing teams to track tasks and their status.
- Queries: Use custom queries to filter and view work items based on specific criteria.
- Dashboards: Create customizable dashboards to visualize project metrics and team performance.
- Sprints: Manage and plan work in sprints, allowing teams to deliver incremental value regularly.
Function | Description |
---|---|
Work Items | Access lists of work items based on specific criteria, such as those assigned to you, those you follow, and work items you’ve viewed or updated. |
Boards | View work items as cards and update their status through drag-and-drop; implement Kanban practices and visualize workflow for a team. |
Backlogs | View, plan, order, and organize work items to prioritize tasks and focus on important work. |
Sprints | Access your team’s filtered view of work items based on a specific sprint or iteration path. |
Queries | Generate custom work item lists, perform triage, make bulk updates, and view relationships between work items. |
Delivery Plans | Manage deliverables and track dependencies across multiple teams in a calendar view. |
Analytics Views | Create sophisticated Power BI reports based on Azure Boards data; access default analytics views or create custom views. |
Benefits
- Improved Collaboration: Teams can easily track and update work items, enhancing communication and collaboration.
- Flexibility: Supports various methodologies (Agile, Scrum, Kanban) to adapt to your team’s workflow.
- Transparency: Provides visibility into project progress and team workloads, facilitating better decision-making.
- Integration: Seamlessly integrates with other Azure DevOps services, such as Repos and Pipelines.
The following image shows the hierarchy for the process backlog work item:
Basic Process
Agile process
Scrum Process
CMMI Process
What is an Epic?
An Epic in project management and Agile methodologies is a high-level body of work that can be broken down into smaller, manageable pieces known as Features or User Stories.
Key Characteristics of an Epic:
- Large Scope: An Epic typically encompasses a significant amount of work that addresses a broad objective or goal.
- Breakdown into Smaller Units: Epics are divided into smaller, more manageable components (Features or User Stories) that can be worked on incrementally.
- Longer Time Frame: Completing an Epic may take several sprints or iterations, depending on its complexity.
- Value-Driven: Epics are often aligned with business goals and deliver substantial value to the end user or the organization.
Purpose of an Epic:
- Organizational Tool: Helps teams organize work in a way that aligns with strategic objectives.
- Progress Tracking: Provides a way to track progress on larger initiatives over time.
- Communication: Facilitates communication among stakeholders regarding high-level goals and progress.
Example:
- Epic: “Improve User Experience on E-Commerce Site”
- Feature: “Redesign Product Page”
- User Story: “As a shopper, I want to see high-quality images of products.”
- User Story: “As a shopper, I want to read customer reviews.”
- Feature: “Implement One-Click Checkout”
- User Story: “As a shopper, I want to complete my purchase with one click.”
- Feature: “Redesign Product Page”
Epics help teams focus on delivering larger outcomes while breaking down the work into smaller, actionable tasks.
What is a Feature?
A Feature is a specific piece of functionality or a set of related capabilities that deliver value to users within a product or system. Features are typically derived from higher-level Epics and are designed to meet user needs or requirements.
Key Characteristics of a Feature:
- User-Centric: Features are designed with the end-user in mind, focusing on how they enhance user experience or solve specific problems.
- Defined Scope: A feature has a clear scope and purpose, making it easier to manage and develop.
- Measurable: Features can be measured in terms of success criteria, such as user adoption or performance metrics.
- Time-Bound: Features are often planned for implementation within specific timeframes, usually aligned with sprints or releases.
Purpose of a Feature:
- Functional Specification: Provides a detailed description of how a particular aspect of the product should function.
- Prioritization: Helps teams prioritize work based on user needs and business value.
- Progress Tracking: Features enable teams to track progress towards completing an Epic.
Example:
- Feature: “Redesign Product Page”
- User Story: “As a shopper, I want to see high-quality images of products.”
- User Story: “As a shopper, I want to read customer reviews.”
- User Story: “As a shopper, I want to view related products.”
Features serve as the building blocks of product development, allowing teams to focus on delivering specific functionalities that enhance the overall user experience.
User Story
A User Story is a short, simple description of a feature told from the perspective of the user or customer. It captures what the user wants and why, focusing on the value delivered.
Key Characteristics:
- Format: Typically written in the format: “As a [type of user], I want [some goal] so that [some reason].”
- User-Centric: Centers on the needs and experiences of the end-user.
- Acceptance Criteria: Each user story includes specific criteria to determine when the story is considered complete.
Example:
- User Story: “As a shopper, I want to filter products by category so that I can find items quickly.”
Task
A Task is a specific piece of work that contributes to the completion of a user story or feature. Tasks are actionable items that the team needs to perform to deliver the user story.
Key Characteristics:
- Granular: Tasks are smaller, more specific actions that can be completed in a short time frame (usually within a sprint).
- Assigned: Tasks are typically assigned to team members for execution.
- Measurable: Progress on tasks can be tracked easily.
Example:
- Task: “Implement the product filtering functionality.”
- Task: “Design the filter UI for the product page.”
Issue
An Issue refers to a problem or defect in the product that needs to be resolved. Issues can arise during development, testing, or after deployment.
Key Characteristics:
- Problem-Focused: Issues highlight bugs, errors, or areas of concern that impact the functionality or user experience.
- Trackable: Issues are tracked in issue management tools, allowing teams to prioritize and address them.
- Resolution Needed: Each issue requires investigation and resolution before the product can be considered complete.
Example:
- Issue: “The filter does not display results correctly.”
- Issue: “The checkout page crashes when using certain payment methods.”
These elements—User Stories, Tasks, and Issues—help Agile teams manage their work effectively, ensuring that they deliver value while addressing any problems that may arise during development.
Sprints and Iterations
What is a Sprint?
A Sprint is a fixed time frame during which a specific set of work items, usually derived from the product backlog, is completed. Sprints are a key component of Agile methodologies, particularly Scrum.
Key Characteristics of a Sprint:
- Time-Boxed: Sprints typically last between 1 to 4 weeks, with a fixed duration that does not change.
- Goal-Oriented: Each sprint has a specific goal or set of deliverables that the team aims to achieve.
- Incremental Delivery: At the end of a sprint, the team should deliver a potentially shippable product increment, meaning that it can be released if desired.
Purpose of a Sprint:
- Focus: Provides a structured time frame for teams to focus on delivering specific features or fixes.
- Feedback Loop: Enables regular feedback from stakeholders and users, allowing teams to adjust their work based on actual user needs.
- Continuous Improvement: After each sprint, teams hold a retrospective to discuss what went well and what could be improved.
What is an Iteration?
An Iteration is a more general term that refers to any repeated cycle in a development process. In Agile, iterations are often synonymous with sprints, but they can also encompass broader cycles of work that may not be time-boxed in the same way.
Key Characteristics of an Iteration:
- Flexible Duration: Unlike sprints, iterations may not always have a fixed length; they can vary based on the project or methodology used.
- Iterative Development: Focuses on gradually building and refining a product through repeated cycles of development and feedback.
- Adaptability: Allows teams to respond to changing requirements and incorporate learnings from previous cycles.
Purpose of an Iteration:
- Continuous Development: Promotes ongoing development and enhancement of the product through regular cycles of work.
- User Feedback: Provides opportunities to gather user feedback at multiple points in the development process.
- Risk Management: Helps teams identify and address issues early in the development cycle.
Example:
- Sprint: A 2-week sprint to develop a new user authentication feature, including user stories for login, registration, and password recovery.
- Iteration: An ongoing process where the team refines the product based on user feedback collected every few weeks, possibly incorporating both sprints and ad-hoc adjustments.
In summary, both sprints and iterations are essential for Agile development, enabling teams to deliver value incrementally while adapting to changing requirements and user feedback.
Common Tasks and Solutions
Create a Work Item
Task: Create a new work item (e.g., user story, task).
Solution:
- Navigate to Boards > Work Items.
- Click on New Work Item and select the type.
- Fill in the details and click Save.
Update a Work Item
Task: Modify an existing work item.
Solution:
- Go to Boards > Work Items.
- Select the work item to edit.
- Make necessary changes and click Save.
Use a Kanban Board
Task: Track work items using a Kanban board.
Solution:
- Navigate to Boards > Boards.
- Drag and drop work items between columns to update their status.
Create a Sprint
Task: Set up a new sprint for your team.
Solution:
- Go to Boards > Sprints.
- Click on New Sprint.
- Define the sprint name, start date, and end date, then click Create.
Manage Backlogs
Task: Prioritize items in the backlog.
Solution:
- Navigate to Boards > Backlogs.
- Drag and drop items to reorder them based on priority.
Create a Query
Task: Create a custom query to filter work items.
Solution:
- Go to Boards > Queries.
- Click on New Query.
- Set your filtering criteria and click Run Query to see results.
Set Up Dashboards
Task: Create a dashboard to visualize project metrics.
Solution:
- Navigate to Dashboards in Azure DevOps.
- Click on New Dashboard.
- Add widgets to display relevant data and metrics.
Add Comments to Work Items
Task: Collaborate by adding comments to work items.
Solution:
- Open the desired work item.
- Scroll to the comments section, type your message, and click Add Comment.
Link Work Items
Task: Link related work items (e.g., tasks to user stories).
Solution:
- Open a work item and navigate to the Links tab.
- Click on Add link, choose the link type, and search for the related work item.
Close a Work Item
Task: Mark a work item as complete.
Solution:
- Open the work item you wish to close.
- Change its status to Done or Closed and click Save.
LAB 03
- Change the Work process
- Add a new field
- Add a custom work process and add new fields
- Run the queries
What are Delivery Plans?
Delivery Plans are a visual tool in Agile project management that helps teams track and manage deliverables across multiple teams or projects. They provide a high-level view of upcoming work and dependencies, facilitating better planning and coordination.
Key Characteristics of Delivery Plans:
- Visual Representation: Delivery plans often use a calendar view or timeline format to show when specific deliverables are expected.
- Multi-Team Coordination: They help manage dependencies and track deliverables across various teams, ensuring alignment with overall project goals.
- Dynamic: Delivery plans can be updated regularly to reflect changes in timelines, priorities, or resource allocations.
Purpose of Delivery Plans:
- Enhanced Visibility: Provides stakeholders with a clear view of upcoming deliverables and project timelines.
- Dependency Management: Helps identify and manage dependencies between teams, reducing the risk of delays.
- Alignment: Ensures that all teams are aligned with the overall objectives and timelines of the project.
Components of a Delivery Plan:
- Milestones: Key points in the project timeline that mark significant progress or deliverables.
- Features and User Stories: Specific functionalities or user stories that are being worked on, often tied to specific milestones.
- Teams Involved: Identification of which teams are responsible for various deliverables, helping to clarify roles and responsibilities.
Example:
- Delivery Plan: A delivery plan for a new e-commerce platform might include:
- Milestone 1: User Authentication Feature (Due: Week 3)
- Milestone 2: Product Search Functionality (Due: Week 5)
- Milestone 3: Payment Gateway Integration (Due: Week 7)
Benefits of Using Delivery Plans:
- Improved Collaboration: Facilitates communication between teams and stakeholders by providing a shared view of progress and timelines.
- Proactive Planning: Allows teams to anticipate challenges and make adjustments early in the development process.
- Increased Accountability: Clearly defined deliverables and timelines help hold teams accountable for their commitments.
Who Creates Delivery Plans?
- Project Managers: Often lead the creation of delivery plans to ensure alignment with project goals and timelines.
- Scrum Masters: Facilitate the process by gathering input from the team and ensuring that all relevant information is included.
- Product Owners: Provide insights on priorities and features, helping to define what needs to be delivered and when.
- Agile Teams: Team members may contribute to the delivery plan by providing estimates and updates on their work items.
For Whom Are Delivery Plans Created?
- Stakeholders: Delivery plans are primarily created for stakeholders, including executives, sponsors, and clients, to provide transparency and visibility into project progress.
- Development Teams: Teams use delivery plans to understand their commitments, deadlines, and dependencies on other teams or projects.
- Product Owners: To help them prioritize features and manage expectations with stakeholders.
- Cross-Functional Teams: Teams working across different areas benefit from a shared view of timelines and deliverables, fostering collaboration and coordination.
Purpose of Delivery Plans:
- Visibility: Ensures that all parties have a clear understanding of what is being delivered and when.
- Alignment: Helps align the efforts of various teams toward common project goals.
- Communication: Acts as a communication tool to keep everyone informed about progress, changes, and potential risks.
Iterations, Area Path, and Team Configuration - Azure DevOps
1. Configure Area Paths
Area Paths represent a hierarchical structure for your project to organize work by team, product, or feature.
Steps:
- Go to your Azure DevOps project.
- From the left navigation panel, select Project Settings.
- Under Boards, click Areas.
- Create new Area Paths or modify existing ones by clicking New Child to create sub-areas.
- Assign the Area Paths to specific teams or work items as needed.
2. Configure Iterations (Sprints)
Iterations define timeboxes (Sprints) in which teams will work on completing a set of work items.
Steps:
- Navigate to Project Settings.
- Under Boards, click Iterations.
- Click New Child to add new iterations under a parent iteration (e.g., a release).
- Set the start date and end date for each iteration according to your sprint schedule.
3. Assign Area Paths and Iterations to Teams
Teams need to be configured to work within specific Area Paths and Sprints.
Steps:
- Go to Project Settings.
- Select Teams, then choose the team you want to configure.
- Click Iterations from the left-hand menu of the team settings.
- Check the Iterations that the team will work on.
- For Areas, choose the Area Path(s) that this team will work within.
4. Set Default Iteration and Area Path for Work Items
Set default Area Paths and Iterations for work items created by a specific team.
Steps:
- In the team configuration, go to the Iterations and Areas tab.
- Set the default iteration and default area for new work items.
Pending Task:
-
Create a Area and Iteration
-
Check the Capacity
-
Define working days
- Add a custom Process