Software development has been a complex and challenging job. And historically it’s been observed that the processes used during development often manifest issues such as missed deadlines, cost overruns, and mismatches between customer expectations and the delivered product.
So to encourage the better ways of working and developing quality software products, 17 individuals came together and brainstormed the Agile Manifesto. This manifesto is based on 12 principles.
Hence a team is said to be agile when it adopts these principles. It's important to note that it is not about doing the work “in an agile way.” It's about being agile in software development.
Though this comparison is not the full scope of our discussion, it is essential to understand the primary difference between these two processes.
Defined processes are helpful when:
There are fixed, predefined steps to take to achieve the output.
The same output is expected every time, so these steps can regularly be followed.
Example: In a car manufacturing plant assembly line, sheet metal is cut in defined dimensions to prepare the car body.
Empirical processes are something different. The name refers to collecting information by observing, experiencing, and experimenting. Empirical processes are helpful when:
The output can’t be well defined at the start, requiring a series of experiments.
The process steps are adjusted based on feedback from those experiments.
Example: Developing a software product with a search functionality that can be developed and enhanced in incremental way, such as developing a search based first on a word, then based on phrases, based on sentences, based on an image, based on voice input, and so on.
Scrum implements methods of empirical processes, where value is delivered incrementally and iteratively. And as we can see from the search example above, it’s an art to build an iterative product in an incremental way.
Scrum is not a methodology in and of itself; it's a framework. And this framework defines some rules and roles. By following the framework guidelines and adhering to Scrum values, people learn what works best for them.
Scrum is built upon five core values: commitment, focus, openness, respect, and courage.
So let’s discuss these Scrum values and see what happens if we lack any of them. It’s also important to discuss how to build these values in a team.
1. Focus: What if we lack focus?
Missing/compromising on focus will result in ambiguity/lack of clarity in our goal.
Lack of clarity means the team will miss the sprint goal, and that means the sprint fails. Value is not delivered at the end of the sprint.
Ways to achieve focus:
Concentrate on only a few things at a time.
Know where we stand at any given point in the sprint. Meaning, keep an eye on the progress and assess the situation at intervals to make sure everything is on track to achieve the sprint goal.
Ask yourself, “Does the work I am doing contribute to a sprint goal?”
2. Courage: What if we lack courage?
Missing courage will result in a less empowered team.
When the team is not empowered, they lack the quality of being self-organized. A self-organizing team is the backbone of the Scrum framework.
Ways to achieve courage:
Build a culture that accepts legitimate failure. And instead of finding someone to blame for failure, encouraging team members to share what they've learned.
Respect and value everyone’s opinion. And if opinions conflict, learn to handle those conflicts constructively. For example, when it looks as though someone’s comment or opinion is not appropriate, ask him or her, “Is this in the interest of the team?”
3. Openness: What if we lack openness?
A team that lacks openness will also show a lack of transparency about work being done.
In the absence of such transparency, team collaboration will suffer.
Ways to achieve openness:
Develop trust among team members. They will start opening up and talking about things when they feel they can trust others and are trusted.
Team-building activities can help greatly.
4. Commitment: What if we lack commitment?
The team is answerable for delivering value at the end of the sprint, and a compromised sense of commitment means the team won't accept accountability for the delivery.
Not meeting the commitment will result in a failed sprint.
Ways to achieve commitment:
Include the team in decision making.
Draw on the team's analysis, development, and delivery knowledge and let them judge how much work they can deliver in the sprint.
Help the team be aware of the bigger picture, the product road map, the release schedule, etc.
5. Respect: What if we lack respect?
Everything listed above depends on this team quality.
A team lacking respect is a demotivated team, which hampers overall delivery.
Ways to achieve respect:
It is wiser to ask how to gain respect than how to achieve it.
Give respect first, and then you will find yourself in a position to accept it.
In the end, it’s all about having great teamwork if we want to achieve the desired goal. As Michael Jordan put it, "Talent wins games, but teamwork and intelligence win championships."
Get the latest resources from Scrum Alliance delivered straight to your inbox
Subscribe