Agile Software Development: Agile principles Flashcards
4 core values
Individuals and interactions over processes and tools: Agile places more importance and emphasis on people and their interactions over processes and even tools.
Working software over comprehensive documentation: Documentation requires a time and resource commitment that might be wasteful.
Customer collaboration over contract negotiation: Agile promotes a collaborative outlook when product owners work with their customers in reaching an agreement on the details of the product delivery.
Responding to changes over following a plan: Agile embraces the change that makes business sense.
Ambiguity
Ambiguity: Ambiguity refers to a lack of clarity, such as not having a clear understanding of the genuine needs of the customer and end-users
Complexity
Complexity : Complexity exists when there are many interconnected parts and variables that influence each other
Muda
Muda : Lean principles refer to the Japanese term Muda as waste; Agile teams focus on the removal of non-value adding tasks that are seen as Muda
Product Owner
Product Owner: A business proxy or representative of the business users who is the Voice of the Customer (VOC)
ROI
Return on Investment (ROI): Return on investment (ROI) is calculated as the ratio between net profit and cost of investment over a defined period of time
Uncertainty
Uncertainty: The extent to which an organization can confidently predict or forecast the future; more uncertainty makes it harder to predict
Voice of the Customer
Voice of the Customer: A term used to articulate the steps to capture customer’s needs
Volatility
Volatility : Volatility is when there are unexpected or unstable possibilities that may influence the work being done
VUCA
VUCA: Volatility, Uncertainty, Complexity, Ambiguity
WIP
WIP (Work in Progress): The work that has been started but not yet completed
What delivers optimal business value in Agile teams?
Systems Thinking + Growth Mindset
What is business agillity
Adapt quickly to market changes
Respond rapidly and flexibly to customer demands that make business sense
Adapt and lead change in a productive and cost-effective manner with no compromise to quality
Agile Mindset
The set of attitudes supporting an agile working environment
Respect Collaboration Continuous Improvement Iterative Learning Cycles Mastery and Ownership Focus on Delivering Value Adaptability to Change
Being Agile
When an Agile team lives & breathes Agile principles and values through Agile practices consistently every day
Doing Agile
When an Agile team adopting the practices without committing to or exhibiting Agile principles and values
12 Core Principles
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. The goal of product development is the development of successful products.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Due to the dynamic competitive landscape, requirements can and will change throughout product development.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale. Frequent and iterative delivery of working product provides the business with practical feedback.
Business people and developers must work together daily throughout the project. The Product Owner and the Agile Team adopt practices that ensure inclusive and joint practices.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Agile leaders build Agile teams with skilled resources who are willing to work together collaboratively with a growth mindset.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. For a product development team to succeed its members must communicate and collaborate effectively.
Working software is the primary measure of progress. The primary measure of product development should be the delivery of working product increments which meet the evolving needs of the business.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. A highly skilled team simply just cannot be expected to successfully develop a product by compelling people to work overtime for extended periods.
Continuous attention to technical excellence and good design enhances agility. Built-in quality practices have enormous benefits. It allows for easier maintenance and scalability of the product.
Simplicity - the art of maximizing the amount of work not done - is essential. With the guidance of the Product Owner, Agile Teams focus on high value activities, which allows them to focus on the high business value needs.
The best architectures, requirements, and designs emerge from self-organizing teams. This is a critical principle of the agile world to ensure that emerging and effective architectures, requirements, and designs are built into the product development life cycle to maximize technical excellence.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Finding concrete opportunities for improvement is a continual effort.
Agile vs Waterfall
Agile fixes time and resources whereas Waterfall fixes scope.
Product lifecycle: Iterative vs Distinct phases
Design process: Incremental vs Sequential
Change: Change is embraced vs Change is challenge
Mindset/Focus: Customer needs vs Completion of project
Collaboration: significant collaboration VS limited Collaboration
Requirements: Prepared incrementally VS Prepared at start of project
Organization Self-directed team VS lead by project manager
Conditions where Agile may not be helpful
Lack of agreement in terms of requirements and process
No vision and no clear roadmap
Near certainty on requirements and process upfront
Conditions where Agile works Best
An environment of complexity and some uncertainty where an adaptive approach is needed
With complicated requirements that need iterative cycles to understand the needs of end-users
Incremental Product Delivery
Incremental Product Delivery: An approach that utilizes a given number of steps, which go from start to finish following a linear path of progression
Itarative Product Delivery
Iterative Product Delivery: An approach where product development is broken into sequences of time-boxed, repeated cycles called iterations
Sequential Product Delivery
Sequential Product Delivery: A process where a defined sequence of steps must be followed as in the Waterfall approach
Waterfall Methodology
Waterfall Methodology: A methodology of product development which starts by breaking down project tasks into linear sequential phases or stages where each subsequent stage depends on the successful delivery of the previous ones.
What are common misconceptions about Agile?
Scheduling Agile ceremonies makes a team Agile - Holding ceremonies for the sake of holding ceremonies does not deliver benefits. Ceremonies must adhere to core principles of Agile.
The Facilitator role is just like a traditional Project Manager - The Facilitator role is different from the Project Manager role. A Facilitator should be a Servant Leader who assists with whatever the team needs to forward.
Large teams are okay - Agile recommends small cross-functional teams that allows the team to be nimble and powerful.
The product backlog can be managed like a traditional requirements document - The backlog should not be a process-driven document, It should focus on customer value and strategic objectives.
Documentation and audit trails for compliance are not important in Agile - Agile does not mean no documentation – it just removes low value documents and documents what is valuable to maintain and sustain the product.