SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Downloaden Sie, um offline zu lesen
print("hello pycon") .
velocity
speed.
speed.
too.
:)
velocity [vuh-los-i-tee]
rate of change of its position with respect to time.
a specification of its speed and direction of motion.
Source: https://en.wikipedia.org/wiki/Velocity
agility
ideal.
reality.
agility [uh-jil-i-tee]
the ability to change the direction of the body in an
efficient and effective manner which requires the
integration of isolated movement skills using a
combination of balance, coordination, speed,
reflexes, strength, and endurance.
Source: https://en.wikipedia.org/wiki/Agility
python
python [pahy-thon]
a family of nonvenomous snakes.
Source: https://en.wikipedia.org/wiki/Python
velocity. agility. python.
PyCon APAC 2017
Speaker Notes
Velocity. Agility. Python.
Often there are conflicts of interest between velocity and agility of a project.
Some see velocity as mere time taken to complete a task, whilst some see agility which requires quick response to change
in meeting objectives of a task as a significant contributing factor behind delays.
Being a python developer and an engineering process facilitator, I would like to share my journey in discovering the beauty
of velocity and agility of continuous software delivery.
In the end of this talk, I wish to lead all attendees to reflect on the engineering process and organisation culture in their
respective workplace, to delivery quality python projects with velocity and agility in mind.
SIAN LERK LAU
linkedin.com/in/sianlerk
@kiawin
Speaker Notes
This is me
For this session, we will do the following
- Agile methods
- What’s next
- Reflection - Velocity and Agility
a quick survey.
software delivery?
Speaker Notes
Software delivery?
How many of you involved in the software delivery pipeline?
It can be from business, products, all the way to the devs, ops, sec, testers etc.
agile?
Speaker Notes
agile?
How many of you practices agile?
Would you think agile is the way forward?
CI/CD?
Speaker Notes
CI/CD?
How many of you does continuous integration and/or deployment?
agile methods in essence
Speaker Notes
Agile methodologies in essence shares several key characteristics.
Yes. This summary may be controversial, but we’ll go in detail later why so.
processes |
best practices
i
Speaker Notes
Processes and best practices
This is the part where people uses keywords such as Scrum, Kanban, CI/CD etc.
More? unit test, behavioral test, functional tests, deployment pipeline, pair programming, configuration management, etc.
coordination |
communication
ii
Speaker Notes
Coordination and communication
We don’t work in silo, and I hope you don’t.
Even if you work alone, high chances you are using python libraries, which in returns there will be a certain minimal
interaction through online platforms (e.g. stackoverflow, github, etc).
We work in team to leverage on collective strengths and collective knowledge sets.
learning |
experimentation
iii
Speaker Notes
It is all about life-long learning.
Beyond that, it is also about fail safe, learn fast, and iterate.
Experimentation is strongly encouraged, and we should chant by heart :)
emergence of continuous *
Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and
Software, 123, pp.176-189.
continuous *
business strategy and planning
development
operations
support
Speaker Notes
The continuous* movement took a holistic view on the entire software lifecycle, which includes
business strategy and planning,
development, and
operations. (and support)
Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and
Software, 123, pp.176-189.
“… every company is a technology company,
whether they know it or not
The DevOps Handbook
Kim, G., Debois, P., Willis, J. and Humble, J., 2016. The DevOps Handbook: How to Create World-Class
Agility, Reliability, and Security in Technology Organizations. IT Revolution.
continuous value delivery
Dingsøyr, T. and Lassenius, C., 2016. Emerging themes in agile software development: Introduction to the special
section on continuous value delivery. Information and Software Technology, 77, pp.56-60.
Speaker Notes
Value, a concept borrowed from lean can be viewed from two aspects, value to customers (and hence, business), and not
forgetting value to the people who worked in the company!
For example, job satisfaction, motivation, etc.
continuous *
win the war, not the battles
Speaker Notes
Continuous *
Win the war, not the battles
“...true continuous software engineering is more than adopting continuous delivery and continuous deployment. These are
merely techniques, but the ultimate goal is to take a holistic view of a software production entity, whether this be a single
software organization or an ecosystem where different organizations together deliver a final product.”
“Rather than focusing on winning these battles (i.e. successfully implementing such techniques), the holistic view that we
advocate is that of winning the war; in this case, to focus on pursuing the continuous * agenda and establish a holistic view
from customer to delivery.“
Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and
Software, 123, pp.176-189.
continuous *
the importance of culture and context
Speaker Notes
Continuous * - the importance of culture and context
For culture, “... there may also be a cultural tendency to assume that the status quo is the only possible way. Similar to what
could be observed in some lean transformations, a disbelief that “this could work here” may result in considerable
resistance to change within organizations. Womack and Jones have argued that a change agent is needed: “a
leader—someone who will take personal responsibility for change—is essential” (Womack and Jones, 2003 , p. 313). This
cultural change may very well be the most significant barrier to change.”
For context, “There are numerous dimensions in which contexts vary, for instance the business domain in which
organizations operate. The telecommunication sector is an example that depends on legacy systems that may be much
less amenable to a continuous software engineering approach. In such systems, rapid delivery of new functionality is a
major challenge, as there may be dozens of different interacting systems that together deliver hundreds of different services
to both internal and external customers…. In such domains, technology may also prove to be less suitable for a continuous
software engineering approach.“
“Software sourcing; the use of outsourcing of components or the use of commercial off-the-shelf (COTS) components are
very common approaches in numerous domains. Such dependency on software components produced elsewhere may
introduce additional challenges when aiming for delivering new software releases frequently.“
“Maybe … the problems of systems work are
not so much technological as sociological
Peopleware: Productive Projects and Teams
DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
“We’re mostly in the human communication
business.
Peopleware: Productive Projects and Teams
DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
continuous *
misplaced focus on speed
rather than continuity
Speaker Notes
From the entire technology value stream, we can observe that speed is not the only consideration we should focus upon but
also the continuity of the features and products we produced. To extend this concept, even the continuity of the business is
also a significant focal point in software development.
“A slower but more consistent
tortoise causes less waste
and is much more desirable
than the speedy hare who
races ahead and then stops
occasionally to doze.
Taiichi Ohno
Speaker Notes
Taiichi Ohno (1988) once said this,
“A slower but more consistent tortoise causes less waste and is much more desirable than the speedy hare who races
ahead and then stops occasionally to doze.”
He argued that only if all workers become tortoises, and referred here to the term ‘high-performance.’ His point was, “speed
is meaningless without continuity.”
Likewise for software engineering, we argue that achieving flow and continuity is much more important in first instance than
speed.
Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and
Software, 123, pp.176-189.
continuous *
the need of discontinuous
software engineering
Speaker Notes
Continuous *
the need of discontinuous software engineering is about the need of rapid change
“The point being made is that creativity and innovation require discontinuous thinking—in some cases an abrupt,
discontinuous change is needed rather than a gradual change; in lean terms: kaikaku, not kaizen. Undoubtedly, additional
value is often delivered through a series of incremental improvements, a path that can be compared to ‘kaizen.’ However,
there are cases where this path is no longer sustainable and more significant, abrupt changes are needed, very much
comparable to the ‘kaikaku’ phenomenon of radical change. Thus we see that while continuous * is a necessary evolution in
the software development field, it is not the only way that progress can be achieved.”
Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and
Software, 123, pp.176-189.
reflection in velocity
lead time.
Speaker Notes
Lead time.
The structuring of the development based on multiple small phases, with one or more development tickets (with each ticket
up to maximum of 3 man days) allowing us to shorten the lead time and time to market.
However, looking back the greater emphasis of features development causes reduced focus on tools and instrumentations.
It bit us.
We played Kanban board game, and tools and infrastructure tickets are joked as intangible tickets. By definition, hard to
quantify economic value and hence often ignored.
In reality the definition of intangibles,
Describes work items whose short-term economic value is hard to quantify but whose presence in the system is vital
to its health and performance in the longer term. Often applied to preventive maintenance, experiments, system
improvements, and so on. (Source: http://edu.leankanban.com/kanban-glossary-terms)
stability.
Speaker Notes
Stability.
Half baked CI/CD with little thoughts about minimal risk deployment.
We should have considered and implemented release strategies (or change management) that minimizes deployment risks,
e.g. Canary release, blue green deployment, feature toggle, etc.
Read more at https://martinfowler.com/tags/continuous%20delivery.html
“… roughly 70% of outages are due to
changes in a live system.
Site Reliability Engineering:
How Google Runs Production Systems
B. Beyer et al., 2016. Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media.
“Quality is free, but only to those who are
willing to pay heavily for it.
Peopleware: Productive Projects and Teams
DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
reflection in agility
process.
Speaker Notes
Processes are the elephant in the room.
However, if we use it based on culture and context, it makes lots of sense, and it helped us to be more productive.
“The manager’s function is not to make people
work, but to make it possible for people to
work.
Peopleware: Productive Projects and Teams
DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
design.
Speaker Notes
design.
Prototyping and technical document not only increase clarity in design, but also planning.
This enables us to reduce lead time, avoid major redesign and reimplementation of the feature.
Encourage accelerated discovery of major unanticipated issues.
Encourage us to fail fast.
On the contrary to popular belief, a proper drafted design does not contradict agility of the development.
Constant communication with product owner, chief architect and feature owner is vital.
“Rule of thumb in scheduling tasks … ⅓
planning, ⅙ coding, ¼ component test, ¼
system test.
The Mythical Man-Month
Brooks Jr, F.P., 1975. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley.
Speaker Notes
This is from an old book, dated 1975. However it is something worth to ponder upon.
Perhaps not sequential, but the aggregated time spent is actually still pretty valid.
Indeed, we spend most of the time on things other than coding.
coordination.
Speaker Notes
coordination.
It started with coordination. But we noticed it ended up to be task oriented instead of people oriented experience.
Ironically, both agile and lean focuses on human instead of process.
collaboration.
Speaker Notes
It is collaboration that we need to work on. A breakthrough is needed
mentorship.
Speaker Notes
mentorship.
One missing element from “collaboration”.
Not exactly a “title” kind of mentorship, but it is about the natural choice of response to any question raised.
Some guidelines through a discussion from my colleagues on mentorship.
- we don't give direct answer
- we guide and give tips
- always answer "read code" as first response
- we acknowledge time is an investment for both mentor and mentee
- understanding is a collective responsibility, just mere mentor, or mere mentee.
“Train people well enough so
they can leave, treat them well
enough so they don’t want to.
Richard Branson
@kiawin
print("thank you") .

Weitere ähnliche Inhalte

Was ist angesagt?

bryn.hrld.PIP-CV 10.5.5.d-scaled
bryn.hrld.PIP-CV 10.5.5.d-scaledbryn.hrld.PIP-CV 10.5.5.d-scaled
bryn.hrld.PIP-CV 10.5.5.d-scaledBryan D. Harold
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile ArchitectureSteve Green
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open sourceArnaud Porterie
 
Applying Systems Thinking to Solve Wicked Problems in Software Engineering
Applying Systems Thinking to Solve Wicked Problems in Software EngineeringApplying Systems Thinking to Solve Wicked Problems in Software Engineering
Applying Systems Thinking to Solve Wicked Problems in Software EngineeringMajed Ayyad
 
Role of the Agile Leader in Reconfiguring the Business
Role of the Agile Leader in Reconfiguring the BusinessRole of the Agile Leader in Reconfiguring the Business
Role of the Agile Leader in Reconfiguring the BusinessIsrael Gat
 
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwOSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwNETWAYS
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile ArchitectureThomas Malt
 
On going recruitment short version
On going recruitment short versionOn going recruitment short version
On going recruitment short versionFredrick Kariuki
 
Facilitative Leadership & Creative Problem Solving
Facilitative Leadership & Creative Problem SolvingFacilitative Leadership & Creative Problem Solving
Facilitative Leadership & Creative Problem SolvingIIBA UK Chapter
 
Overcoming cultural issues
Overcoming cultural issuesOvercoming cultural issues
Overcoming cultural issuesClay Nelson
 
The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) Laszlo Szalvay
 
