NEWS

WHAT IS AGILE ? WHAT IS AGILE SCRUM ? FIND OUT ALL IN THIS ARTICLE

What is Agile ? What is Scrum? Why are these two words often mentioned together? This article will help startups get an overview of these two terms, as well as provide valuable information for businesses wishing to develop software. We’ll go into the details together.

What is Agile ?

Agile is a flexible software development method, with the goal of getting products into the hands of users as quickly as possible. 

A lot of people define Agile as a methodology. Rather, Agile is like a methodology, a philosophy based on the principles of iterative and incremental segmentation. We will talk about this later! 

Currently, the Agile philosophy is no longer encapsulated in software development, but is also widely applied and contributes to the change in the way of working, managing, producing,… becoming a method. The most popular project manager today.

Agile Manifesto ( Agile Manifesto)

The Manifesto for Agile Software Development (also known as the Agile Manifesto for short ) sets forth principles that theorists as well as practitioners must adhere to. Those 4 principles are:

  •     PERSONALITY AND INTERACTIVE BETTER THAN PROCESS AND TOOLS: Focus on the human element, build interaction and support among team members. The combination of good people will bring success to the project.
  •     SOFTWARE RULES BETTER FULL DOCUMENTATION: Focus your time on developing software products that meet customer needs well.
  •     COOPERATION WITH CUSTOMERS more than CONTRACT NEGOTIATION: Understand the needs of customers to advise and provide suitable products instead of just based on the terms in the contract.
  •     FEEDBACK ON CHANGE rather than stick to the plan: Adapt to change instead of just following the original plan. The changes can be technology, personnel, requirements…

The 12 principles behind the Agile manifesto

Agile Manifesto helps developers draw principles to practice and apply Agile methods in project development practice. Those 12 principles will be listed shortly:

  1. Best meet the needs of customers through high product quality and early delivery time.
  2. Support changing customer requirements, even late in development. Agile processes are constantly changing to help customers gain a competitive advantage.
  3. Deliver working software to customers as often as possible.
  4. Entrepreneur and developer must work together throughout the project.
  5. Build projects around motivated individuals. Provide the necessary support, creating the environment and trust for them to get the job done.
  6. Face-to-face communication is the most effective method of communicating information.
  7. Software that runs well is a key measure of progress.
  8. Continuous and sustainable development. Sponsors, traders and developers need to maintain a constant pace.
  9. Improve flexibility by focusing on engineering and design.
  10. Simplicity is at the heart of the art of maximizing unfinished business.
  11. Self-organizing teams always produce the best architectures, best requirements, and best designs.
  12. Constantly looking for ways to become more effective and adaptive to change.

Features of Agile

  •     Iterative: The project will be done in iterative segments (Iteration or Sprint), often with a short time frame (1-4 weeks). In each segment, the development team does all the necessary work such as planning, requirements analysis, design, implementation, testing to produce small parts of the product.
  •     Incremental & Evolutionary: At the end of the shards, the team produces small pieces of the final product, which are usually complete, workable, well-tested, and usable. . Over time, one segment after another, these executables will accumulate, growing until all customer requirements are satisfied.
  •     Adaptive: Because segments last for a short period of time and planning is constantly adjusted, changes in the development process (change requests, job changes, etc.) technology, a change in goal orientation, etc.) can all be accommodated in an appropriate manner.
  •     Self-organizing and cross-functional teams: These group structures assign themselves to work without relying on hard descriptions of titles or working on a clear hierarchy within the organization. Self-organizing teams have acquired the necessary skills to be empowered to make decisions, self-manage, and organize their own work to achieve the highest efficiency.
  •     Empirical Process Control: Agile teams make decisions based on real data rather than theoretical calculations or presuppositions. Agile shortens the feedback lifecycle for easy adaptation and increases the flexibility to control the process, and improve employee productivity.
  •     Face-to-face communication: Agile is not opposed to documentation, but values face-to-face communication instead of paper. Agile encourages the development team to talk directly to better understand what the customer really needs. In intra-team communication, Agile encourages direct communication and agreement on the design of the system and joint implementation into the required functions.
  •     Value-based development: One of the fundamental principles of agile is that “a well-run product is a measure of progress”. Agile teams often collaborate directly and often with customers to know which requirements have higher priority, bringing more value as soon as possible to the project.

