Business is dynamic; opinions, plans and decisions subject to change. Competition in the market force these changes to be much more frequent, requiring systems to catch-up the business, as soon as possible.
Decades ago, as a software development method, waterfall was being used. Waterfall simply means that, each step is predefined and processed. After starting it, you (mostly) cannot change what you asked for. At the end, the result might not make you happy as the guy above. This is a good example of waterfall, value comes at the end.
To provide more flexibility to catch-up business actions, agile and lean methods have introduced. These methods are iterative development, based on fast feedback processing, delivering value after each release and biting as development team can chew.
Lean development is based on building, learning, experimenting on market and re-building, in a loop. An MVP is being created and made better each step, as shown below. In every loop, making product more usable / valuable to the customer.
Agile development is based on building and releasing, without making experiments, but getting feedback. It can be applied by 2 methods: Scrum and Kanban (there are also hybrid methods).
Kanban: It is scheduling system developed by Toyota. This system organizes production in a logical chain. It is based on just in time delivery, meaning that if there is a change, it is processed immediately. Tasks are pulled by developers in order, without waiting.
Scrum: Based on iterative, time restricted development plan. Development is planned, executed, demonstrated and evaluated weekly/monthly plans called sprints. Mostly tasks are called bugs, stories and epics (there are also analysis, tests, documentation, design, etc.)
Bugs: These are the problems must be fixed.
Story: This is a task, formatted as a real story. It answers “who”, “what” and “why” questions. Here is an example:
“As an end user, I want to filter names in search result to find names easily.”
Epic: These are tasks that can’t be handled in a single story.
For more detail, here is a good comparison table for Scrum & Kanban :
As can be seen in the previous table, there are roles, boards and ceremonies.
Developer: A rock star developer
Designer: Can be a UI designer, UX designer
Product Owner: This is the person who represents (proxy) the stake holder in the agile team. He/she manages the work backlog, defines the priorities based on company vision. Must have visionary, executive and leadership skills. Can be called as product manager.
Scrum Master: This person ensure that team follows agile rules. This is the person who assemble & moderate meetings and optimize productivity by focusing team on the job.
Daily scrum is a daily 15 minute time boxed (restricted) meeting. It is made to keep developers in sync with each other’s task (yesterdays task, todays task, blockers if any). Generally it is made stand-up, without any disturbance of phones / laptops, etc.
Sprint review meeting is the meeting that team makes the demo of work “done” in the sprint to the stakeholders. Done represent completed tasks (designed, developed, tested, documented). After demo, they’ll receive sprint approval from the product owner and receive feedbacks from stakeholders. It might be skipped if there is nothing new.
Retrospective meeting is the meeting made at the end of the sprint to evaluate the sprint. There are two types of retrospectives: Sprint (at the end of sprint) Retrospective and Project Retrospective (at the end of sprint). In retro, basically four questions are answered:
– What went well
– What went not well
– What have we learned
– What can be improved
There are also more details with retrospective meetings, generally they are all optional:
– Creating rules for discussion
– Calling outside facilitators to help team members to contribute discussions
– Playing games
Agile Board: An agile board is the board which tasks are distributed by their status in one sprint. Mostly, an agile board consist following statuses:
– To do
– In Progress (Development, design)
– Review (Code review, PM review)
Here is an agile board, created in JIRA. It mainly indicates task name, label, importance, assignee, status and story point.
Kanban Board: A kanban board is also very similar to scrum one, it is just not sprint restricted, issues are created and resolved continously, as they are needed.
You can use these boards online (by using JIRA, Trello, etc.) or you can prefer creating your board physically (by using a board and sticky notes) like the one below.
Personally, I prefer online board to avoid such mess with sticky notes and markers.
To observe team productivity in agile development, two charts can be used:
Release Burndown Chart: This chart is used for seeing sprint performance. It can be shown as graph or line. Lower part indicates total tasks (in story points) to be done at the start of each corresponding sprint. Updated at the end of each sprint.
Iteration Burndown Chart: This chart is used for seeing day by day performance. It shows the inside of the release burndown. Therefore they should be checked together. Updated at the end of each day. The rest of the logic is the same.
In a nutshell, this article covers almost all the essentials of the agile development. In case I’m missing anything, please let me know via comments.