Public Sector Agility Accelerator
Public Sector Agility AcceleratorPublic Sector Agility Accelerator
Public Sector Agility AcceleratorCraig Smith
 
Agility Accelerator
Agility AcceleratorAgility Accelerator
Agility AcceleratorCraig Smith
 
Agile Architecture Agile Dev Practices 2013 Keynote
Agile Architecture Agile Dev Practices 2013 KeynoteAgile Architecture Agile Dev Practices 2013 Keynote
Agile Architecture Agile Dev Practices 2013 KeynoteAdam Boczek
 
Business Value of CI, CD, & DevOps(Sec)
Business Value of CI, CD, & DevOps(Sec)Business Value of CI, CD, & DevOps(Sec)
Business Value of CI, CD, & DevOps(Sec)David Rico
 

Was ist angesagt? (16)

bryn.hrld.PIP-CV 10.5.5.d-scaled
bryn.hrld.PIP-CV 10.5.5.d-scaledbryn.hrld.PIP-CV 10.5.5.d-scaled
bryn.hrld.PIP-CV 10.5.5.d-scaled
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Building software: the lessons from open source
Building software: the lessons from open sourceBuilding software: the lessons from open source
Building software: the lessons from open source
 
Applying Systems Thinking to Solve Wicked Problems in Software Engineering
Applying Systems Thinking to Solve Wicked Problems in Software EngineeringApplying Systems Thinking to Solve Wicked Problems in Software Engineering
Applying Systems Thinking to Solve Wicked Problems in Software Engineering
 
