First Time Doing a Project?
Is it your first time handling a project? And you don’t know how to start or what to do? How to plan your work, how do you split works with your team partner, or what kind of requirements you need to implement for the customer or user? How can you manage all of them? All you need is Agile Software Development.
Agile Software Development
So, what is agile? based on the Oxford dictionary, agile means “able to think quickly and in an intelligent way” or “able to move quickly and easily”. And what is agile in software development or project management? Agile uses iterative development gradually to help the team to deliver the customer needs faster, nevertheless, the team splits the work into small pieces, but easy to implement.
How to accomplish agility? There are 12 Principles of Agile Manifesto to help the team implements agility:
Agile development produces so many advantages, such as:
- easy to collect and accept changes
- short iterative planning
- strong team communication
- more customer interaction
There are frameworks that help to implement the agility, one of them is Scrum.
Scrum
what is Scrum? Scrum is a method to implement agile or an agile framework. It is an iterative software development model used to manage complex software and product development. Scrum boosts the team to learn what mistakes they did on every cycle to improve, self-developing from their experiences, and how to solve a problem with their teammates. In Scrum, each of the team members has their own roles:
Product Owner
Product owner acts as a mediator or a bridge between the development team and the customers. They arrange the product backlog. They act as a midpoint between the customers and the developers. They have to make sure that the developers understand the product backlog. They have to provide clear guidance of which features that the developer team has to execute next.
Scrum Master
Scrum Master has to know deeply what kind of the developers’ works that are being done. They also help the developer team to keep them complete their tasks on track. They also arrange meetings, tries to help the developer team if they get in trouble. They also act as a facilitator on every scrum process.
Developer Team
Developer Team usually consists of five to seven developers. They are the ones who develop the application or the project. In Scrum, they are not divided as a tester, designer, etc. Each of them has the same duty. They work together, they help each other out. They have to accept feedback from the Product Owner, revise the work, learn from it, and try to improve for the next iteration. They manage to assign the works that have to be done for each member.
Implementing Scrum
Now I want to share my experience of implementing scrum in my project. There are steps to do scrum. First of all, the cycle in scrum is called a sprint. Sprint is a cyle time period of the team to complete their tasks. Usually, the sprint time period spends two weeks. We started from the first step, that is Sprint Planning. But before the sprint planning, we have to make sure the program can run in each of the developers’ local. In sprint planning, the product owner described to us, the developer team about the product backlog that is already been made or he described what are the user stories, requirements or features that we, the developers have to execute for the project. After that, the developer team started to determine what the sprint goal is. Then, the developer team chose the user stories or sprint backlog that corresponds to the sprint goal, then split the user stories into smaller pieces or we can say tasks. After that, we gave the estimation point for each task. We use Fibonacci point to implement it. The estimation point is based on how difficult to implement each of the tasks is. The bigger the number of the estimation point, the more difficult the task to implement. After we determined the estimation point, we started to assign the tasks to each of the members. We use gitlab.cs.ui.ac.id platform to implement them.
After we’d done our Sprint Planning, we started to do the Sprint to implement our works. The sprint phase includes learning, testing, implementing and refactoring our works or tasks. While we were doing our work, we started to do Daily Scrum Meeting or we also can say Daily Stand Up Meeting. The meeting only spent at least 15 minutes. On the meeting, each member of the team shared what are their ongoing works, they also shared what are their goals for the current sprint, and also the issues that the members are currently facing. The member also could update the tasks if needed. During the meeting, the scrum master acted as a facilitator. The meeting was held twice a week.
After we have done implementing our work, we move to the next phase, we start to do the Sprint Review and Sprint Retrospective. My team has not done the Sprint Review because we are still in the Sprint (implementation) phase. In the Sprint Review, each of the developer team members presents the results of their works from the sprint phase. Then the Product Owner will decide whether your work is approved or not. If not, the Product Owner will give feedbacks. While in Sprint Retrospective, the team will share what things are going well and wrong during spring and share how to improve them for the next Sprint.
From what I have experienced so far, Scrum really helps me a lot to manage our project, especially about time management. Also, it helps to improve our communication as a team. It also makes our team cooperate better. That is all for me.
Thank you for reading my article! good luck:)
source:
IT Project 2020 Guideline