The document provides an introduction to agile and lean software development. It discusses traditional vs agile development, defines agile as iterative and incremental using a plan-do-check-act approach with empowered cross-functional teams relying on automation. It covers the agile manifesto, principles and core practices including short iterations, deming's PDCA model, and the agile software development lifecycle. Lean concepts are introduced such as eliminating waste, amplifying learning, deciding late and delivering fast to empower teams and build integrity.
Presenter:
Dr. Gail Ferreira, Agile Practice Leader, MATRIX Resources, San Francisco Center of Excellence
Rapid scale directly impacts all levels of decision-making, planning, execution, culture, and communications for executives in hypergrowth companies. In this session, we will discuss how to organize, support, and tailor agile practices for teams and sub-teams in companies with a rapid growth cycle. We will share contemporary case studies of hypergrowth companies who have delivered agile at scale.
Topics will include:
• Basic agile and lean methods
• Scrum of Scrums
• SAFe
• Disciplined Agile Delivery (DAD)
• Agility at Scale (Ambler/Lines)
• Spotify model (Tribes, Squads, Chapters & Guilds, DSDM).
Having reviewed a number of Agile adoption approaches by big consulting companies given to organizations within the Kingdom, it's clear that many of them don't have the appropriate backgrounds to perform Agile transformations.
This session will discuss the Agile transformation adoption roadmap from real practitioners with numerous Agile adoptions in Saudi Arabia.
We will discuss what to try, what not to avoid, and some general things to consider.
XBOSoft runs through the Top 10 Agile Metrics revealing the most fundamental data points Agile methodology requires to work effectively, and will put you on the highly targeted path to successful implementation of your Agile processes.
XBOSoft and Go2Group run through the top data points you should be measuring in your Agile Workflow. We’ll show you what to track, when and how often, and most importantly – why. Many believe that metrics are useless, but unless you measure, how can you systematically improve or know how you are doing? And with velocity as an overarching objective in agile, you should be tracking other things so that you know what else you could be impacting by going faster. But, with all the metrics so readily available to us today, how do we filter through to the most meaningful?
Description of different methodologies for software project management. Overview of the classic Waterfall and the most popular methodologies for Agile development as Scrum, Kanban, XP..
Presenter:
Dr. Gail Ferreira, Agile Practice Leader, MATRIX Resources, San Francisco Center of Excellence
Rapid scale directly impacts all levels of decision-making, planning, execution, culture, and communications for executives in hypergrowth companies. In this session, we will discuss how to organize, support, and tailor agile practices for teams and sub-teams in companies with a rapid growth cycle. We will share contemporary case studies of hypergrowth companies who have delivered agile at scale.
Topics will include:
• Basic agile and lean methods
• Scrum of Scrums
• SAFe
• Disciplined Agile Delivery (DAD)
• Agility at Scale (Ambler/Lines)
• Spotify model (Tribes, Squads, Chapters & Guilds, DSDM).
Having reviewed a number of Agile adoption approaches by big consulting companies given to organizations within the Kingdom, it's clear that many of them don't have the appropriate backgrounds to perform Agile transformations.
This session will discuss the Agile transformation adoption roadmap from real practitioners with numerous Agile adoptions in Saudi Arabia.
We will discuss what to try, what not to avoid, and some general things to consider.
XBOSoft runs through the Top 10 Agile Metrics revealing the most fundamental data points Agile methodology requires to work effectively, and will put you on the highly targeted path to successful implementation of your Agile processes.
XBOSoft and Go2Group run through the top data points you should be measuring in your Agile Workflow. We’ll show you what to track, when and how often, and most importantly – why. Many believe that metrics are useless, but unless you measure, how can you systematically improve or know how you are doing? And with velocity as an overarching objective in agile, you should be tracking other things so that you know what else you could be impacting by going faster. But, with all the metrics so readily available to us today, how do we filter through to the most meaningful?
Description of different methodologies for software project management. Overview of the classic Waterfall and the most popular methodologies for Agile development as Scrum, Kanban, XP..
This presentation describes the basics of Agile methodologies and how it is differed from Waterfall. Then continues with the most famous Agile approach: Scrum
Rick Austin - Portfolio mangement in an agile world [Agile DC]LeadingAgile
When organizations move to agile for software delivery, there is often tension with traditional portfolio management. This talk will illustrate how an organization can move from traditional portfolio management approaches to one that embraces agile software delivery. Doing so enables organizations to become predictable, improve the flow of value delivered, and pivot more quickly if necessary.
We will demonstrate the use of governance that allows a more adaptive portfolio management approach. We will cover topics that enable agile portfolio management including:
Lean techniques for managing flow
Effective prioritization techniques
Long range road-mapping
Demand management and planning
Progressively elaborated business cases
Validation of outcomes
Support for audit and compliance needs
These topics will be illustrated by real-world examples of portfolio management that have been proven over the last five years with a wide range of clients.
PMI-ACP Domain 1 Agile Principles and MindsetJoshua Render
Free training for the PMI-ACP Certification exam -
Learn and understand some basic agile concepts.
View training video here: https://agile-mercurial.com/video-library/pmi-acp-domain-1-agile-principles-and-mindset-training-video/
Blog: https://agile-mercurial.com
YouTube: https://www.youtube.com/channel/UCPM82of2YuqIR1SgLGHa1eg
Twitter: https://twitter.com/agile_mercurial
Tumblr: https://agilemercurial.tumblr.com/
An overview of the Agile Manifesto and why Agile SDLC is super important to excellent project management practices. Agile Software development is dominating the game these days. Whether you're going responsive, managing ecommerce, magento, or iphone apps Agile practices will help your efforts succeed.
Introduction to the scrum framework: roles, activities and artifacts.
Scrum is an agile methodology for project management, to create a high quality product.
www.nieldeckx.be
Kanban 101 workshop by John Goodsen and Michael Sahota.
This covers everything you will need to know to play Russell Healy's Kanban Game: visualizing the work, metrics, and creating explicit policies.
Slides are available on request. Please email me.
Agile Metrics : A seminal approach for calculating Metrics in Agile ProjectsPrashant Ram
A seminal approach for calculating Metrics in Agile Projects. Overview, Analysis and Detailed Description of a proposed set of comprehensive metrics for Agile Projects.
Agile Project Management - An introduction to Agile and the new PMI-ACPDimitri Ponomareff
The PMI-ACP recognizes knowledge of agile principles, practices and tools and techniques across agile methodologies. If you use agile practices in your projects, or your organization is adopting agile approaches to project management, then this PDM will provide a full overview about this new PMI certification while exploring key agile principles, practices and techniques. If you always wanted to learn more about agile, this presenter is a certified Agile practitioner, trainer and coach so you will receive up to date information about the state of Agile and how it can most help you in your organization or your career.
Agile Team Working agreements, also known as team norms, are guidelines developed by the teams as to how they must work together to create a positive, productive process.
Portfolio Management in an Agile World - Rick AustinLeadingAgile
When organizations move to agile for software delivery, there is often tension with traditional portfolio management. Rick Austin illustrates how an organization can move from traditional portfolio management approaches to one that embraces agile software delivery. Doing so enables organizations to become predictable, improve the flow of value delivered, and pivot more quickly if necessary.
Top 50 Agile Interview Questions and Answers.pdfJazmine Brown
Top 50 Agile Interview Questions and Answers
Many organizations and businesses are taking notice of the agile technique. In today's world, it has become the benchmark for project management and software development. Various firms now use agile methodologies to offer high-value goods to their clients in the lowest amount of time.
In recent years, the agile technique has grown in popularity, and as a result, businesses have adopted it into their organizational structures. As a result, professionals with knowledge of agile are in high demand. As a result, you may have a lucrative career in this field.
These Agile interview questions and answers are great for you if you are planning to attend an agile interview and are preparing for one.
We hope that this post will familiarize you with some of the top agile interview questions that are most commonly raised in the interview. These flexible agile interview questions will improve your chances of passing your forthcoming interview.
50 top agile interview questions along with concrete answers
We have formulated the top agile interview questions and answers based on three different levels of entry into the profession along with scenario-based questions.
Beginner/Entry-Level Agile Interview questions and Answers
1. Explain agile methodology.
Agile methodology is a software development paradigm that emphasizes iterative and incremental development. The agile strategy is based on delivering a product in tiny operational increments or builds. Every program built is a better and more advanced version of the previous one. The development team and stakeholders are constantly collaborating on enhancements and changes in requirements.
Alternatively, we can describe the agile approach as the process of continuously providing functioning software while maintaining regular communication with stakeholders in order to ensure customer satisfaction.
2. How many types of Agile Methodologies are there? Enumerate them.
Agile Methodologies are classified into seven different types. They are:
• Scrum
• Kanban
• Extreme Programming
• Feature-Driven Development (FDD)
• Dynamic Systems Development Method (DSDM)
• Lean
• Crystal
3. What are the merits and demerits of the agile technique?
The following are some of the most noteworthy benefits of the agile methodology:
• Agile software development is one of the quickest and most flexible methodologies available.
• During the development phase, customers might adjust their needs at any time.
• It largely focuses on the software product's regular release. As a result, clients have the opportunity to see the product in its early stages of development.
• Customers have the option of providing comments on any working deliverable they receive.
• Because the development team focuses on creating a product that matches the customer's needs, this strategy ensures customer happiness.
• It focuses mostly on the product's good design.
This presentation describes the basics of Agile methodologies and how it is differed from Waterfall. Then continues with the most famous Agile approach: Scrum
Rick Austin - Portfolio mangement in an agile world [Agile DC]LeadingAgile
When organizations move to agile for software delivery, there is often tension with traditional portfolio management. This talk will illustrate how an organization can move from traditional portfolio management approaches to one that embraces agile software delivery. Doing so enables organizations to become predictable, improve the flow of value delivered, and pivot more quickly if necessary.
We will demonstrate the use of governance that allows a more adaptive portfolio management approach. We will cover topics that enable agile portfolio management including:
Lean techniques for managing flow
Effective prioritization techniques
Long range road-mapping
Demand management and planning
Progressively elaborated business cases
Validation of outcomes
Support for audit and compliance needs
These topics will be illustrated by real-world examples of portfolio management that have been proven over the last five years with a wide range of clients.
PMI-ACP Domain 1 Agile Principles and MindsetJoshua Render
Free training for the PMI-ACP Certification exam -
Learn and understand some basic agile concepts.
View training video here: https://agile-mercurial.com/video-library/pmi-acp-domain-1-agile-principles-and-mindset-training-video/
Blog: https://agile-mercurial.com
YouTube: https://www.youtube.com/channel/UCPM82of2YuqIR1SgLGHa1eg
Twitter: https://twitter.com/agile_mercurial
Tumblr: https://agilemercurial.tumblr.com/
An overview of the Agile Manifesto and why Agile SDLC is super important to excellent project management practices. Agile Software development is dominating the game these days. Whether you're going responsive, managing ecommerce, magento, or iphone apps Agile practices will help your efforts succeed.
Introduction to the scrum framework: roles, activities and artifacts.
Scrum is an agile methodology for project management, to create a high quality product.
www.nieldeckx.be
Kanban 101 workshop by John Goodsen and Michael Sahota.
This covers everything you will need to know to play Russell Healy's Kanban Game: visualizing the work, metrics, and creating explicit policies.
Slides are available on request. Please email me.
Agile Metrics : A seminal approach for calculating Metrics in Agile ProjectsPrashant Ram
A seminal approach for calculating Metrics in Agile Projects. Overview, Analysis and Detailed Description of a proposed set of comprehensive metrics for Agile Projects.
Agile Project Management - An introduction to Agile and the new PMI-ACPDimitri Ponomareff
The PMI-ACP recognizes knowledge of agile principles, practices and tools and techniques across agile methodologies. If you use agile practices in your projects, or your organization is adopting agile approaches to project management, then this PDM will provide a full overview about this new PMI certification while exploring key agile principles, practices and techniques. If you always wanted to learn more about agile, this presenter is a certified Agile practitioner, trainer and coach so you will receive up to date information about the state of Agile and how it can most help you in your organization or your career.
Agile Team Working agreements, also known as team norms, are guidelines developed by the teams as to how they must work together to create a positive, productive process.
Portfolio Management in an Agile World - Rick AustinLeadingAgile
When organizations move to agile for software delivery, there is often tension with traditional portfolio management. Rick Austin illustrates how an organization can move from traditional portfolio management approaches to one that embraces agile software delivery. Doing so enables organizations to become predictable, improve the flow of value delivered, and pivot more quickly if necessary.
Top 50 Agile Interview Questions and Answers.pdfJazmine Brown
Top 50 Agile Interview Questions and Answers
Many organizations and businesses are taking notice of the agile technique. In today's world, it has become the benchmark for project management and software development. Various firms now use agile methodologies to offer high-value goods to their clients in the lowest amount of time.
In recent years, the agile technique has grown in popularity, and as a result, businesses have adopted it into their organizational structures. As a result, professionals with knowledge of agile are in high demand. As a result, you may have a lucrative career in this field.
These Agile interview questions and answers are great for you if you are planning to attend an agile interview and are preparing for one.
We hope that this post will familiarize you with some of the top agile interview questions that are most commonly raised in the interview. These flexible agile interview questions will improve your chances of passing your forthcoming interview.
50 top agile interview questions along with concrete answers
We have formulated the top agile interview questions and answers based on three different levels of entry into the profession along with scenario-based questions.
Beginner/Entry-Level Agile Interview questions and Answers
1. Explain agile methodology.
Agile methodology is a software development paradigm that emphasizes iterative and incremental development. The agile strategy is based on delivering a product in tiny operational increments or builds. Every program built is a better and more advanced version of the previous one. The development team and stakeholders are constantly collaborating on enhancements and changes in requirements.
Alternatively, we can describe the agile approach as the process of continuously providing functioning software while maintaining regular communication with stakeholders in order to ensure customer satisfaction.
2. How many types of Agile Methodologies are there? Enumerate them.
Agile Methodologies are classified into seven different types. They are:
• Scrum
• Kanban
• Extreme Programming
• Feature-Driven Development (FDD)
• Dynamic Systems Development Method (DSDM)
• Lean
• Crystal
3. What are the merits and demerits of the agile technique?
The following are some of the most noteworthy benefits of the agile methodology:
• Agile software development is one of the quickest and most flexible methodologies available.
• During the development phase, customers might adjust their needs at any time.
• It largely focuses on the software product's regular release. As a result, clients have the opportunity to see the product in its early stages of development.
• Customers have the option of providing comments on any working deliverable they receive.
• Because the development team focuses on creating a product that matches the customer's needs, this strategy ensures customer happiness.
• It focuses mostly on the product's good design.
- Understand the principles behind the agile approach to software development
- Differentiate between the testing role in agile projects compared with the role of testers in non-agile projects
- Positively contribute as an agile team member focused on testing
- Appreciate the challenges and difficulties associated with the non-testing activities performed in an agile team
- Demonstrate a range of soft skills required by agile team members
The development of software is planned in stages and steps that culminate in the construction of functional applications of software. As a start-up, you are a new bug in this competitive industry.
Choose the right software development methodology to boost efficiency and customer satisfaction. In this blog explore Lean development for optimized, quick product delivery.
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
The Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications.
Nowadays, all organization works on the principle of Agile methodology, there might be many people like me who don't even know the meaning of Agile and Scrum Master.
I have made the docs from the source available on the internet with all due respect have copied the URL LINK.
The motive behind posting this is you can get an Agile understanding in one document.
Thanks
Paul Holway's presentation to TDWI St. Louis at the 2014-06-13 "Agile" meeting. For more information, see @paulholway on Twitter on LinkedIn (https://www.linkedin.com/pub/paul-holway/3/985/443)
1. Why are Customers adopting a Serverless-first Strategy?
AXA >> Rearchitecting with Serverless to accelerate innovation
2. Thinking Serverless >> from Business Problem to Serverless Solution ⚡
3. Getting started with Serverless for Developers
The fundamentals of AWS Cloud Security 🛠⛅️🚀Thanh Nguyen
1. Control your Cloud Infrastructure: AWS IAM
✍️ Identities that can make AWS calls
✍️ How to read and write IAM policy
2. Control your Data: AWS KMS
✍️ How AWS KMS integrates with AWS services
✍️ How to authorize access to AWS KMS keys
3. Control your Network: Amazon VPC ⛅️
✍️ How to get least-privilege connectivity
✍️ How to use your network as a security perimeter
https://datalake.aws.job4u.io/en/
You are a Data Analytics Team at Unicorn-Taxi Startup. You’ve been asked to help with the following tasks:
* Create a Dataset for Reporting and Visualization: Cleanse, Transform, Optimize for Reporting Queries
* Help solve a Machine Learning problem: Unicorn-Taxi’s Data Scientists need to understand Passenger tipping behavior
Introduction to Ethereum Blockchain & Smart ContractThanh Nguyen
The Harvard Business Review (HBR) thinks that Blockchain Technology has to power to keep data safe for consumers and businesses alike; because Blockchain provides a secure and immutable ledger, HBR says it represents the key to taking back privacy of data.
“You can keep certified copies of identity documents, biometric test results, health data, or academic and training certificates online, available at all times, yet safe unless you give away your key. At a whole system level, the database is very secure.”
Modern Database Management 12th Global Edition by Hoffer solution manual.docxssuserf63bd7
https://qidiantiku.com/solution-manual-for-modern-database-management-12th-global-edition-by-hoffer.shtml
name:Solution manual for Modern Database Management 12th Global Edition by Hoffer
Edition:12th Global Edition
author:by Hoffer
ISBN:ISBN 10: 0133544613 / ISBN 13: 9780133544619
type:solution manual
format:word/zip
All chapter include
Focusing on what leading database practitioners say are the most important aspects to database development, Modern Database Management presents sound pedagogy, and topics that are critical for the practical success of database professionals. The 12th Edition further facilitates learning with illustrations that clarify important concepts and new media resources that make some of the more challenging material more engaging. Also included are general updates and expanded material in the areas undergoing rapid change due to improved managerial practices, database design tools and methodologies, and database technology.
The Team Member and Guest Experience - Lead and Take Care of your restaurant team. They are the people closest to and delivering Hospitality to your paying Guests!
Make the call, and we can assist you.
408-784-7371
Foodservice Consulting + Design
Artificial intelligence (AI) offers new opportunities to radically reinvent the way we do business. This study explores how CEOs and top decision makers around the world are responding to the transformative potential of AI.
Oprah Winfrey: A Leader in Media, Philanthropy, and Empowerment | CIO Women M...CIOWomenMagazine
This person is none other than Oprah Winfrey, a highly influential figure whose impact extends beyond television. This article will delve into the remarkable life and lasting legacy of Oprah. Her story serves as a reminder of the importance of perseverance, compassion, and firm determination.
2. ① Introduction to Agile
Traditional vs. Agile
Agile Manifesto & Principles
② Definition of Agile
Iterative & Incremental & Plan Do Check Act
Empower & Cross Functional Teams
Reliance on Automation
③ Agile Core Principles & Practices
④ Agile Software Development Lifecycle
A. Agile
Lean Software Development 2
3. 6/30/2015 Lean Software Development 3
① Agile Manifesto & Principles
Produce Value Early: highest priority is to satisfy the Customer through
early & continuous delivery of valuable software.
Welcome Change: welcome changing requirements, even late in development.
Process harness change for the customer’s competitive advantage.
Iterative Delivery: Deliver working software frequently, every couple of
weeks/months, with a preference to the shorter timescale.
Daily Business Collaboration: Business People and Developers must work
together daily throughout the project.
Trust Motivated Team: build projects around motivated individuals. Give
them the environment & support their need, and trust them to get the job done.
Face-to-Face Communication: most efficient & effective method of conveying
information to and within development team is face-to-face conversation.
Working Software: working software is the primary measure of progress.
Sustainable Pace: Agile processes promote sustainable development. The
Sponsors, Developers, Users should maintain a constant pace indefinitely.
Technical Excellent: continuous attention to technical excellence &
good design enhances agility.
Keep It Simple: simplicity - the art of maximizing the amount of
work not done - is essential.
Self-Organize: the best architectures, requirements, and designs
emerge from self-organizing teams.
Reflect & Adjust: At regular intervals, the team reflects on how to become
more effective, then tunes & adjusts its behavior accordingly.
The Agile Manifesto:
Individuals and Interactions
over Processes and Tools
Working Software over
Comprehensive Documentation
Customer Collaboration over
Contract Negotiation
Responding to Change over
following a Plan
4. 6/30/2015 Lean Software Development 4
② Definition of Agile – Iterative
Time
Analysis
Design
Coding
Testing
20% done
(100% usable!)
Time
Analysis
Design
Coding
Testing
Do we have half
a solution yet?
Traditional Process Agile Process
5. 6/30/2015 Lean Software Development 5
② Waterfall Requires Perfect Vision
1 2 3 4 5
Waterfall calls for a fully formed idea up front.
And, doing it on time requires
dead accurate estimation.
6. 6/30/2015 Lean Software Development 6
② Incremental - Agile Expects Vision Shift
1 2 3
A more iterative allows you to move from
vague idea to realization making course
corrections as you go … stop when
diminishing returns are encountered!
4 5
… builds a rough version, validates it, then
slowly builds up quality
11. 6/30/2015 Lean Software Development 11
② Reliance on Automation
Build Scripts
(Ant, Puppet, Bash,
PowerShell)
Version Control
(SVN, CVS, GIT)
Build Integration
(Jenkins, Maven)
Test 1
(Automated Regression Tests)
Test 2
(Manual & Migration Tests)
Sandbox
On-Demand Pull
Nightly Pull
Automated Push
Manager
Developers
Tester
Compile/Tag Source
Run Unit Tests
Run Functional Tests
Run Test Coverage
Static Code Analysis
Build Database
WatchesCommit Uses
Test
Informs
Stakeholder
Inspect
12. 6/30/2015 Lean Software Development 12
③ Agile Core Principles &
Practices
1. Early Delivery of Value through Iterations with Demos: the project should be
broken into a series of time-boxed, iterations that have a demo to show progress to
all Stakeholders.
2. Continuous Involvement of the Customer: tradeoff is an important part of the
process. Prioritize business value of work with Business & IT working
collaboratively to balance risk.
3. Retrospectives: weekly team retrospective should be held to learn how to improve
& enhance the project delivery efforts.
4. Communication: daily ‘Scrum’ should be held amongst team members to
understand what has been accomplished, what will be accomplished & what
roadblocks exist.
5. User Stories reflect Business Value & Priority: User Stories are managed in a
backlog, prioritized by business value & releases are determined by the
development velocity & what is deemed acceptable as a production release.
6. Acceptance Tests for all Requirements: Everyone owns ‘quality’. Standards, Test
Automation, and key principles, such as Test Early / Test Often, are emphasized.
7. Sustainable Pace or Velocity: Team Members are involved in estimates &
commitment dates.
8. High Visibility: Information on project status, progress and issues/risks should be
maintained in real-time, web accessible tools.
13. 6/30/2015 Lean Software Development 13
④ Agile Software Development Lifecycle
Crystal
DSDM
XP
FDD
Agile
RUP
Scrum
Concept
Creation
Requirements
Specification
Design Code Unit
Test
Integration
Test
System
Test
Acceptance
Test
System
in Use
Adapted from Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002).
Agile Software Development Methods: Review and Analysis. VTT Publications 478. (pp. 95)
KEY: Project management
Process
Practices / activities / work products
14. 6/30/2015 Lean Software Development 14
① Traditional vs. Agile Project Management
Conventional projects
take too long and
often miss the mark
Lean (agile) methods link developers
and users to hit the mark quickly:
Extrinsic-Value & Intrinsic-Quality
15. Communication:
Frequent collaboration
between Users & Programmers
Use simple design,
common metaphors,
application of patterns
Simplicity
Focus on the simplest solution
Don’t build more functionality
than required
Refactor complexity
Feedback
Unit Tests for feedback
from the System
Acceptance Tests
for feedback from Customer
The Planning Game
for feedback from the Team
Courage
Refactor code to make
future changes easier
Throw code away that is obsolete
Respect
Respect for others; self-respect
Adopting the other 4-values
Respect gained from others in Team
6/30/2015 Lean Software Development 15
① 5 Core Principles of XP
16. 6/30/2015 Lean Software Development 16
① XP Practices
Fine-Scale
Feedback
Pair
Programming
Planning
Game
Test-Driven
Development
Whole Team
Continuous
Process
Continuous
Integration
Refactoring
or Design
Improving
Small
Releases
Shared
Understanding
Coding
Standard
Collective
Code
Ownership
Simple
Design
System
Metaphor
Programmer
Welfare
Sustainable
Pace
17. 3 Principles
Start with what you
know
Agree to pursue
incremental,
evolutionary change
Respect current roles,
responsibilities, and job
titles
5 Core Practices
Visualize
Limiting Work-In-Progress
Manage Flow
Make management policy
Improve collaboratively
using “safe to fail”
experiments
6/30/2015 Lean Software Development 17
① Lean Kanban
18. 1. Lean for Software vs. Manufacturing
2. From Lean Manufacturing :
Aim for continuous flow (single-piece flow)
Watch your queues (pull production)
3. Pay to learn early in the project
4. Develop for Business Value once risks are down
5. Trim the Tail: choose to deliver by Value / Date
B. Why Agile / Lean in Software
Development
Lean Software Development 18
19. 6/30/2015 Lean Software Development 19
① Lean for Software vs. Manufacturing
I wish they’d decide
what style
they want!
Users &
Sponsors
Testers
Business
Analysts
I wish they’d
decide what
functions they
want!
A decision
I wish they’d decide
on the UI design
already!
I wish they’d think a
bit more carefully
before coding!
Programmers
Every
line of code
is a decision
UI
Designers
Software development looks like manufacturing if
the unit of inventory is the invalidated decision!
20. 6/30/2015 Lean Software Development 20
① Software Development has correction loops
Detailed
decisions about
external
appearance
Decisions
about function
and style
Detailed decisions
about function
and data
Decisions
about program
structure
Decisions
about system
correctness
Users &
Sponsors
UI
Designers
Programmers
Testers
Business
Analysts
21. 6/30/2015 Lean Software Development 21
② From Lean Manufacturing:
aim for continuous flow
time
Testers
100 lines of code
show up for testing
# of design decisions
Decisions being
validated or broken
How long this line of code
/ screen / use case /
decision
sits in the testing queue
Decisions arriving
23. 6/30/2015 Lean Software Development 23
② From Lean Manufacturing:
watch your queues
Users & Sponsors
absent
UI Designers
Business Analysts
some
Programmers
Database Designers
Tester
Enough
Users & Sponsors
UI Designer
A few
Business Analysts
Lots of
Programmers
Single, solitary
Database Designer
Many
Business Analysts
Not enough
Programmers Some
Testers
Enough
Users & Sponsors
24. 6/30/2015 Lean Software Development 24
③ Waterfall is a late-learning strategy
Delivers nearly no knowledge
(or risk reduction)
Knowledge comes at
the “moment of truth”:
final integration.
time
cost
Growth of knowledge with
big-bang integration
25. 6/30/2015 Lean Software Development 25
③ Agile pay to learn early in the project
Development sequence indifferent
(with respect to knowledge)
Delivers knowledge
(risk reduction)
time
cost
Growth of knowledge with
early, continuous integration
26. 6/30/2015 Lean Software Development 26
④ Develop for Business Value
once risks are down
time
Knowledge growing
(risk reduction)
cost
Growth of business value
Business value growing
27. 6/30/2015 Lean Software Development 27
⑤ Trim the Tail: choose to deliver
by Value or Date
Trim to deliver
on-time (or early)
Delay to get more
or better
28. Lean Software Development History &
Thinking Tools
C. Lean Software Development
Lean Software Development 28
29. 6/30/2015 Lean Software Development 29
7 Lean Principles
Lean
Eliminate
Waste
Amplify
Learning
Decide as
Late as
Possible
Deliver as
Fast as
Possible
Empower
the Team
Build
Integrity
In
See the
Whole
30. 6/30/2015 Lean Software Development 30
① Eliminate Waste
Waste is anything that doesn’t add VALUE
to a product
Value as Perceived by Customer
Many types of Waste to be avoided
Delivering Value
Deliver what the Customer wants immediately
Value Stream Mapping
31. 6/30/2015 Lean Software Development 31
① Eliminate Waste - Delivering Value
Waste Description Example
Partially Done
Work
Work started, but not complete;
partially done work can entropy
• Untested / Undocumented Code
• Specs waiting for development
Extra Processes Extra work that does not add value • Forgetting Decisions, re-trying
Solution, un-utilize Knowledge
• Unnecessary approvals
Extra Features Features that are not required, or
are thought as nice-to-haves
• Gold plating
• Technology features
Task Switching Multi-tasking between several
different projects when they are
context-switching penalties
• People on multiple projects
Waiting Delays waiting for reviews &
approvals
• Waiting for prototype reviews
• Waiting for document approvals
Motion The effort required to communicate
or move information or deliverables
from 1 group to another; if teams
are no co-located, this effort may
need to be greater
• Distributed teams
• Handoffs: passing/getting
information/work from someone
Defects Defective documents or software
that need corrective
• Requirements defects
• Software bugs
32. 6/30/2015 Lean Software Development 32
① Waste – Value Stream Mapping Before
Sales people
Marketing
Requirements’
sources
Entering reqs. to the
system
Analysis
Management
Acceptance
Prioritization Release Planning
VAT: 1 hour VAT: 3 hour
VAT: 1 hour
VAT: 1 hour
VAT: 1 hour
NVAT: 5 days
NVAT: 3 days
NVAT: 4 days
NVAT: 2 days
VALUE ADDING TIME (VAT): 7 hours
NON-VALUE ADDING TIME (NVAT): 14 days Development process
33. 6/30/2015 Lean Software Development 33
① Waste – Value Stream Mapping Process
Three general steps (Abdulmalek and Rajkopal):
Choose a product target for improvement.
Draw a Current State Map of the process, then
analyzing the system and identifying its Weaknesses.
Create a Future State Map, depicts how the system
should look like when wastes have been removed.
Apply the technique of “Five Why’s” which aims
to identify the root-cause behind the Weakness.
Value Stream Mapping follow the Continuous
Improvement philosophy of Lean (Kaizen).
34. 6/30/2015 Lean Software Development 34
① Waste – Value Stream Mapping - After
Sales people
Marketing
Requirements’
sources
Entering reqs. to the
system
Analysis
Management
Acceptance
Prioritization Release Planning
VAT: 1 hour VAT: 3 hour
VAT: 1 hour
VAT: 1 hour
VAT: 1 hour
NVAT: 3 days
NVAT: 2 days
NVAT: 3 days
NVAT: 2 days
VALUE ADDING TIME (VAT): 7 hours
NON-VALUE ADDING TIME (NVAT): 10 days
Development process
35. 6/30/2015 Lean Software Development 35
② Amplify Learning
Development is an exercise in discovery
Adapt based upon empirical data, not assumption
Repeat steps until requirements are met
Expect & embrace mistakes then learn from them
36. 6/30/2015 Lean Software Development 36
③ Decide as Late as Possible
Expect uncertain & make decisions
when uncertain is at a minimum
Avoid locking in decisions until the future is closer &
easier to predict (with options-based approach)
Delay decisions are based on fact, not speculation,
not on uncertain assumptions / predictions
Keeping design options open & adapting to context is
more valuable than committing early
37. 6/30/2015 Lean Software Development 37
④ Deliver as Fast as Possible
Rapid Software Development has many
advantages
Customers get what they need now
not the biggest that survives, but the fastest
Customers can delay determining what they want
until they know more Just-In-Time in Iteration
Compressing the Value Stream eliminate waste
Self-Pulling system during a stand-up meeting
38. 6/30/2015 Lean Software Development 38
⑤ Empower the Team
No One understands the details better than
the People doing the work.
Developers can let each other know
when work needs to be done Work-Out technique
Use of “Pull” and “Local Signaling” mechanisms
Find good people & let them do their own job
Self-Organizing Teams are more empowered
Ownership of challenges, success or failure
39. 6/30/2015 Lean Software Development 39
⑥ Build Integrity In (Build Quality In)
A System has integrity when it gives the
Customer exactly what they want.
Perceived Integrity is crucial
Understand problem domain & resolve same time
Conceptual Integrity is mandatory
Refactoring: simplicity, clarity, minimum amount
Integrity is the result of many
processes working together effectively
40. 6/30/2015 Lean Software Development 40
⑦ See the Whole
Concentrate on the effort of the Team as a
WHOLE rather than as a group of individuals.
Focus on Overall system performance
Think big, act small, fail fast; learn rapidly
Avoid tendency to maximize only
specialized parts of overall system
Be wary of individual organization needs when using
Contracts
41. 6/30/2015 Lean Software Development 41
More Info
Social Linked-In:
vn.linkedin.com/in/nguyennhatthanh
Social Slideshare:
www.slideshare.net/SmartBizVN
Personal Website:
http://smartbiz.vn/sales/en
Show Cases:
http://smartbiz.vn/sales/en/projects/
Email: Sun.SmartBiz@gmail.com
Phone: (+84) 938 203080
Editor's Notes
*
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
http://mike2.openmethodology.org/
The word kaizen means “continuous improvement” in quality, technology, processes, company culture, productivity, safety, and leadership. It comes from the Japanese words (“kai”) which means “change” or “to correct” and (“zen”) which means “good.”
Japanese words (“kai”) which means “change” or “to correct” and (“zen”) which means “good.”
Jidoka (Autonomation)
Continuous Improvement in quality, technology, processes, company culture, productivity, safety, and leadership.
IEEE: Improving Everyday, Everybody, and Everywhere
Lean philosophy regards everything not adding value to the customer as waste (muda). Such waste may include:
unnecessary code and functionality
delay in the software development process
unclear requirements
avoidable process repetition (often caused by insufficient testing)
bureaucracy
slow internal communication
In order to eliminate waste, one should be able to recognize it. If some activity could be bypassed or the result could be achieved without it, it is waste. Partially done coding eventually abandoned during the development process is waste. Extra processes and features not often used by customers are waste. Waiting for other activities, teams, processes is waste. Defects and lower quality are waste. Managerial overhead not producing real value is waste.
A value stream mapping technique is used to identify waste. The second step is to point out sources of waste and to eliminate them. Waste-removal should take place iteratively until even seemingly essential processes and procedures are liquidated.
Software development is a continuous learning process with the additional challenge of development teams and end product sizes. The best approach for improving a software development environment is to amplify learning. The accumulation of defects should be prevented by running tests as soon as the code is written. Instead of adding more documentation or detailed planning, different ideas could be tried by writing code and building. The process of user requirements gathering could be simplified by presenting screens to the end-users and getting their input.
The learning process is sped up by usage of short iteration cycles – each one coupled with refactoring and integration testing. Increasing feedback via short feedback sessions with customers helps when determining the current phase of development and adjusting efforts for future improvements. During those short sessions both customer representatives and the development team learn more about the domain problem and figure out possible solutions for further development. Thus the customers better understand their needs, based on the existing result of development efforts, and the developers learn how to better satisfy those needs. Another idea in the communication and learning process with a customer is set-based development – this concentrates on communicating the constraints of the future solution and not the possible solutions, thus promoting the birth of the solution via dialogue with the customer.
As software development is always associated with some uncertainty, better results should be achieved with an options-based approach, delaying decisions as much as possible until they can be made based on facts and not on uncertain assumptions and predictions. The more complex a system is, the more capacity for change should be built into it, thus enabling the delay of important and crucial commitments. The iterative approach promotes this principle – the ability to adapt to changes and correct mistakes, which might be very costly if discovered after the release of the system.
An agile software development approach can move the building of options earlier for customers, thus delaying certain crucial decisions until customers have realized their needs better. This also allows later adaptation to changes and the prevention of costly earlier technology-bounded decisions. This does not mean that no planning should be involved – on the contrary, planning activities should be concentrated on the different options and adapting to the current situation, as well as clarifying confusing situations by establishing patterns for rapid action. Evaluating different options is effective as soon as it is realized that they are not free, but provide the needed flexibility for late decision making.
In the era of rapid technology evolution, it is not the biggest that survives, but the fastest. The sooner the end product is delivered without major defects, the sooner feedback can be received, and incorporated into the next iteration. The shorter the iterations, the better the learning and communication within the team. With speed, decisions can be delayed. Speed assures the fulfilling of the customer's present needs and not what they required yesterday. This gives them the opportunity to delay making up their minds about what they really require until they gain better knowledge. Customers value rapid delivery of a quality product.
The just-in-time production ideology could be applied to software development, recognizing its specific requirements and environment. This is achieved by presenting the needed result and letting the team organize itself and divide the tasks for accomplishing the needed result for a specific iteration. At the beginning, the customer provides the needed input. This could be simply presented in small cards or stories – the developers estimate the time needed for the implementation of each card. Thus the work organization changes into self-pulling system – each morning during a stand-up meeting, each member of the team reviews what has been done yesterday, what is to be done today and tomorrow, and prompts for any inputs needed from colleagues or the customer. This requires transparency of the process, which is also beneficial for team communication. Another key idea in Toyota's Product Development System is set-based design. If a new brake system is needed for a car, for example, three teams may design solutions to the same problem. Each team learns about the problem space and designs a potential solution. As a solution is deemed unreasonable, it is cut. At the end of a period, the surviving designs are compared and one is chosen, perhaps with some modifications based on learning from the others - a great example of deferring commitment until the last possible moment. Software decisions could also benefit from this practice to minimize the risk brought on by big up-front design.
There has been a traditional belief in most businesses about the decision-making in the organization – the managers tell the workers how to do their own job. In a "Work-Out technique", the roles are turned – the managers are taught how to listen to the developers, so they can explain better what actions might be taken, as well as provide suggestions for improvements. The lean approach favors the aphorism "find good people and let them do their own job," encouraging progress, catching errors, and removing impediments, but not micro-managing.
Another mistaken belief has been the consideration of people as resources. People might be resources from the point of view of a statistical data sheet, but in software development, as well as any organizational business, people do need something more than just the list of tasks and the assurance that they will not be disturbed during the completion of the tasks. People need motivation and a higher purpose to work for – purpose within the reachable reality, with the assurance that the team might choose its own commitments. The developers should be given access to the customer; the team leader should provide support and help in difficult situations, as well as ensure that skepticism does not ruin the team’s spirit.
Agile projects are built around motivated individuals and the team organize themselves without the command and control structure
Self-organizing teams in which the interactions are high and processes are low.
The customer needs to have an overall experience of the System – this is the so-called perceived integrity: how it is being advertised, delivered, deployed, accessed, how intuitive its use is, price and how well it solves problems.
Conceptual Integrity means that the system’s separate components work well together as a whole with balance between flexibility, maintainability, efficiency, and responsiveness. This could be achieved by understanding the problem domain and solving it at the same time, not sequentially. The needed information is received in small batch pieces – not in one vast chunk with preferable face-to-face communication and not any written documentation. The information flow should be constant in both directions – from customer to developers and back, thus avoiding the large stressful amount of information after long development in isolation.
One of the healthy ways towards integral architecture is refactoring. As more features are added to the original code base, the harder it becomes to add further improvements. Refactoring is about keeping simplicity, clarity, minimum amount of features in the code. Repetitions in the code are signs for bad code designs and should be avoided. The complete and automated building process should be accompanied by a complete and automated suite of developer and customer tests, having the same versioning, synchronization and semantics as the current state of the System. At the end the integrity should be verified with thorough testing, thus ensuring the System does what the customer expects it to. Automated tests are also considered part of the production process, and therefore if they do not add value they should be considered waste. Automated testing should not be a goal, but rather a means to an end, specifically the reduction of defects.
Software systems nowadays are not simply the sum of their parts, but also the product of their interactions. Defects in software tend to accumulate during the development process – by decomposing the big tasks into smaller tasks, and by standardizing different stages of development, the root causes of defects should be found and eliminated. The larger the system, the more organizations that are involved in its development and the more parts are developed by different teams, the greater the importance of having well defined relationships between different vendors, in order to produce a system with smoothly interacting components. During a longer period of development, a stronger subcontractor network is far more beneficial than short-term profit optimizing, which does not enable win-win relationships.
Lean thinking has to be understood well by all members of a project, before implementing in a concrete, real-life situation. "Think big, act small, fail fast; learn rapidly" – these slogans summarize the importance of understanding the field and the suitability of implementing lean principles along the whole software development process. Only when all of the lean principles are implemented together, combined with strong "common sense" with respect to the working environment, is there a basis for success in software development.