Role of the Agile Leader in Reconfiguring the Business
Role of the Agile Leader in Reconfiguring the BusinessRole of the Agile Leader in Reconfiguring the Business
Role of the Agile Leader in Reconfiguring the Business
 
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de PauwOSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
OSDC 2019 | Feature Branching considered Evil by Thierry de Pauw
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile Architecture
 
On going recruitment short version
On going recruitment short versionOn going recruitment short version
On going recruitment short version
 
Facilitative Leadership & Creative Problem Solving
Facilitative Leadership & Creative Problem SolvingFacilitative Leadership & Creative Problem Solving
Facilitative Leadership & Creative Problem Solving
 
Overcoming cultural issues
Overcoming cultural issuesOvercoming cultural issues
Overcoming cultural issues
 
The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform)
 
The agile vision
The agile visionThe agile vision
The agile vision
 
Public Sector Agility Accelerator
Public Sector Agility AcceleratorPublic Sector Agility Accelerator
Public Sector Agility Accelerator
 
Agility Accelerator
Agility AcceleratorAgility Accelerator
Agility Accelerator
 
Agile Architecture Agile Dev Practices 2013 Keynote
Agile Architecture Agile Dev Practices 2013 KeynoteAgile Architecture Agile Dev Practices 2013 Keynote
Agile Architecture Agile Dev Practices 2013 Keynote
 
