SDLC: Agile & DevOps
In this note, I want to discuss two most popular SDLC in modern time and also feasible to do in the small scale. Here is the overview:
Agile: popular because it employes iterative development, continuous feedback, adaptability to change, and strong customer collaboration make Agile the top choice, especially for startups, SaaS, and mobile app development. Common frameworks: Scrum, Kanban.
DevOps: (often considered an evolution of Agile) it emphasizes automation, continuous integration/delivery (CI/CD), and collaboration between development and operations teams, crucial for cloud-native and microservices-based architectures. Common tools: Jenkins, Docker, Kubernetes, GitHub Actions.
Agile
Agile is a software development methodology that emphasizes:
- Iterative and incremental delivery
- Customer collaboration
- Responding to change
- Working software over documentation
Rather than delivering everything at once at the end (like Waterfall), Agile delivers small, working pieces of software frequently (e.g., every 1–4 weeks), allowing teams to adapt and improve as they go.
Some Principles:
- Continuous and frequent delivery -> Satisfy customer request.
- Welcome changing requirements -> Simplicity is essential (don’t get too attached). Make it work, not too beautiful.
- Sustainable development -> Right pace (avoid burnout).
- Regular reflection and adjustment (retrospectives) -> Better results.
Agile Lifecycle
Here’s how Agile typically works in a loop:
- Concept: High-level product vision, requirements, and roadmap.
- Iteration Planning: Choose which features/stories to implement in the next short cycle (called a sprint or iteration).
- Iteration (1–4 weeks):
- Daily Standups (15-min team syncs)
- Development, testing, and integration of features
- Demo/Review: Show working software to stakeholders.
- Retrospective: Reflect on what went well, what didn’t, and how to improve.
- Repeat: Each sprint builds on the previous one, allowing for frequent delivery and course correction.
Common Agile framework
Agile is a philosophy, not a strict process. These are popular implementations of Agile:
- Scrum: Most popular. Fixed-length sprints (1–4 weeks), defined roles (Product Owner, Scrum Master, Team), backlog grooming, retrospectives, etc.
- Kanban: Visualize work on a board. Limit work in progress (WIP), optimize flow. Great for maintenance/operations.
Pros & Cons:
- Pros:
- Faster delivery of usable software
- High adaptability to change
- Improved product quality (thanks to continuous testing)
- Greater customer involvement and satisfaction
- Better team collaboration and morale
- Cons:
- Needs skilled team members and strong communication
- May face resistance from clients expecting detailed upfront plans
Study Case: Agile with Scrum in 2D Game Development
1. Scrum core concepts
- Sprint Duration: 2 weeks
- Roles:
- Product Owner (PO): Bob (defines backlog, priorities)
- Scrum Master (SM): Alice (facilitates ceremonies)
- Development Team: All three (shared responsibilities)
2. Product Backlog
ID | Title | Description | Priority |
---|---|---|---|
#1 | Player Actions | Implement all four actions. | High |
#2 | Physics | Logic of collisions | Medium |
#3 | Control Input | Define inputs and API | Medium |
#4 | UIs | Display UI on scenes | Low |
3. Sprint Planning - Sprint 1
- Goal: Playable 1v1 sumobot match with basic mechanics.
- Sprint Backlog:
- #1 Player Actions (Alice)
- #2 Physics (Bob)
- #3 Control Input (Cara)
4. Daily Standups (15 min, every morning)
- Each team member shares:
- What they did yesterday
- What they’re doing today
- Any blockers
- Example:
Alice: “Yesterday I finished movement. Today I’ll hook it to animation. Blocked by Bob’s physics.”
Bob: “Working on bounce physics. Need input from Cara on control input.”
Cara: “Just finished the button and live command inputs.”
5. Sprint Review (End of Sprint 1)
- Demo: Show working match with player vs simple NPC, showing basic actions.
- Feedback: Consider tweaking friction and better NPC system.
6. Sprint Retrospective
- What went well:
- Goot Git practice
- Daily syncs helpful
- Sprint goal is defined
- What could improve:
- Physics logic buggy
- No testing done
- NPC is too dumb
- UI is too complicated for current version
- Action items:
- NPC design at GDD
- Playtest checklist
- UI design
Then, repeat step 3 and redefine the goals etc.
Study Case: Agile with Kanban in 2D Game Development
1. Kanban Basics
- No sprints, just continuous flow, flexible
- Work In Progress (WIP) limits: Keep team focused, avoid task overload
- Kanban Board: Visualize progress. Ex: Trello, Notion, GitHub Project
- Cons: May lose structure without a clear goal per time frame
Backlog | To do | In-progress | Review | Done |
---|---|---|---|---|
#5 Animations #6 SFX #7 VFX |
#3 UI | #1 Player actions | #4 Arena | #2 Dummy NPC |
2. Task Ownership
- Anyone pulls from To Do when their WIP slots are free
- Once done, tasks move to Review (peer tested by another dev)
- After review/QA, tasks move to Done
- or, task can be assigned by PM
Scrum vs Kanban: When to use?
Situation | Best Model |
---|---|
You want clear goals every 2 weeks, defined roles, ceremonies. | ✅ Scrum |
You want continuous delivery, more flexibility, less planning overhead. | ✅ Kanban |
You can also use ScrumBan (hybrid) if your team evolves over time.
DevOps.
DevOps is a culture, set of practices, and toolchain that integrates development (Dev) and operations (Ops) teams to enable:
- Faster, more reliable software delivery
- Automation of build, test, deploy, and monitor pipelines
- Continuous Integration (CI) and Continuous Delivery/Deployment (CD)
While Agile focuses on how software is developed, DevOps focuses on how software is built, tested, delivered, and maintained.
DevOps Lifecycle (Continuous Loop)
PLAN → DEVELOP → BUILD → TEST → RELEASE → DEPLOY → OPERATE → MONITOR → (feedback back to PLAN)
.
Stage | Description | Tools |
---|---|---|
Plan | Define features and priorities | Jira, Azure Boards |
Develop | Write code, collaborate | Git, GitHub, GitLab |
Build | Compile, package | MSBuild, Maven, Gradle |
Test | Automated/unit/integration tests | NUnit, xUnit, Selenium |
Release | Prep for deployment | Octopus Deploy, GitHub Actions |
Deploy | Push to production | Docker, Kubernetes, Azure Pipelines |
Operate | Keep system running | Kubernetes, AWS, Azure |
Monitor | Track errors, performance | Prometheus, Grafana, ELK Stack |
When to Use DevOps
- When you’re ready to automate deployment, testing, and scaling.
- When you’re managing cloud infrastructure or containerized apps.
- Ideal for microservices, cloud-native, or always-on systems.
- Focus is on reliability, uptime, automation, and monitoring.
Agile vs DevOps
Differences
Feature | Agile | DevOps |
---|---|---|
Focus | Development process | Delivery & operations pipeline |
Goal | Deliver working software quickly | Deliver software and ensure it runs smoothly |
Teams | Dev-centric | Dev + Ops + QA + Infra |
Feedback loops | From stakeholders & users | From monitoring & infrastructure |
Deliverable | Working, tested features | Deployable, reliable software |
Tools | Jira, Trello, Kanban boards | Git, Docker, Jenkins, Kubernetes |
Frequency | Iterations/sprints | Continuous delivery |
Agile is about how you build; DevOps is about how you ship and run.
When to use Agile and DevOps
Example:
- You work in sprints (Agile) to develop your Unity sumobot game. You also set up a CI/CD pipeline (DevOps) to automatically:
- Run unit tests after each Git push
- Build your WebGL version
- Deploy to itch.io or Firebase hosting
- Alert you via Slack if something fails
Best practice: Use Agile for development and DevOps for delivery.
Fast, incremental progress (Agile).
Reliable, automated delivery (DevOps).