Agile Methods

Let’s take a look at some popular Agile methods:

  •     Scrum: according to The Scrum Guide, defined by co-founders Ken Schwaber and Jeff Sutherland, is a framework for sustainable development of complex products. It can be said that Scrum is one of the most important Agile methods that use iterative and growth mechanisms to optimize efficiency as well as control risk.
  •     Kanban: is an Agile methodology based on the Toyota Production Method with four principles: Work visualization, work-in-progress, focus on work flow, continuous improvement. The Kanban model is suitable for supporting production in the process.
  •     Scrumban: is a method introduced by Corey Ladas in 2009 in the book titled “Scrumban – Essays on Kanban Systems for Lean Software Development”. Scrumban combines the advantages of Scrum and Kanban to enable the team to continuously improve processes and workflow.
  •     Lean Software Development (LSD): or Lean Software Development is a form of applying Lean Thinking (Lean Thinking) and the typical principles of Lean (derived from the automotive industry – Lean Manufacturing) to software development field. The term Lean Software Development is derived from a book of the same name by Mary Poppendieck and Tom Poppendieck. In it, the seven principles that interpret Lean thinking include: Eliminate waste, Amplify learning, Decide as late as possible, Deliver as quickly as possible, Empower the team, Create natural integrity Body, Seeing the big picture is the soul of the lean software development process.
  •     XP (Extreme Programming) – Or extreme programming is a software development method of the Agile family invented by Ken Beck – an American software engineer. XP aims to improve software quality and responsiveness to changing user requirements. XP advocates rolling out regular releases through short development cycles. Some of XP’s practices are: Pair programming, Refactoring, Unit Testing, Continuous Integration, Small releases ( Small Release).

Benefits of adopting Agile

Agile was created for the software development industry to help streamline and improve the production process. As an alternative to the traditional Waterfall approach, Agile provides a management approach that helps teams work more efficiently, deliver better products and faster through short sessions and interactive sessions. works/ sprints. Some advantages of applying Agile can be mentioned as:

  •     Easy changes: Because the project is divided into small, separate and independent parts, changes at any stage of the project are made very easily.
  •     No need to know all the information from the beginning: Suitable for projects that do not have an end goal, this is also not necessary in the early stages.
  •     Faster delivery: Breaking up projects allows the development team to test piece by piece, identify and fix bugs faster, deliver work consistently, and get it done faster.
  •     Pay attention to customer and user feedback: Both customers and end users can provide ideas and feedback, which has a positive effect on the final product.
  •     Continuous improvement: Agile encourages team members to work and drives customer feedback, which helps phases to be continuously tested and improved again if needed.

Some Disadvantages of Agile

  •     Difficult project planning: Determining the exact time to deliver the final product is difficult, because the project is broken down into many parts, and each part has a separate delivery deadline.
  •     Detailed instruction and training is required: Agile methods are much more complex than traditional methods. Developers or entrepreneurs will need to go through training and guidance to be able to understand clearly, especially at first.
  •     Few documentation: Because Agile is so fluid, documentation is often overlooked, as expectations and deliverables are not clearly defined from the outset. While documents are not the most important factor, they are still essential.
  •     Collaboration is required: This requires a commitment of time from both parties for the duration of the project. There must be active user involvement and continuous collaboration for it to work.
  •     High Cost: Agile implementation costs are usually a bit higher than other development methods.

What is Scrum?

Scrum as mentioned above is a “framework” to approach complex work. Based on this framework, the working group can apply different processes, techniques, etc. to complete the work. Scrum is a member of the “ Agile family ”.

The three core points of scrum

1.    transparent