Business Value of CI, CD, & DevOps(Sec)
Business Value of CI, CD, & DevOps(Sec)Business Value of CI, CD, & DevOps(Sec)
Business Value of CI, CD, & DevOps(Sec)
 

Ähnlich wie Velocity. Agility. Python. (Pycon APAC 2017)

Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011atlantascrum
 
ICONIQ Analytics: The Modern Developer Technology Stack
ICONIQ Analytics: The Modern Developer Technology StackICONIQ Analytics: The Modern Developer Technology Stack
ICONIQ Analytics: The Modern Developer Technology StackChristine Edmonds
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Juraj Martinka
 
Aspects of the sustainability of software
Aspects of the sustainability of softwareAspects of the sustainability of software
Aspects of the sustainability of softwarePaul Walk
 
Winnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsWinnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsGene Kim
 
Agile Commissioning A Beginners View
Agile Commissioning   A Beginners ViewAgile Commissioning   A Beginners View
Agile Commissioning A Beginners ViewPeter Ashe
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOAAlberto Brandolini
 
Aufbau von agilen und effizienten IT Organisationen mit DevOps
Aufbau von agilen und effizienten IT Organisationen mit DevOpsAufbau von agilen und effizienten IT Organisationen mit DevOps
Aufbau von agilen und effizienten IT Organisationen mit DevOpsAWS Germany
 
