0% found this document useful (0 votes)
2 views5 pages

Agile Development and Git Overview

The document outlines key concepts in Agile Software Development, Git, DevOps, ITIL, delivery pipelines, monolithic architecture, and continuous testing. It emphasizes Agile principles such as customer collaboration and iterative delivery, explains Git as a distributed version control system, and compares DevOps with ITIL focusing on speed versus stability. Additionally, it discusses the importance of identifying bottlenecks in delivery pipelines and the various types of testing used in DevOps.

Uploaded by

mirageislife100
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views5 pages

Agile Development and Git Overview

The document outlines key concepts in Agile Software Development, Git, DevOps, ITIL, delivery pipelines, monolithic architecture, and continuous testing. It emphasizes Agile principles such as customer collaboration and iterative delivery, explains Git as a distributed version control system, and compares DevOps with ITIL focusing on speed versus stability. Additionally, it discusses the importance of identifying bottlenecks in delivery pipelines and the various types of testing used in DevOps.

Uploaded by

mirageislife100
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Q1.

Principles of Agile Software Development


 Agile Software Development is based on the Agile Manifesto (2001), which
emphasizes flexibility, customer collaboration, and iterative delivery.
 Agile focuses on delivering working software in small increments, adapting to change,
and involving customers throughout the process.

Agile Core Values

1. Individuals and interactions over processes and tools – Team collaboration is more
important than rigid processes.
2. Working software over documentation – Functioning code matters more than reports.
3. Customer collaboration over contracts – Ongoing involvement of customers ensures
the product meets expectations.
4. Responding to change over following a plan – Agile welcomes changes, even late in
development.

12 Principles of Agile

1. Deliver valuable software early and continuously.


2. Welcome changing requirements anytime.
3. Deliver working software frequently (short cycles).
4. Business and developers work together daily.
5. Build projects around motivated individuals.
6. Prefer face-to-face communication.
7. Working software is the main progress measure.
8. Agile promotes sustainable pace of work.
9. Technical excellence and design quality matter.
10. Simplicity is essential.
11. Teams organize themselves.
12. Regular reflection and adaptation improve performance.

Diagram: Agile Workflow


Backlog → Sprint Planning → Development → Testing → Delivery → Feedback → Next
Sprint

Q2. What is Git, Git Servers and Different


Git Server Implementations?
What is Git?

 Git is a distributed version control system (DVCS) created by Linus Torvalds.


 Tracks changes in source code and allows collaboration.
 Key features: branching, merging, distributed repos, speed.

Git Workflow

 Developer writes code → git add → git commit → git push to remote → others git
pull.

Git Servers

 Remote platforms that host Git repositories for collaboration.


 Provide access control, pull requests, CI/CD integration.

Different Git Server Implementations

1. GitHub – Largest hosting platform, supports pull requests, GitHub Actions.


2. GitLab – Strong CI/CD, open-source, self-hosted option.
3. Bitbucket – Atlassian product, integrates with Jira and Trello.
4. Azure Repos – Part of Azure DevOps suite, integrates with pipelines.
5. AWS CodeCommit – Fully managed Git hosting on AWS.
6. Gitea/Gogs – Lightweight, self-hosted, open-source solutions.
7. Gerrit – Enterprise-grade Git server with code review features.

Diagram: Git Collaboration


Developer Local Repo → Commit → Push → Git Server → Pull by Others → Merge

Q3. Explain about DevOps and ITIL


What is DevOps?

 DevOps = Development + Operations.


 Aims at faster delivery, automation, collaboration, and continuous improvement.
 Principles: CI/CD, Infrastructure as Code, monitoring, automation.

What is ITIL?

 ITIL (Information Technology Infrastructure Library) = Best practices for IT service


management (ITSM).
 Focus on service strategy, design, transition, operation, and continual improvement.
Comparison

Aspect DevOps ITIL


Focus Speed, automation, collaboration Stability, governance, process
Approach Agile, flexible, fast Structured, process-driven
Goal Continuous delivery Reliable IT services
Tools Jenkins, Docker, Kubernetes ServiceNow, BMC Remedy

Integration

 DevOps + ITIL together = Fast but reliable IT services.


 Example: ITIL ensures compliance; DevOps ensures rapid CI/CD.

Q4. Delivery Pipeline, Identifying Bottlenecks


Delivery Pipeline

 Sequence of automated steps code passes through → CI/CD pipeline.


 Stages:
1. Commit to Version Control (Git).
2. Build (compile, package).
3. Automated Testing (unit, integration, functional).
4. Deployment (staging → production).
5. Monitoring and Feedback.

Diagram
Commit → Build → Test → Deploy → Monitor

Bottlenecks in Pipeline

1. Slow Builds – Long compile times.


2. Manual Testing – Delays due to lack of automation.
3. Unstable Environments – Inconsistent results.
4. Manual Deployments – Error-prone, time-consuming.
5. Approval Delays – Bureaucracy slows delivery.

Solutions

 Automate builds and tests.


 Use containerization (Docker).
 Infrastructure as Code (Terraform, Ansible).
 Monitor pipeline performance metrics.

Q5. Monolithic Scenario, Architecture Rules


of Thumb
Monolithic Scenario

 Monolithic Architecture = Application built as one unit.


 All modules (UI, business logic, database access) tightly coupled.
 Example: Traditional banking or e-commerce app deployed as single .jar file.

Advantages:

 Easy to develop and deploy (one file).


 Simple debugging in small systems.

Disadvantages:

 Hard to maintain as system grows.


 Scaling requires scaling entire app.
 Technology lock-in.

Architecture Rules of Thumb

1. Separation of Concerns – Divide system into layers.


2. Loose Coupling – Reduce dependencies.
3. High Cohesion – Each module should serve a single purpose.
4. Scalability – Enable horizontal and vertical scaling.
5. Security by Design – Built-in security at every layer.
6. Modularity – Reusable components.
7. Fault Tolerance – System should recover from failures.

Diagram: Monolithic App


UI Layer
Business Logic Layer
Database Layer
(Single deployment unit)

Q6. Continuous Testing and Types of Testing


Continuous Testing (CT)

 Running automated tests as part of the CI/CD pipeline.


 Provides immediate feedback on risks and quality.
 Ensures faster, reliable delivery.

Types of Testing in DevOps

1. Unit Testing – Validates functions/methods.


2. Integration Testing – Checks interaction between modules.
3. Functional Testing – Ensures requirements are met.
4. Regression Testing – Verifies new changes don’t break old features.
5. Performance Testing – Tests speed, load handling.
6. Security Testing – Identifies vulnerabilities.
7. Acceptance Testing – Customer/QA validation.
8. Smoke Testing – Quick check of basic functions.
9. End-to-End Testing – Validates full workflow.

Diagram: Testing in Pipeline


Commit → Build → Continuous Testing (Unit, Integration, Security) → Deploy

Tools

 JUnit, PyTest (unit)


 Selenium (functional)
 JMeter (performance)
 OWASP ZAP (security)

You might also like