Agile software development is based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
There are many important elements that contribute to successful Product Delivery, however here are four of the key driving elements that drive and nurture the incremental evolution of any product. There could be other contributing factors as well.
KEY DRIVING ELEMENTS:
- Build the product with right functionality- RIGHT PRDOUCT
- Deliver the product with right quality – PRODUCT RIGHT
- Build the right collaborative teams for delivering the right product. –RIGHT TEAM
- Light weight process to drive the execution. – RIGHT PROCESS
Please note that this classification of key driving elements is not part of the Scrum Guide. However, these four driving elements are proposed here to help visualize Agile and Scrum with a different perspective.
- RIGHT PRODUCT: This element emphasis on building the right product increment, i.e the right feature set of functionality at the right time. This helps the team invest time in building the right set of features that would be usable to the end customers and not building based on certain assumptions.
- PRODUCT RIGHT: This attribute talks about the quality of delivery. Quality is something that has to be embedded in the product development process right from the beginning and not towards the end.
- RIGHT PROCESS. Choosing an effective process framework is critical to the lifecycle of a project. A good framework brings with it practices that ease the product development and delivery process.
- RIGHT TEAM: This attribute talks about the importance of having highly collaborative and self-organized teams that complement each other’s expertise. Each team member has a special skill that he/she brings to the table and the likelihood of success is best achieved when team members harness each other’s core competencies.
In 2001 February, seventeen software professionals gathered at Snowbird ski resort in Utah, and found that they had a lot in common and agreed on many important aspects of software development. They captured the commonality in their thoughts and named this new methodology as “Agile”. These thought leaders, coming from different programming methodologies, didn’t agree about much, but they found consensus around four main values, which together formed the Agile Manifesto.
Agile Principles: In addition to the four Agile values stated in the Manifesto, the authors of Agile Manifesto created twelve principles that guide our efforts to manifest the Agile Values. Here we will try to understand how each of the Agile principles supports the four driving elements of a successful product delivery as discussed earlier. Each principle is linked to the four key elements it supports. In few instances you will see that one principle can support more than one key elements.
|Driving Principle||Driven Element|
|Our highest priority is to satisfy the customer through early and continuous delivery of valuable software||Right Product|
|Welcome changing requirements, even late in development. Agile processes harness change for the customer competitive advantage||Right process
|Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely.||Right team
|Simplicity – the art of maximising the amount of work not done is essential||Right product
|The best architecture, requirements and designs emerge from self-organizing teams||Produce right
|At regular intervals the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly||Right team
|Deliver working software frequently from a couple of weeks to a couple of months with a preference to shorter time scale||Right product|
|Business people and developers must work daily throughout the project||Right team|
|Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done||Right team|
|The most efficient and effective way of conveying information to and within a Development Team is face-to-face communication||Right team
|Working software is a primary measure of progress||Right product
|Continuous attention to technical excellence and good design enhances agility||Produce right|
THE THREE PILLARS
The three pillars of Empirical Process are Inspection, Adaption and Transparency
- Transparency: Making sure that both the developer and the customer have a common understanding with respect to the status of the product at any given time.
Objective: Product Right, Right product, Right team
- Inspection: Run a thorough check on the product we have developed in every iteration and the process we have followed to achieve the shared goal.
Objective: Right process, Right product
- Adaptation: Work on the product based on the feedback received from the stakeholders and improve the processes to increase the effectiveness of teams.
Objective: Right process, Right product, Product right, Right team
The responsibilities of the three roles of Scrum, “The Product Owner, Scrum Master, Development Team” are manifested and laid down such that they collaboratively drive and aid the 4 core key driving elements of any product i.e Right Product, Product Right , Right Team and Right Process as shown below.
Any Sprint Plan begins with a product goal in sight which is clearly communicated to the Development Team by the Product Owner. The objective of this communication is to build the Right product. Once the goals are communicated, the Development Team self-organizes and decides how to build the product. Their main objective is to build the Product right by imbibing the technical expertise right from the beginning. The Scrum Master coaches the team to ensure constant collaboration and effective communication within the team to utilize individual skills for a common goal. This paves the way for building the Right team. To ease the execution process there needs to be a light weight Right process in place, for example, the Scrum framework, and the Scrum Master plays the role of a process guardian as he helps the team understand and implement Scrum. The Sprint concludes with the delivery of a high-value product to the end customer.
The Definition of Done defines what it means for the Sprint Backlog items “Done” at the end of a Sprint. It defines the completeness criteria of a user story.
Defines the readiness criteria of a backlog item so that teams can pull that item into the iteration backlog. It is a checklist of the prerequisites that define when a story is ready to be taken into the sprint.
The Definition of Done and Definition of Acceptance Criteria artifacts can be mapped to key driving elements of a Product Success as shown below.
Here are few metrics help assess some of the aspects of the driving elements as shown below
To conclude, the 4 R’s referenced here is just my interpretation of visualizing Agile and Scrum from a different perspective and hence could vary depending on how each person interprets Agile/Scrum.
Originally Posted by Madhavi Ledalla @ Scrum Alliance on 07 September 2016