Combining Speed of Delivery and Quality in Complex Systems
Combining Speed of Delivery and Quality in Complex SystemsCombining Speed of Delivery and Quality in Complex Systems
Combining Speed of Delivery and Quality in Complex SystemsManuel Pais
 
PMI Thailand: DevOps / Roles of Project Manager (20-May-2020)
PMI Thailand:   DevOps / Roles of Project Manager (20-May-2020)PMI Thailand:   DevOps / Roles of Project Manager (20-May-2020)
PMI Thailand: DevOps / Roles of Project Manager (20-May-2020)Gonzague PATINIER
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemGiovanni Asproni
 
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...zillesubhan
 
System Development Overview Assignment 3
System Development Overview Assignment 3System Development Overview Assignment 3
System Development Overview Assignment 3Ashley Fisher
 
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...Rauno De Pasquale
 
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...Dana Gardner
 

Ähnlich wie Velocity. Agility. Python. (Pycon APAC 2017) (20)

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
ROOTS2011 Continuous Delivery
ROOTS2011 Continuous DeliveryROOTS2011 Continuous Delivery
ROOTS2011 Continuous Delivery
 
Climbing the tree of unreachable fruits, reusing processes
Climbing the tree of unreachable fruits, reusing processesClimbing the tree of unreachable fruits, reusing processes
Climbing the tree of unreachable fruits, reusing processes
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 
ICONIQ Analytics: The Modern Developer Technology Stack
ICONIQ Analytics: The Modern Developer Technology StackICONIQ Analytics: The Modern Developer Technology Stack
ICONIQ Analytics: The Modern Developer Technology Stack
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
Aspects of the sustainability of software
Aspects of the sustainability of softwareAspects of the sustainability of software
Aspects of the sustainability of software
 
Winnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOpsWinnipeg ISACA Security is Dead, Rugged DevOps
Winnipeg ISACA Security is Dead, Rugged DevOps
 
Agile Commissioning A Beginners View
Agile Commissioning   A Beginners ViewAgile Commissioning   A Beginners View
Agile Commissioning A Beginners View
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOA
 
Aufbau von agilen und effizienten IT Organisationen mit DevOps
Aufbau von agilen und effizienten IT Organisationen mit DevOpsAufbau von agilen und effizienten IT Organisationen mit DevOps
Aufbau von agilen und effizienten IT Organisationen mit DevOps
 
Combining Speed of Delivery and Quality in Complex Systems
Combining Speed of Delivery and Quality in Complex SystemsCombining Speed of Delivery and Quality in Complex Systems
Combining Speed of Delivery and Quality in Complex Systems
 
PMI Thailand: DevOps / Roles of Project Manager (20-May-2020)
PMI Thailand:   DevOps / Roles of Project Manager (20-May-2020)PMI Thailand:   DevOps / Roles of Project Manager (20-May-2020)
PMI Thailand: DevOps / Roles of Project Manager (20-May-2020)
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
 
System Development Overview Assignment 3
System Development Overview Assignment 3System Development Overview Assignment 3
System Development Overview Assignment 3
 
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
DevOps Torino Meetup Group Kickoff Meeting - Why a meetup group on DevOps, wh...
 
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...
451’s Berkholz on How DevOps, Automation and Orchestration Combine for Contin...
 

Mehr von Sian Lerk Lau

Solving performance issues in Django ORM
Solving performance issues in Django ORMSolving performance issues in Django ORM
Solving performance issues in Django ORMSian Lerk Lau
 
