Posted on Leave a comment

The High-Performance Scrum Team Characteristics

People often ask me how we can describe a high-performance Scrum team. Indeed there is no unique definition for it. So I have decided to share a typical high-performance Scrum team characteristics.

The High-Performance Scrum Team Characteristics

A high-performance Scrum team has the following characteristics:

  1. Team members have learned to deliver value to customers continuously.
  2. They live with high-level transparency.
  3. Team members muscle memories have formed greatly to perform based on inspection and adaptation.
  4. Team members do not compromise with any problems and issues.
  5. They offer help to their colleagues continuously because each team member supposes that he or she is the extreme owner of each task.
  6. They always try to improve development and delivery speed and quality simultaneously.
  7. Not only every team member improves themselves continuously but they help their colleagues to get improved.
  8. The team lives deeply with Scrum Values.
  9. Instead of living by the rules, they make the rules.
  10. The team can release the Increment with just one press of a button through an automated continuous delivery pipeline.
  11. Team members trust each other blindly and respect is in the DNA of each team member.
  12. Mistakes are mandatory and when they are made, they are celebrated.
  13. They help their customers become more successful.
  14. They adhere completely to Definition of Done in all features.
  15. Almost every Sprint, the team reaches the Sprint Goal and sometimes they exceed expectations.
  16. They use feedbacks effectively as a reliable source of learning.
  17. Team has strong courage to make decisions and act. Also, they have the courage to change their decisions if they understand that their previous decisions were wrong.
  18. Team members are highly knowledgeable, autonomous and self-organized and use the continuous improvement in all aspects of their processes and environment.

I have used Mr. Ron Eringa and Mr. Gunther Verheyen blog posts as following to create this article. Special thanks to them.

Evolution of the Development Team

The Scrum Values

Posted on Leave a comment

How a new Scrum Master should join a team?

Making a good relationship with the Team and organization and observing the Team’s dynamics would be the first steps when a Scrum Master join a company.

Join a Scrum Master to a team

At first, she should try to know her teammates one by one. She should share with them her backgrounds, biography, thoughts, and life. Also listens to their backgrounds, biography, thoughts, and life to establish a trust foundation. Also, she should make a relationship with other Scrum Masters in the organization. Asks them about their policies for promoting and adopting Scrum over the organization.
Then she should try to know more about the product, its vision, roadmaps, its customers, stakeholders and technologies that are used in the development process. Furthermore, she should check the CI/CD implementation’s status. How the Team uses the DoD concept and how they live with Scrum Values. Also, she should attend to the all Scrum events as an eager observer to understand status-quo and know these ceremonies’ performance level.
On the other hand, she should work with the Product Owner to know how effective (s)he manages the Product Backlog. Also how (s)he collaborates with customers and stakeholders.
Totally, making a good relationship with the Team and organization and observing the Team’s dynamics would be the main focus. This blending prepares the Scrum Master to start serving the Team to live with the Scrum more effective.

Why Scrum could be a successful way to create high-quality software?

Posted on Leave a comment

Why Scrum could be a successful way to create high quality software?

Creating quality software through Scrum is a fundamental question that many people have. So in this post we explained how Scrum could help teams to create high quality softwares.

Creating quality software through Scrum

Scrum embraces uncertainties of software development

Software development is a highly complex activity, with many uncertainties that are intrinsically part of the work. Every software product or application is a new product, that was never built in the same way before, i.e. with the same requirements, using the same technology, by the same people. Customers don’t know exactly and in every possible detail what they want at the beginning. And, even if they think they do, they likely forced to change their mind; by changes of the market, competitors, or internal strategies.

Software development is a complex work

When mapped on the Cynefin model, software development clearly belongs to the complex category of the model. Complexity is the domain of unknown-unknowns. This requires an empirical approach and emergent practice to harness it. To be successful, it is essential that the applied process makes the unknown-unknowns visible and transparent. Also performing the works through an inspect and adapt approach, called ‘probe-sense-respond’ in the model. Therefore, we need an approach that fits with the explained characteristics to cope with the many uncertainties typical to software development.

Cynefin framework - Scrum solves complex problems

(picture from https://en.wikipedia.org/wiki/Cynefin_framework)

Scrum uses empirical process control

Scrum is an empirical process designed to address complex adaptive problems to harness complexity and uncertainties. It guides the Team in two parallel ways to improve continuously. In Scrum we produce the highest value features in a Sprint while improving the process we apply to create those product features. Scrum lays down boundaries that decrease the risk of developing the wrong features. The rules and the time-boxes of Scrum assure that we collect feedback quickly and timely.

Scrum uses feedback loops

(Picture by Gunther Verheyen – Ullizee-Inc)

ُSprints contain all work which is no more than 4 weeks, so we get feedback from stakeholders based on created increments sooner rather than later. Scrum offers effective inspect and adapt opportunities that allow determining the most appropriate next steps to take, taking into account the latest information on the market, product, customer, budget, etc.

Scrum leads to creating the right thing and thing right

Additionally, you ensure that you’ll create highest value features through Sprint Planning, Team inspect and adapt the Sprint plan through Daily Scrums, get first-hand feedback directly from stakeholders in the Sprint Review and finally improve the development process through Sprint Retrospective, continuously. The Definition of Done makes sure there is a clear and shared agreement of the quality criteria that the product should meet, possibly including passing code quality metrics and non-functional requirements like performance and stability. Consequently, all mentioned concepts and rules help the Team to ensure that they are moving in the right direction and are developing high value and quality software.

*Mr. Gunther Verheyen reviewed and evolved this post. Special thanks to him.