Professional Scrum Competency: Developing and Delivering Products Professionally
Developing and Delivering Products Professionally with Scrum results in high-quality software products delivered iteratively and incrementally with relatively high frequency. These products meet the needs of stakeholders and customers and provide flexibility for both early value realization and adaptation to changing needs. Professional software development requires collaboration among team members and the entire organization, and there are a set of Focus Areas that, when understood and applied, yield the holistic realization of this end-to-end-vision.
Management throughout the lifespan of application development, reducing cycle times, and eliminating waste requires a proven set of tools and processes that help organizations integrate different teams, platforms, and activities. The Focus Area, Continuous Integration and Continuous Delivery, provides a set of practices and techniques to deliver value continuously, marrying the ideas of frequent learning with the concepts of small batch size and automation.
The Scrum Team(s) use an Emergent Software Development approach for the overall structure definition, where the specific detailed design decisions are made when needed, but not before. The detailed decisions build on the overall framework to create a coherent product that meets organizational standards.
Scrum Teams should also focus on Optimizing Flow and Continuous Quality that consistently delivers fully integrated, tested, and potentially releasable “Done” product increments every Sprint. Incorporating the appropriate engineering practices and tools will help facilitate the consistent development of integrated "Done" increments while Managing Technical Risk that could otherwise compromise the team’s ability to quickly and easily adapt the product to changing needs, thereby hindering the organization's agility.
The Scrum Team(s) are naturally the tangible developers of Professional Software but some proficiency with Developing and Delivering Product Professionally is important for all roles within an organization to facilitate communication, collaboration, and stakeholder participation.
Key Focus Areas
Within each competency, a number of Focus Areas provide a more detailed view of the knowledge and skills you require to master that competency.
Emergent Software Development
In solving complex problems, the idea of a detailed up-front design has been replaced with an approach that encourages design to emerge and change within the boundaries of an architecture. In this Focus Area, practitioners will be able to describe what emergent architecture is and how it translates into incremental development and delivery. They will be able to describe practices that “realize” the architecture incrementally into a working, agile system. Practitioners will understand the trade-offs between value, flexibility, and quality, and will also be able to apply techniques that make the emergent approach transparent to the team, organization, and stakeholders.
Managing Technical Risk
All products have an inherent set of risks to manage. These risks range from the ability to deliver to technical risks associated with performance and security. This Focus Area describes how technical risks are managed within an Agile approach. Practitioners should understand what technical risks are and how to effectively manage them in an empirical process. They should also understand how to apply practices to make risks transparent.
Working in an agile way does not change the importance of product quality. It does, however, change when and where quality is addressed. This Focus Area describes what quality is and how the ideas of Agility and Scrum change a product's quality approach. The practitioner will understand what continuous quality is, how to apply it, and the appropriate practices for delivering quality in a continuous way. They will understand important concepts like technical debt, Test Left, and the ideas of user-driven testing.
Continuous Integration (CI) / Continuous Delivery (CD)
Frequent learning is a fundamental concept for Scrum. Continuous Delivery and Continuous Integration are a key collection of practices that enable frequent observation of working features. This Focus Area describes the value of the core idea that code should always be deployable and an understanding of the techniques that can be employed for delivering software that solves complex problems. The practitioner will understand what CI and CD are, how to apply these ideas, and what it means for an empirical process and the Scrum framework.
The Sprint is a time-box with clear flows within it. For large, complex work, the Sprint is just a small part of a broader flow for the product, business, or even market. This Focus Area concentrates on making flow transparent and ensuring that waste is reduced or removed. Automation and measurement are key elements to ensuring flow efficiency, coupled with a series of rules that have evolved in response to improving flow. The practitioner will be able to look to flow approaches such as Kanban and integrate these ideas with Scrum, frequently delivering valuable products and learning.