A self-organizing, cross-functional, collaborative team is more than a collection of individuals; it is an entirely new entity made up of people who themselves are wonderfully complex creatures. It takes time and conscious effort to bring a group of individuals together to form a cohesive team that is able to continuously evolve in terms of who it is and how it works. Without stability, the team never completely forms, and its sponsoring organization never truly reaps the benefits of a high-performing team. This does not mean that team composition should never change, only that when it does it will take time and conscious effort to help the individuals work as a team again.
At a fundamental level, establishing identity is about answering three big questions that guide a team on its journey toward high performance:
1. Why do we exist? (Purpose)
2. What is important to us? (Values)3. What do we want? (Vision)
The Team Process dimension includes practices, tools, and ways of working together. It touches on a wide variety of areas, including the following:
-Engineering practices and tools
-Quality practices and tools
-Product management practices and tools
-Product Backlog management practices and tools
-Effective use of Scrum events and artifacts
-Effective communication and collaboration
-Identification and removal of sources of waste
-Identification and removal of impediments
-Effective use and growth of team knowledge, skills, and capabilities
Culture is a body of habits that bind people together into a cohesive unit.
The way you start improving anything complex is to ask yourself three questions:
1. What hurts the most?
2. Why?
3. What are small experiments we can run that will deliver the most value?
When you design the experiment, be clear about the following points:
-What are you trying to learn?
-How will you measure success?
-How soon can you get feedback?
Effective self-organization requires three things: shared goals, clear accountabilities, and boundaries.
-----------
The following questions are useful to stimulate a collaborative discussion about the DoD:
-What do we need to do to assist the people who will maintain the product (e.g., readable code, variable naming conventions)?
-How will we minimize technical debt (e.g., refactoring)?
-How will we test the product (e.g., unit testing, functional testing, regression testing)?
-What testing will be automated?
-What defects must be resolved (e.g., severity, type)?
-How will we meet performance and scalability requirements (e.g., transaction processing time, concurrent users)?
-Which development standards will guide us toward technical excellence?
-How will we verify conformance to our team’s development standards (e.g., peer reviews)?
-How will we validate and ensure data quality?
-How will we ensure that our product is secure?
-How will we ensure that our product meets regulatory, legal, or other compliance standards?
-What do we need to do to meet branding requirements?
-What do we need to do to ensure that our product is usable by people with disabilities (e.g., Americans with Disabilities Act [ADA] accessibility standards)?
-What documentation is needed to release to production (e.g., online help, updates to asset management system)?
Scrum Teams achieve flow optimization by adding the following four practices to their Scrum process:
-Visualization of the workflow
-Limiting WIP
-Active management of work items in progress
-Inspecting and adapting their definition of “workflow”.
The iron triangle for adaptive development consists of time, money, scope.
----
Automation is often addressed in the following order:
Version control
Automated build
Automated test
Automated packaging
Automated deployment
Empiricism Reduces Uncertainty by Taking Action, Not by Planning More.