Agile Scrum Practice in ZebraX

ZebraX Engineering
ZebraX
Published in
5 min readDec 10, 2020

--

If you work in the software engineering field, then you are probably familiar with Agile already. In short, Agile is an approach of software development that follows the Agile manifesto. Its aim is to help teams deliver value to the customers faster and with fewer headaches.

But how do we implement Agile development to help delivering a better product? In this article, we will explain how Agile Scrum is implemented in ZebraX as an example, which will hopefully answer that question.

In ZebraX, we use the Agile Scrum framework, which is an approach to achieve certain goal within a time-boxed iteration, called the sprint — the scrum term for iteration. The scrum approach includes breaking down the entire requirement to product backlog — a task list to be done in a product that is sorted by priority. After that, sprints can be started to be planned based on the product backlog.

Agile quote in our office reminds us to be the best version of ourselves every day

The scrum team usually consists of development team, scrum master who make sure that the team is able to deliver the product goals by following scrum principle without any distractions, and product owner who also acts as product manager and stakeholder’s representation. The development team is responsible for the development and the delivery of the product. In ZebraX, the development team usually consists of frontend engineers, backend engineers, data engineers, and UI/UX. The team is actively communicating with each other to make sure everyone is in sync.

Some of the key ideas of scrum are iterations, collaborations, adaptive to change, and iterations followed by incremental product delivery. To achieve that, there are several scrum events:

  • Backlog grooming / refinement
    In this meeting, the backlog items will be categorized and sorted by priority. This is also where the product owner usually shares the context and acceptance criteria of the items. The team will then discuss and raise a challenge if any. This is to make sure that the backlog items are clear, executable, and ready to be included in a sprint during sprint planning.
  • Sprint planning
    Before starting a sprint, we usually do a sprint planning to discuss about the sprint goal and scope of work of that sprint. The team will take the top items from the product backlog and estimate the effort. Each item can also be broken down into several smaller sub-tasks if necessary. The output of sprint planning is a sprint backlog, a task list for a certain sprint.
  • Sprint
    Sprint is an iteration every two weeks where the development team will do the development to deliver the sprint goal.
    In scrum, we value mutual respect among team members to work with good intent and be able to deliver quality work product. To ensure that, in engineering team, for example, we implement several approaches to enhance the process:
    – Encourage collaboration between engineers by reviewing pull request one another
    – Implement pipeline for unit test and static code review analysis automatically upon each opened and updated pull request
    – Implement continuous delivery pipeline on every change to our development branch in Git repository. This is to enable us releasing the changes immediately to the development server, so that it is ready to be reviewed and validated by product owner and QA team.
    Generally, after several related user stories are completed, the product owner will plan and decide when to release the changes to the UAT server. Thus, it will be available for the customers to test the feature incrementally, without the need to wait for the whole requirements to be completed.
Agile board in our office: this is how we are living the Agile scrum practice in ZebraX
  • Daily Standup
    During sprint, the scrum team will participate in a daily scrum meeting (also called daily standup), that happens at the same time on every working day. Here, the development team will give a quick update of the current task that they are working on. They can also raise problems or blockers on the task that may affect the delivery of the sprint goal.
  • Sprint Review
    This is usually held at the end of each sprint, along with sprint retrospective. The main purpose of this meeting is to review what has been accomplished and what is not completed yet during the sprint. If there is any unfinished task, it will usually be carried over to the next sprint.
  • Sprint retrospective
    In sprint retrospective, the team will discuss about what went well, what went wrong, and what can be improved during the sprint. This will become lesson learned for the whole team members as we are striving for continuous improvement. Therefore, we can plan necessary adaptations for the future sprints.

As we can see from the process above, Agile Scrum offers flexibility to the team. By having a time-boxed sprint, the team can deliver a small slice of product incrementally to be reviewed by the customers. If there is any change or feedback from the customers, it can be discussed during backlog refinement. If needed, it can be easily adapted by reorganizing priorities, so it can be taken in the upcoming sprint.

Though there are still a lot of homework to do to improve our process, however, by implementing Agile Scrum, we are able to:

  • Provide environment and support for the scrum team member to interact and be in sync by doing series of scrum events
  • Allow customer collaboration by delivering a small part of product incrementally for the customer to review
  • Allow the team to adapt to requirement change in any phase of development without too much hassle

References:

https://agilemanifesto.org/
https://www.planview.com/resources/guide/what-is-scrum/scrum-best-practices-teams/
https://dzone.com/articles/types-of-scrum-meetings-and-scrum-best-practices
https://skillcrush.com/blog/what-is-scrum-project-management/
https://www.scrumalliance.org/about-scrum/overview

--

--