SCRUM - A better way to work together and get work done

What’s Scrum?

Scrum is a framework for project management that emphasizes teamwork, accountability and iterative progress toward a well-defined goal. The framework begins with a simple premise: Start with what can be seen or known. After that, track the progress and tweak, as necessary.

What does Scrum consist of?

A SPRINT is a period of time during which simultaneous work of project members takes place without getting in each other’s way.

Scrum describes the distribution of tasks from planning to delivery of the finished product.

The work is divided into sections such as sprint planning, daily scrum meetings, sprint review and sprint retrospective.

The most important thing about the scrum methodology is transparency. Feedback is the key to achieving the desired result.

Scrum - elements of the process

Sprint Planning

At this stage, priorities are identified and work is planned for a specific period of time (usually 2 weeks).

Daily Scrum

A short, 15-minute meeting held daily. In it, scrum team members answer three questions:

  • What did you do yesterday to achieve the sprint goal?
  • What will you do today to achieve the sprint goal?
  • What obstacles have you encountered to achieve the goal?

Sprint Review

The team presents the results of their work and, based on feedback, makes decisions on next steps.

Sprint Retrospective

At this meeting, the people involved in the project discuss the progress of the work and consider what can be improved in the ongoing product realization process.

GITFLOW - Okay we have git, but we also need flow!

The first thing I’ve read is that Git Flow coperates well with Scrum and not so good with CI/CD from yesterdays post.

How does Git Flow work?

Branches

The first thing you need to do to implement the Git Flow model is to properly organize the branches in your repository. In this case, we will operate on five types of branches:

- master - the production version of the application. To this branch we will merge only those changes that have already been released to production and critical hotfixes.

- hotfix - the only branch based on master. It is the one used to quickly fix critical bugs occurring in production.

- release - on this branch the release of the next version of the application is prepared. It is the version of the application from this branch that goes to production.

- develop - this branch is the “unofficial” master while working on the release. From this branch developers create their working branches and merge (rebase) their work to it. When the work on all features in a release is ready, this branch is merged to the “release” branch.

- working branches (features) - on these branches we work on a daily basis and create new functionalities.

Flow

It is a work order that involves the proper distribution of workers’ forces among the above branches.

This approach ensures the safety of the application and eliminates many errors during production.

7 Useful Tips For A Better Commit Message

  • Separate subject from body with a blank line
  • Limit the subject line to 50 characters
  • Capitalize the subject line
  • Do not end the subject line with a period
  • Use the imperative mood in the subject line
  • Wrap the body at 72 characters
  • Use the body to explain what and why vs. how

Encyclopedia of commit messages

To sum up

It was created at a time when this form of software development and release was almost standard. Thus, it made life very easy for programmers.

Nowadays, web applications are playing an increasingly important role. In their case, the use of continuous delivery (continuous delivery) of new small functionalities and fixes is the order of the day.

Such applications are usually not restored to previous versions, and bugs that arise are fixed on an ongoing basis.

In such a situation, the use of Git Flow will be very inefficient. An easier and faster approach is needed. That approach is GitHub Flow - more about that soon.