The journey of an (un)orthodox optimization
The journey of an (un)orthodox optimizationThe journey of an (un)orthodox optimization
The journey of an (un)orthodox optimizationSian Lerk Lau
 
DevOps - Myth or Real
DevOps - Myth or RealDevOps - Myth or Real
DevOps - Myth or RealSian Lerk Lau
 
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)Sian Lerk Lau
 
Quality of life through Unit Testing
Quality of life through Unit TestingQuality of life through Unit Testing
Quality of life through Unit TestingSian Lerk Lau
 
Install Archlinux in 10 Steps (Sort of) :)
Install Archlinux in 10 Steps (Sort of) :)Install Archlinux in 10 Steps (Sort of) :)
Install Archlinux in 10 Steps (Sort of) :)Sian Lerk Lau
 

Mehr von Sian Lerk Lau (7)

Solving performance issues in Django ORM
Solving performance issues in Django ORMSolving performance issues in Django ORM
Solving performance issues in Django ORM
 
The journey of an (un)orthodox optimization
The journey of an (un)orthodox optimizationThe journey of an (un)orthodox optimization
The journey of an (un)orthodox optimization
 
DevOps - Myth or Real
DevOps - Myth or RealDevOps - Myth or Real
DevOps - Myth or Real
 
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
 
Python and you
Python and youPython and you
Python and you
 
Quality of life through Unit Testing
Quality of life through Unit TestingQuality of life through Unit Testing
Quality of life through Unit Testing
 
Install Archlinux in 10 Steps (Sort of) :)
Install Archlinux in 10 Steps (Sort of) :)Install Archlinux in 10 Steps (Sort of) :)
Install Archlinux in 10 Steps (Sort of) :)
 