To successfully apply Scrum, the information related to the process must be transparent and transparent. The information can be product goals, customer requirements, work progress, etc. From there all members in different roles have all the necessary information to make decisions in improving. job performance.

2.    Inspect

Scrum activities and progress should be regularly inspected to identify anomalies. The inspection frequency should not be too thick so as not to affect the work. Inspections, when performed by skilled people at the critical points of the work, help with continuous improvement in Scrum.

3.    Adapt

Scrum has the advantage of being very flexible and easy to adapt. Relying on continuous and transparent information from the inspection and work process, Scrum can bring about positive changes that lead to project success.

Benefits of Scrum in Software Development

We will come to the benefits of applying Scrum in software development:

  •     Improve product quality, easy to learn and easy to use.
  •     Fast delivery, allowing customers to use the product sooner.
  •     Enhance team spirit, optimize development team’s efficiency and efforts.
  •     Increase return on investment (ROI).
  •     Increase customer satisfaction.
  •     Good project management, continuous improvement.
  •     Minimize risk when building products.

Scrum roles and functions

In Scrum, the team involved in software development is divided into three roles with clear responsibilities to ensure the optimization of specific tasks as follows:

  •     Product Owner: The person responsible for the success of the project, who defines the requirements and ultimately evaluates the output of the software developers.
  •     Scrum Master: Someone who has a deep understanding of Scrum and ensures the team can work effectively with Scrum.
  •     Development Team: A self-managed cross-functional team that transforms the requirements organized in the Product Backlog into system functionality.

Scrum tools (artifacts)

Product backlog

This is a prioritized list of the project’s features or other outputs. Can be understood as the project’s requirements list. 

The Product Owner is responsible for prioritizing each Product Backlog Item in the Product Backlog based on values defined by the Product Owner (usually business value).

Sprint backlog

This is the blueprint for a Sprint; as a result of the Sprint Planning meeting. 

In combination with the Product Owner, the team will analyze the requirements from high to low priority to realize the items in the Product Backlog in the form of a TODO list.

Burndown Chart

This is a graph that shows the trend of the project based on the amount of time remaining to complete the work. 

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 by the new definition, but is still widely used due to its usefulness.

Scrum’s operating process

  1. The Product Owner creates a Product Backlog containing the project’s requirements with the items listed in order of priority.
  2. The production team will implement the gradual realization of the Product Owner’s requirements with repeated iterations of sprints from 1 to 4 working weeks (called Sprint). Inputs are Product Backlog items, outputs are Potentially Shippable Product Increment.
  3. Before the entire team sprints in the Sprint, the production team meets with the Product Owner to plan each Sprint. The result of the planning session (in the Scrum way) is a Sprint Backlog containing the to-dos during a Sprint.
  4. During development, the team will have to update the Sprint Backlog and conduct daily Scrum meetings to share progress and problems in working together. Teams are empowered to self-manage and organize their work to get it done in the Sprint.
  5. At the end of the Sprint, the team creates fully functional software packages that are shippable to the customer. The Sprint Review at the end of the Sprint helps the customer see what the team was able to deliver, what remains to be done, or what remains to be changed or improved.
  6. After completing the Sprint review, the Scrum Master and the team hold a Sprint Retrospective meeting to find improvements before the next Sprint starts, which will help the team continuously learn and grow. through each Sprint.
  7. Sprints will be repeated until the items in the Product Backlog are completed or when the Product Owner decides that the project can be stopped based on the facts.

 

Using the “more valuable than first” strategy, the items that bring more value to the project owner are always completed first. Therefore, Scrum always brings the highest value to the project’s investors. Because the process is always improving, the Scrum team is often very productive. These are two great benefits that Scrum brings to the organization. 

Hopefully the above information will be helpful for startups and enterprises. 

If you are looking for a custom software development partner, provide you with the right solution with fast, affordable and reliable project execution. Tech Town is happy to help you. 

Contact us to discuss your ideas.

Author

admin

Leave a comment

Your email address will not be published.