0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

I’ve read the book ‘Clean Agile’ and I’m going to summarize it.

Posted at

image.png

Hey! What’s up? I’m Keita. I work as a beginner C# programmer.

If you’re an engineer, you’ve probably heard the word “Agile” a lot. I often hear it too. However, when asked to explain it, many people may be at a loss. I am one of them.

So this time, I would like to share what I have learned from reading Agile books. The book I read is below…

image.png

What's Agile?

Agile is a software development methodology that aims to be fast and flexible. The basic tenets of Agile are based on the following four values.

1. Individuals and dialogue

Empaasizes communication among team members rather than processes and tools.

2. Software that works

We value software that actually works over comprehensive documentation.

3. Collaborating with customers

We value collaboration with customers over contract negotiation.

4. Adaptability to change

We value flexibility to change over following a plan.

It also introduces the concept of the "Iron Cross". This refers to the restriction that only three of the four elements of "quality","cost","speed" and "completion"can be cosen in project management.

Specifically,the following options are available below.

・A project with high quality, low cost, and high velocity is not completed.
・Projects that are high quality, low cost, and complete are slow.
・Projects that are high quality, fast, and complete are expensive.
・Projects that cost less, are completed faster, and are completed with lower quality.

The idea is that one of these must be given up. Agile development requires flexibility while understanding this constraint.

Benefits of Agile

There are many benefits to adopting Agile.

1. Rapid feedback

Agile development allows for rapid feedback from users and stakeholders through short iterations. This alows for early revisions to the direction of the project.

2. Flecibility

Because Agile is flexible to change, it can respond quickly to changing requirements and new demands. This increases project success.

3. High quality software

Agile development maintains code quality through continuous testing and refactoring. This results in high quality software with fewer bugs.

4. Team engagement

Agile encourages active engagement and collaboration among team members, which increases team motivation and productivity.

5. Transparency and visibility

Agile development increases project transparency by making progress and issues visible at all times. This facilitates communication with stakeholders.

Business practices

The Business Practices of Agile Development focus on the business aspects of project planning, progress management, and release management.

1. Plans and stories

In Agile development, project plans are designed to be flexible and responsive to change.

Stories and points

User stories are created and points are assigned to each to estimate the work to be done.

Story estimation

The entire team estimates stories and prioritizes work.

2. Iteration management

Agile development involves working in short iterations (typically 2-4 weeks).

Demonstration

At the end of each iteration, the team demonstrates the completed functionality.

Velocity

The team's work rate is measured and used to help plan the next iteration.

Small releases

Frequent small releases to quickly incorporate customer feedback.

Velocity

The team's work rate is measured and used to help plan the next iteration.

3. Source code management

Source code management is also important in agile development.

Version control system

Use a version control system such as Git or Subversion to keep track of code changes.

Acceptance testing

Perform testing to ensure that the code works correctly.

4. Whole-Team Communication

Communication throughout the team is important in Agile development.

Full participation

All team members are involved in the project and work together.

Collaboration

Team members work together to solve problems efficiently.

Team practices

Team practices in agile development are practices that define the relationships among team members and how they interact with the product.

1.Metaphors

Metaphors are tools that help teams have a common understanding. They provide a concise representation of the overall project and key concepts so that everyone on the team is working in the same direction.

2.Sustainable pace

In agile development, it is important to work at a sustainable pace. Excessive overtime and unreasonable schedules are avoided, and the goal is to maintain high productivity over the long term.

3.Collective ownership

Collective ownership means that everyone on the team is responsible for the code and the project as a whole. This allows the entire team to solve problems and maintain quality without relying on specific team members.

4.Continuous integration

Continuous Integration is the process of integrating and testing code changes frequently. This allows for early detection and correction of problems. It also ensures that the entire team's code base is always up-to-date.

5.Stand-Up meetings

Stand-up meetings are meetings where the entire team gathers briefly each day to share progress and problems. This facilitates communication among the entire team and allows for quick responses.

Technical practices

The Technical Practices chapter details the technical practices in agile development.

1.Test Driven Development (TDD)

TDD is a methodology in which tests are created before code is written and code is developed to pass those tests. This improves code quality and prevents bugs from occurring.

2.Refactoring

Refactoring is a technique for improving existing code to make it more maintainable and readable. This maintains code quality and facilitates future changes.

3.Simple design

Simple Design is a methodology that aims for a simple design with the minimum necessary functionality. This avoids complexity and makes code easier to understand and maintain.

4.Pair programming

Pair programming is a technique in which two programmers share a computer and write code together. This improves code quality and promotes knowledge sharing.

5.Continuous integration

Continuous Integration is the process of integrating and testing code changes frequently. This allows for early detection and correction of problems. It also ensures that the entire team's code base is always up-to-date.

summary

I have summarized Agile as described above.
At the beginner level, there are still many points that don't make sense to me, but I think just keeping it in mind will make the difference between me and those who don't know about it.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?