Kürzlich hochgeladen

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Velocity. Agility. Python. (Pycon APAC 2017)

  • 5. velocity [vuh-los-i-tee] rate of change of its position with respect to time. a specification of its speed and direction of motion. Source: https://en.wikipedia.org/wiki/Velocity
  • 9. agility [uh-jil-i-tee] the ability to change the direction of the body in an efficient and effective manner which requires the integration of isolated movement skills using a combination of balance, coordination, speed, reflexes, strength, and endurance. Source: https://en.wikipedia.org/wiki/Agility
  • 11. python [pahy-thon] a family of nonvenomous snakes. Source: https://en.wikipedia.org/wiki/Python
  • 12.
  • 14. Speaker Notes Velocity. Agility. Python. Often there are conflicts of interest between velocity and agility of a project. Some see velocity as mere time taken to complete a task, whilst some see agility which requires quick response to change in meeting objectives of a task as a significant contributing factor behind delays. Being a python developer and an engineering process facilitator, I would like to share my journey in discovering the beauty of velocity and agility of continuous software delivery. In the end of this talk, I wish to lead all attendees to reflect on the engineering process and organisation culture in their respective workplace, to delivery quality python projects with velocity and agility in mind.
  • 16. Speaker Notes This is me For this session, we will do the following - Agile methods - What’s next - Reflection - Velocity and Agility
  • 19. Speaker Notes Software delivery? How many of you involved in the software delivery pipeline? It can be from business, products, all the way to the devs, ops, sec, testers etc.
  • 21. Speaker Notes agile? How many of you practices agile? Would you think agile is the way forward?
  • 23. Speaker Notes CI/CD? How many of you does continuous integration and/or deployment?
  • 24. agile methods in essence
  • 25. Speaker Notes Agile methodologies in essence shares several key characteristics. Yes. This summary may be controversial, but we’ll go in detail later why so.
  • 27. Speaker Notes Processes and best practices This is the part where people uses keywords such as Scrum, Kanban, CI/CD etc. More? unit test, behavioral test, functional tests, deployment pipeline, pair programming, configuration management, etc.
  • 29. Speaker Notes Coordination and communication We don’t work in silo, and I hope you don’t. Even if you work alone, high chances you are using python libraries, which in returns there will be a certain minimal interaction through online platforms (e.g. stackoverflow, github, etc). We work in team to leverage on collective strengths and collective knowledge sets.
  • 31. Speaker Notes It is all about life-long learning. Beyond that, it is also about fail safe, learn fast, and iterate. Experimentation is strongly encouraged, and we should chant by heart :)
  • 32. emergence of continuous * Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, pp.176-189.
  • 33. continuous * business strategy and planning development operations support
  • 34. Speaker Notes The continuous* movement took a holistic view on the entire software lifecycle, which includes business strategy and planning, development, and operations. (and support) Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, pp.176-189.
  • 35. “… every company is a technology company, whether they know it or not The DevOps Handbook Kim, G., Debois, P., Willis, J. and Humble, J., 2016. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution.
  • 36. continuous value delivery Dingsøyr, T. and Lassenius, C., 2016. Emerging themes in agile software development: Introduction to the special section on continuous value delivery. Information and Software Technology, 77, pp.56-60.
  • 37. Speaker Notes Value, a concept borrowed from lean can be viewed from two aspects, value to customers (and hence, business), and not forgetting value to the people who worked in the company! For example, job satisfaction, motivation, etc.
  • 38. continuous * win the war, not the battles
  • 39. Speaker Notes Continuous * Win the war, not the battles “...true continuous software engineering is more than adopting continuous delivery and continuous deployment. These are merely techniques, but the ultimate goal is to take a holistic view of a software production entity, whether this be a single software organization or an ecosystem where different organizations together deliver a final product.” “Rather than focusing on winning these battles (i.e. successfully implementing such techniques), the holistic view that we advocate is that of winning the war; in this case, to focus on pursuing the continuous * agenda and establish a holistic view from customer to delivery.“ Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, pp.176-189.
  • 40. continuous * the importance of culture and context
  • 41. Speaker Notes Continuous * - the importance of culture and context For culture, “... there may also be a cultural tendency to assume that the status quo is the only possible way. Similar to what could be observed in some lean transformations, a disbelief that “this could work here” may result in considerable resistance to change within organizations. Womack and Jones have argued that a change agent is needed: “a leader—someone who will take personal responsibility for change—is essential” (Womack and Jones, 2003 , p. 313). This cultural change may very well be the most significant barrier to change.” For context, “There are numerous dimensions in which contexts vary, for instance the business domain in which organizations operate. The telecommunication sector is an example that depends on legacy systems that may be much less amenable to a continuous software engineering approach. In such systems, rapid delivery of new functionality is a major challenge, as there may be dozens of different interacting systems that together deliver hundreds of different services to both internal and external customers…. In such domains, technology may also prove to be less suitable for a continuous software engineering approach.“ “Software sourcing; the use of outsourcing of components or the use of commercial off-the-shelf (COTS) components are very common approaches in numerous domains. Such dependency on software components produced elsewhere may introduce additional challenges when aiming for delivering new software releases frequently.“
  • 42. “Maybe … the problems of systems work are not so much technological as sociological Peopleware: Productive Projects and Teams DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
  • 43. “We’re mostly in the human communication business. Peopleware: Productive Projects and Teams DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
  • 44. continuous * misplaced focus on speed rather than continuity
  • 45. Speaker Notes From the entire technology value stream, we can observe that speed is not the only consideration we should focus upon but also the continuity of the features and products we produced. To extend this concept, even the continuity of the business is also a significant focal point in software development.
  • 46. “A slower but more consistent tortoise causes less waste and is much more desirable than the speedy hare who races ahead and then stops occasionally to doze. Taiichi Ohno
  • 47. Speaker Notes Taiichi Ohno (1988) once said this, “A slower but more consistent tortoise causes less waste and is much more desirable than the speedy hare who races ahead and then stops occasionally to doze.” He argued that only if all workers become tortoises, and referred here to the term ‘high-performance.’ His point was, “speed is meaningless without continuity.” Likewise for software engineering, we argue that achieving flow and continuity is much more important in first instance than speed. Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, pp.176-189.
  • 48. continuous * the need of discontinuous software engineering
  • 49. Speaker Notes Continuous * the need of discontinuous software engineering is about the need of rapid change “The point being made is that creativity and innovation require discontinuous thinking—in some cases an abrupt, discontinuous change is needed rather than a gradual change; in lean terms: kaikaku, not kaizen. Undoubtedly, additional value is often delivered through a series of incremental improvements, a path that can be compared to ‘kaizen.’ However, there are cases where this path is no longer sustainable and more significant, abrupt changes are needed, very much comparable to the ‘kaikaku’ phenomenon of radical change. Thus we see that while continuous * is a necessary evolution in the software development field, it is not the only way that progress can be achieved.” Fitzgerald, B. and Stol, K.J., 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, pp.176-189.
  • 52. Speaker Notes Lead time. The structuring of the development based on multiple small phases, with one or more development tickets (with each ticket up to maximum of 3 man days) allowing us to shorten the lead time and time to market. However, looking back the greater emphasis of features development causes reduced focus on tools and instrumentations. It bit us. We played Kanban board game, and tools and infrastructure tickets are joked as intangible tickets. By definition, hard to quantify economic value and hence often ignored. In reality the definition of intangibles, Describes work items whose short-term economic value is hard to quantify but whose presence in the system is vital to its health and performance in the longer term. Often applied to preventive maintenance, experiments, system improvements, and so on. (Source: http://edu.leankanban.com/kanban-glossary-terms)
  • 54. Speaker Notes Stability. Half baked CI/CD with little thoughts about minimal risk deployment. We should have considered and implemented release strategies (or change management) that minimizes deployment risks, e.g. Canary release, blue green deployment, feature toggle, etc. Read more at https://martinfowler.com/tags/continuous%20delivery.html
  • 55. “… roughly 70% of outages are due to changes in a live system. Site Reliability Engineering: How Google Runs Production Systems B. Beyer et al., 2016. Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media.
  • 56. “Quality is free, but only to those who are willing to pay heavily for it. Peopleware: Productive Projects and Teams DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
  • 59. Speaker Notes Processes are the elephant in the room. However, if we use it based on culture and context, it makes lots of sense, and it helped us to be more productive.
  • 60. “The manager’s function is not to make people work, but to make it possible for people to work. Peopleware: Productive Projects and Teams DeMarco, T. and Lister, T., 1987. Peopleware: productive projects and teams. Addison-Wesley.
  • 62. Speaker Notes design. Prototyping and technical document not only increase clarity in design, but also planning. This enables us to reduce lead time, avoid major redesign and reimplementation of the feature. Encourage accelerated discovery of major unanticipated issues. Encourage us to fail fast. On the contrary to popular belief, a proper drafted design does not contradict agility of the development. Constant communication with product owner, chief architect and feature owner is vital.
  • 63. “Rule of thumb in scheduling tasks … ⅓ planning, ⅙ coding, ¼ component test, ¼ system test. The Mythical Man-Month Brooks Jr, F.P., 1975. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley.
  • 64. Speaker Notes This is from an old book, dated 1975. However it is something worth to ponder upon. Perhaps not sequential, but the aggregated time spent is actually still pretty valid. Indeed, we spend most of the time on things other than coding.
  • 66. Speaker Notes coordination. It started with coordination. But we noticed it ended up to be task oriented instead of people oriented experience. Ironically, both agile and lean focuses on human instead of process.
  • 68. Speaker Notes It is collaboration that we need to work on. A breakthrough is needed
  • 70. Speaker Notes mentorship. One missing element from “collaboration”. Not exactly a “title” kind of mentorship, but it is about the natural choice of response to any question raised. Some guidelines through a discussion from my colleagues on mentorship. - we don't give direct answer - we guide and give tips - always answer "read code" as first response - we acknowledge time is an investment for both mentor and mentee - understanding is a collective responsibility, just mere mentor, or mere mentee.
  • 71. “Train people well enough so they can leave, treat them well enough so they don’t want to. Richard Branson