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)