Bachelor of Science in Computer Science
Course ContentAgile
Habari Yako, Future Tech Leader! Let's Talk Agile.
Welcome to Software Engineering! You've probably heard a lot about building software. Maybe you imagine it's like constructing the Nairobi Expressway – a huge, detailed plan is made, everything is approved, and then construction starts, following the plan exactly from start to finish. For years, that's how software was built. We call it the Waterfall Model. But what happens if, halfway through, you realize you need an exit at Westlands? Too late! The plan is set.
In today's fast-moving tech world, from the innovation hubs in Kilimani to the global giants, we need a better way. A more flexible, faster, and smarter way. Enter Agile. Think of it less like building an expressway and more like navigating Nairobi traffic on a boda boda – you have a destination, but you are constantly adapting your route to avoid jams, find shortcuts, and get there efficiently. Sawa?
What is this 'Agile' Thing, Really?
Agile is not a specific tool or a strict set of rules. It's a mindset, a philosophy for building products (not just software!). It's about working in small, manageable chunks, getting feedback early and often, and being ready to change direction when needed. It’s built on four core values, outlined in the "Agile Manifesto":
- Individuals and interactions over processes and tools. (People talking to each other is more important than just filling out forms).
- Working software over comprehensive documentation. (Having something that works is better than having a 500-page manual for something that doesn't).
- Customer collaboration over contract negotiation. (Working with your client like a partner, not an opponent).
- Responding to change over following a plan. (The boda boda analogy! Be ready to adapt).
Kenyan Analogy: The Harambee Project
Imagine your community is building a new social hall through a harambee. A Waterfall approach would be to raise all the money first (which could take years!), create a perfect architectural plan, and only then start building. An Agile approach would be different:
1. Sprint 1: Raise enough money to lay the foundation and build the walls. Now you have a basic, usable structure. The community can already use it for small meetings.
2. Feedback: The elders say they need a better ramp for accessibility. You note this down.
3. Sprint 2: Raise more funds to add the roof and the accessibility ramp. It's more useful now!
4. Sprint 3: Plaster the walls, add windows, and do the wiring.
You build value step-by-step, getting feedback and adapting along the way. That is the Agile spirit!
Popular Agile Frameworks: Scrum & Kanban
Agile is the mindset, but frameworks are the specific ways to apply it. The two most popular ones you'll encounter are Scrum and Kanban.
1. Scrum: The Structured Sprint
Scrum is an Agile framework that is very popular for complex projects. It works in cycles called Sprints, which are usually 1-4 weeks long. At the end of each Sprint, the team must have a usable piece of the product to show for their work.
Key Scrum Roles:
- Product Owner: The voice of the customer. They decide *what* needs to be built.
- Scrum Master: The facilitator. They help the team work smoothly and remove any obstacles (we call them *impediments*). They are a servant-leader, not a traditional boss.
- Development Team: The experts who do the actual work (developers, designers, testers, etc.).
Here is a simple view of the Scrum cycle:
+-------------------+ +-----------------+ +---------------------+
| Product Backlog |----->| Sprint Planning |----->| Sprint Backlog |
| (List of all | | (Team chooses | | (Work for this Sprint)|
| features) | | work for Sprint)| +----------+----------+
+-------------------+ +-----------------+ |
^ | (Work for 1-4 Weeks)
| v
+----------------------+ +------------------+ +---------------------+
| New ideas & Feedback |<----| Sprint Review |<-----| Daily Standup (15min)|
+----------------------+ | (Show what's done)| | (Quick Sync-up) |
+------------------+ +---------------------+
Image Suggestion: An energetic and diverse Kenyan tech team having a daily stand-up meeting in a modern office in Nairobi. They are gathered around a whiteboard with sticky notes. The Scrum Master, a friendly woman, is facilitating. The vibe is collaborative and positive, with a view of the Nairobi skyline through the window. Style: Vibrant, realistic digital art.
2. Kanban: Visualizing the Flow
Kanban is all about visualizing your workflow and limiting "Work in Progress" (WIP). It's less structured than Scrum and focuses on a continuous flow of work. Think of the checkout counter at Naivas. You don't want 20 people being served at once; you want a smooth flow from aisle to checkout to exit.
A simple Kanban board has three columns:
- To Do: Tasks waiting to be started.
- In Progress: Tasks currently being worked on.
- Done: Completed tasks.
The key rule is to limit the number of items in the "In Progress" column. This prevents the team from getting overwhelmed and helps identify bottlenecks quickly.
Here’s a basic Kanban board:
TO DO | IN PROGRESS (WIP Limit: 2) | DONE
-------------------------|-----------------------------------------|-----------------------
[ ] User Login Page | [>] Design Database Schema | [x] Setup Project
[ ] Payment Integration | [>] Develop User Profile API | [x] Choose Tech Stack
[ ] User Profile Page | |
[ ] Write Unit Tests | |
Let's Get Practical: Agile Estimation & Math
In Agile, we try to avoid estimating in hours or days, which can be inaccurate. Instead, we often use Story Points.
Story Points
Story Points are a relative measure of effort. It's a combination of complexity, risk, and the amount of work. We often use a modified Fibonacci sequence (1, 2, 3, 5, 8, 13, ...). A '1-point' task is trivial, while a '13-point' task is very large and complex.
Imagine you're asked to estimate cooking tasks.
- Making a cup of tea: 1 point (Easy, low effort)
- Cooking Githeri: 5 points (Takes time, several steps)
- Preparing a full Nyama Choma feast for 20 people: 13 points (Complex, high effort, lots of coordination)
Velocity
Velocity is the average number of Story Points a team completes in a Sprint. It helps in planning how much work the team can take on in future Sprints.
Calculation Example:
Let's say a team completes the following Story Points over three Sprints:
- Sprint 1: 18 points
- Sprint 2: 23 points
- Sprint 3: 20 points
Step 1: Sum the points from the past Sprints.
18 + 23 + 20 = 61 points
Step 2: Divide by the number of Sprints to get the average.
61 / 3 = 20.33
Step 3: Round to a whole number.
The team's average Velocity is approximately 20 points per Sprint.
Now, for the next Sprint (Sprint 4), the team can confidently plan to take on about 20 points of work from the backlog.
Burndown Chart
This is a simple graph that shows the amount of work remaining in a Sprint versus the time. It's a great way to see if you are on track!
Story
Points
^
40| X
| X
30| X X
| X
20| X
| X
10| X
| X____ (Ideal Line)
0 +---------------------> Time (Days)
Day 1 Day 5 Day 10
(X = Actual work remaining)
In the chart above, the team is tracking well against the ideal line. If the 'X's were high above the line, it would mean they are behind schedule.
Conclusion: Go Forth and Be Agile!
Mastering Agile is not about memorizing terms; it’s about embracing a mindset of collaboration, flexibility, and continuous improvement. It's the engine behind successful Kenyan startups and global tech giants alike because it allows teams to build the right product for their users, faster.
As you step into the world of software development, think Agile. Be the developer who asks questions, collaborates with your team, isn't afraid to adapt, and focuses on delivering real value, one sprint at a time. You've got this!
Pro Tip
Take your own short notes while going through the topics.