What is Agile? What is Scrum? Some Agile project management tools you should know.
There are many standardized software development methods, and one of them is the Scrum model software development (What is Scrum?). This article will explain the most basic concepts as well as the core values of Agile so you can master it.
What is Agile?
Agile is a flexible software development method, which is a specific approach for managing software projects. It includes an interactive and integrated workflow that can deliver the product to users as quickly as possible.
In software projects, especially projects that we will face a lot of difficulties in collecting fully and accurately the requirements of the product for good planning from the beginning. There are so many problems affecting software development that we did not expect. For example, problems may come from factors such as business, technology, people, launching time, etc.
Traditional methods of software development are increasingly exposed to disadvantages and a high rate of failed projects during the technology revolution. Detecting that problem, a number of individual and companies have come up with more modern and different software development methods to adapt to the new situation.
These methods of software development help somewhat solve some problems but generate other problems with collaboration, technology, tools, development directions, sharing, etc.
In 2001, the Agile Manifesto was agreed and released by a group of reputable people in software development:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
- Complete and measure your Agile Scrum group velocity
1. Individuals and interactions over processes and tools
Focusing on people and the reactions between team members. If the project has competent members, working together, it will bring success to the project.
If your project has a smooth working process, supported by the best tools but the members do not agree or look in the same direction, the project is easy to be failed. But it does not mean to deny the importance of processes and tools but in Agile it is placed after the human element.
Processes are the necessary procedures to develop a project such as design, programming, and QA / QC testing. Or to provide a certain function requires the consent of the QA / QC department. This process is defined by each company and requires employees to participate in the project.
The tool is software used in the project such as Job management software, source code management software, error management software, etc. There are many tools used to support an operating organization.
2. Working software over comprehensive documentation
n some software development processes, creation and updating of product documentation is required. The team of programmers cannot or disagree with the work without documentation of system requirements and design.
The testing team requires product documentation to write test and test cases. The QA team needs all documents to be written before the product is delivered to the customer, otherwise it is not eligible to deliver the product to the customer.
Writing documents is actually very time-consuming and is thought to be very boring. The idea here is why I have to focus so much on unnecessary work without spending that time to discuss more what to do. Then summarize and write only what members need to read.
3. Customer collaboration over contract negotiation:
We always hear the statement "the customer is always right". However, customers have many forms. The only way to work with them is the collaboration to understand what they want and need to be able to advise and adjust instead of relying only on the provisions of the contract.
Discuss with the customer the necessary of the function, thereby deciding whether or not to do it. Of course, to convince customers, it is essential to have specific research data.
4. Responding to change over following a plan
There is a mutual point that most projects have some changes when deployed. The change may be in requirements, tech stack, personnel, deadlines, etc., although the plan has been clearly defined from the beginning.
Agile does not encourage to change but encourages us to adapt the change.
One of the basic principles of agile is that "good software is a measure of progress". This principle helps the team dare to eliminate redundant work that does not directly bring value to the product.
In order to operate the "value-based" mechanism, agile teams often work directly and regularly with customers, collaborating directly with them to know which requirements have a higher priority, resulting in higher prices. treatment as soon as possible for the project. Thus, agile projects often help customers optimize the value of the project. Almost directly, agile significantly increases customer satisfaction.
What is Scrum?
Scrum is a basic "framework" for approaching complex tasks. Based on this framework, the team can apply different processes and techniques to its work. It is a member of the Agile.
What is the advantage of Scrum for present software development?
It could eliminate the complex stages and focuses only on the stages needed to meet the needs of customers. Three key elements forming an empirical process management model are transparency, inspection and adaptation.
3 core values of Scrum
To apply Scrum successfully, the information related to the process must be transparent. The information can be product vision, customer requirements, work progress, other barriers, etc.
From there all members in different roles have all the information needed to make decisions in order to improve work efficiency.
Regularly inspect the activities in Scrum and progress to the destination to detect unintended abnormalities. The inspection frequency should not be too thick to avoid affecting the work. Inspection, when performed by skilled people at key points of the task, will help to continually improve in Scrum.
Scrum has the advantage of being extremely flexible, thus providing high adaptability. Based on continuous and transparent information from the inspection and working process, Scrum can make positive changes, thereby bringing success to the project.
The benefits of Scrum
Transparency, inspection and adaptation are the 3 basic foundations of Scrum. Here are the reasons why we should use Scrum
- Improve software quality, easy to learn and use.
- Shorten software release time, allowing customers to use the product sooner.
- Improve team spirit, optimize efficiency and effort of the development team.
- Increase return on investment (ROI)
- Increase customer satisfaction
- Good project control, continuous improvement
- Minimize risks when building products
Basic concepts of Scrum.
1. Scrum Team
The scrum team is divided into 3 elements as below:
- Product Owner: The Product Owner's mission is to ensure the management of the backlog (Product backlog) of software product development. The product owner must continuously update information for team members so that they understand the requirements or the required features of the product even if they do not directly develop the feature.
- Development Team: developers who will be involved in developing each specific feature. These developers will probably have different skills and some will be good at certain skills. However, when using Scrum, all members of the Development Team are required to be able to work in place of each other and no one is solely responsible for developing one (or some) certain features.
- Scrum Master: will be responsible for planning to assign tasks, prioritizing to solve the backlog tasks in the Backlog, holding meetings with the Product Owner to monitor the situation and grasp the information.
Sprint is an iterative segment of the software development process, with a timeline usually of 1 month (from 1 to 4 weeks) by which the product will be released a new version. When a Sprint is over, the Scrum Master needs to change its status to Done.
At the beginning of a Sprint, the Scrum Master needs to set the Sprint's goal, and the goal cannot be changed until the Sprint is completed. However, the Product Owner still reserves the right to cancel a Sprint before its expiry date.
Although to do this, the Product Owner needs the consent of the Development Team as well as the Scrum Master. After a Sprint is over, the parties will rely on the sprint's results to plan the next Sprint.
3. Sprint Planning
This is the first step that needs to be taken before a Sprint begins.
The development team meets with the Product Owner to plan a sprint. What tasks need to be completed in this sprint and how can they be done?
Once we have agreed on the amount of work and time to complete, we can start the Sprint. While conducting a Sprint we will have meetings called Daily Sprint or Daily Meeting.
4. Daily Sprint
Daily Sprint meetings usually last about 15 minutes, during which all members report one by one:
- What they did yesterday
- What they need to do today
- The difficulties they had
Each of these meetings will help to plan how the plan outlined in the sprint is progressing and whether or not to update the proposed plan. Of course, remember that changing a plan does not include a change in a sprint goal.
For example, you can increase the time it takes to complete a function and thus makes the Sprint take longer than expected. However, Sprint's goal is to release a new version that needs to be preserved.
5. Sprint Review
A task performed by the development team and product owner at the end of each Sprint to review performance. From the sprint just completed and thereby make the necessary modifications and changes at the next Sprint.
6. Sprint Retrospective
With the help of the Scrum Master, the development team will summarize the recommendations and assessments from the Sprint Review above to make improvements to improve productivity and products.
7. Scrum Artifacts
Scrum sử dụng các công cụ rất đơn giản nhưng hiệu quả để trợ giúp công việc.
Scrum uses simple but effective tools to support the task.
This is a priority list of features or other outputs of the project, it can be known as a list of requirements of the project.
The Product Owner is responsible for setting the priority of each item (Product Backlog Item) in the Product Backlog based on the values defined by the Product Owner (usually the business value).
This is a sprint plan and the result of a sprint planning meeting.
With the Product Owner combination, the team will analyze the requirements from high to low priority to realize the items in the Product Backlog as a to-do list (TODO list).
This is a graph showing the project's trend based on how much time is left to complete the task
The Burndown Chart can be used to track the progress of the Sprint (called the Sprint Burndown Chart) or the entire project (Project Burndown Chart).
The burndown chart is not a standard element of Scrum under the new definition but is still widely used due to its usefulness.
Some Agile project management tools you should know.
This is one of the famous and most used project management applications. It has both free and premium accounts that give you a great opportunity to use the most common functions.
In conclusion, it has many great, small but useful features: write comments, insert attachments, notes, maturity dates, checklists, colour labels, integrate with other applications, etc. In addition, Trello is supported by all mobile platforms. Trello is a tool that can be used for both work and personal processes.
JIRA is a tool developed for bug tracking, problem tracking, and project management for software and mobile development processes. The JIRA control panel has many useful functions & features that can handle various issues easily
Some key features and problems: type of problem, workflow, screen, field, problem attribute. Some features you won't find elsewhere. The control panel on JIRA can be customized to fit your business process.
Asana is a task management tool that allows teams to share, plan, organize and track the progress of tasks that each member is performing. It's simple, easy to use and free for up to 30 users in a group.
As with all previous Agile project management software platforms, the primary goal is to enable project and task management. It is remarkable that you do not need an email to use Asana. Each team can create workplaces that will contain projects and project tasks: each task can have notes, comments, attachments, and tags.
This tool can be used for small processes and for large processes without any restrictions in industries or parts.
Resource for you to learn about Agile and Scrum:
- Agile Jobs: There are many at TopDev with very attractive salaries.
- Scrum.org: full of basic knowledge, advanced Scrum and Scrum certificates.
- AgileManifesto.org: Agile basics, Agile manifesto for beginners.
- Agile Vietnam Group and Agile forum Vietnam: the largest forum about Agile in Vietnam, sharing information, knowledge and facts about Agile.
Recently, Hachinet is applying Agile model in working process. The customers would be satisfied by rapid, continuous delivery of useful software. Hachinet is also a place to experience with the following characteristics:
Microsoft .NET Website Development (asp, vb.net, etc)
Front end Website development
Java System / Application Development
Mobile Application Development (IOS / Android).
Cobol system development.
We also provide:
Flexible offshore development
Dispatching BrSE to Japan
If you are interested in our service, do not hesitate to drop a line at firstname.lastname@example.org