SlideShare a Scribd company logo
The Humble
Programmer
CraftConf 2021
Aslam Khan :: @aslamkhn
!
22 Nov 2000
CraftConf
now
1999
My company
22 Nov 2000
a few hours later
I’ve got responsibilities…
… clients, a team, projects !?
What do I
want?
What am I
doing?
CraftConf
now
When did this misalignment happen?
1992
My first job
1999
22 Nov 2000
University
1987
Somewhere in this time my focus shifted
from my vocation to my ambition
CraftConf
now
What alignment is needed and why?
This talk is a reflection of my observations in my quest to answer these difficult questions
CraftConf
now
What do I
want?
What am I
doing?
How do I
conduct
myself?
The answers affect each other
MY WAY OF
WORKING
WHAT I WANT
IN LIFE
MY DEFAULT
BEHAVIOUR
virtuous
or
vicious
Some value a purpose
that is bigger than themselves
Others pursue an ambition
for themselves alone
1st
WHAT YOU
WANT IN LIFE
observation
CraftConf
now
Ambition is an endlessly receding horizon
22 Nov 2000
PURPOSE
CraftConf
now
now
Problems are not anomalies in life
Hope is not a strategy
Work is not an option
A brain haemorrhage
PURPOSE
CraftConf
now
now
Value the outcome, not the effort
Know your role in achieving that outcome
Focus on impact, on usefulness
(Happiness is the side effect of being useful)
The industrial psychologist
Don’t quit in the abyss unless it really is the abyss
PURPOSE
CraftConf
now
now
The builders
Find the big picture and know where the boundaries lie
Build platforms, not ladders
PURPOSE
Leverage your daily work to feed your purpose
Teach because you can’t do this alone
Find the big picture and know where the boundaries lie
Problems are not anomalies in life
Hope is not a strategy
Don’t quit in the abyss unless it really is the abyss
Build platforms, not ladders
Leverage your daily work to feed your purpose
Know your role in achieving that outcome
Focus `on impact, on usefulness
Happiness is the side effect of being useful
Value the outcome, not the effort
Teach because you can’t do this alone
Work is not an option
The first way of the humble
programmer
Ambition is an endlessly receding horizon
(it is of limited use in our youth and impediment the longer we live)
Having purpose Playing long
purpose
over
ambition
Some lead with integrity
that facilitates others to be better than what they thought possible
Others perpetuate inequity
that subjugates many for the benefit of a few
YOUR DEFAULT
BEHAVIOUR
2nd
observation
CraftConf
now
Blacks for rent
INTEGRITY
Recognise your oppression and understand your oppressor
Have a sense of struggle, of history, of humor
Hold the line and know when to walk away
Be kind, be fair, care about doing good
CraftConf
now
now
Keep your feet grounded, especially in the face of success
Surround yourself with critics
Achieving success
Use your privilege to open space for others
Giving is a test of our relationship with others
Gratitude is the attention we pay to a deep privilege
INTEGRITY
CraftConf
now
now
Learn to take responsibility and hold yourself accountable
Don’t lie when you can’t speak the truth
People should leave your life better than when they entered
“This is not working out”
Find solace in your solitude
INTEGRITY
CraftConf
now
now
Offer solidarity over charity
If you can’t live your principles, don’t get out of bed
Don’t keep pretenses
“The people shall govern”
Heartache is how we naturally mature through caring for things
we cannot control
Friendship is the privilege of being a witness to a life, and in
return the equal privilege of being seen by another
Friendship
INTEGRITY
Find solace in your own solitude
Offer solidarity over charity
People should leave your life better than when they
entered
If you can’t live your principles, don’t get out of bed
Hold the line and know when to walk away
Don’t keep pretenses
Learn to take responsibility and hold yourself accountable
Each day offers opportunity to lead
Keep your feet grounded, especially in the face of success
Use your privilege to open space for others
Recognise your oppression and understand your
oppressor
Have a sense of struggle, of history, of humor
Be kind, be fair, care about doing good
Surround yourself with critics
Don’t lie when you can’t speak the truth
Giving is a test of our relationship with others
Gratitude is the immense attention given a deep privilege
Heartache is how we naturally mature through caring for
things we cannot control
Friendship is the privilege of being a witness to a life, and
equally the privilege of being seen by another
The second way of the humble
programmer
over
inequity
Practicing integrity Leading humanely
integrity
over
inequity
Some make meaningful contributions
by leveraging their privilege
Others promote their fame
that negates the contribution of many
YOUR WAY OF
WORKING 3rd
observation
now
now
Turning a company around
Plan to be fast and act faster, decisively
Build new things carefully, at pace and with stability
Tear down broken things fast, very fast
Decisions involve making tradeoffs
Nothing is free
Look for the relationship and name it
CONTRIBUTION
Pick reasonable constraints and don’t try
shifting what is immovable
now
now
Turning a company around
CONTRIBUTION
The ability to hold conflicting ideas in
your head is exhausting
Most things don’t affect us as much as we fear
There is always some part in your control and more that is not
We need clarity of mind to solving a problem
Listen to your emotions and make decisions with logic
CraftConf
now
The HIV/AIDS Pandemic
The user determines the value
The user creates the context
CONTRIBUTION
CraftConf
now
Ignorance and confusion can be powerful instruments
Look from different vantage points; angles and distances
Housing a nation
CONTRIBUTION
now
The higher the abstraction, the freer it is of context
Power to the working class
CONTRIBUTION
now
“Can you build a portal?”
Don’t ponder answers to badly framed questions
CONTRIBUTION
Most things don’t affect us as much as we fear
There is always some part in your control and more that is not
Listen to your emotions and make decisions with logic
Pick reasonable constraints and don’t try shifting what is
immovable
Decisions involve making tradeoffs
The best option is often the hardest
Plan to be fast and act faster, decisively
Nothing is free
Ignorance and confusion can be powerful instruments
We need clarity of mind to solving a problem
Look for the relationships, not just the objects (name it!)
The ability to hold conflicting ideas in your head is exhausting
Don’t ponder answers to badly framed questions
Look from different vantage points; angles and distances
The third way of the humble
programmer
Seeking understanding Making decisions
Building (things of) value
The user determines the value
The user creates the context
The higher the abstraction, the freer it is of context
Build new things carefully, at pace and with stability
Tear down broken things fast, very fast
over
inequity
over
fame
contribution
CONTRIBUTION
seeking understanding
making decisions
building (things of) value
PURPOSE
having purpose
playing long
INTEGRITY
practicing integrity
leading humanely
Why?
I have a
!
!
a full stack developer…
CraftConf
now
The last (and only) time I was a full stack developer
Born
Shared file based databases
Single threaded, text user interfaces
Mixture of C and some 4GL
Procedural programming
early 1990’s
1969
The technology was easy enough to understand
The architecture fitted in my head
The code fitted in my head
I cannot fit the code in my head
I have to make many more design decisions
“
CraftConf
now
“
“The competent programmer is fully aware of the
strictly limited size of [his] skull;
therefore …
“
[he] approaches the programming task
in full humility,
and among other things [he]
avoids clever tricks like the plague”
— E.W. Dijkstra
The Humble Programmer
ACM Turing Lecture, 1972
https://www.slideshare.net/SusanneKaiser3/preparing-for-a-future-microservices-journey-using-ddd-wardley-maps
Is it even possible to be an
effective full stack developer?
There weren’t many
programmers
We have more
pizza than programmers!
We now build systems of systems
that are designed to change the
behaviour of many people
(sometimes entire societies)
What has changed?
We wrote programs that solved a
set of reasonable computational
problems for a relatively small
number of users
We cannot expect society to
tolerate our ineffectiveness and
nor should we tolerate it ourselves
We don’t have a choice but to be
more effective developers
We are expensive at best
and wasteful at worst
The way of the humble
programmer
CONTRIBUTION
seeking understanding
making decisions
building (things of) value
PURPOSE
having purpose
playing long
INTEGRITY
practicing integrity
leading humanely
effective
Seeking understanding
1. Ignorance and confusion can be powerful instruments
2. We need clarity of mind to solving a problem
3. Look for the relationship and name it
4. The ability to hold conflicting ideas in your head is exhausting
5. Don’t ponder answers to badly framed questions
6. Look from different vantage points; angles and distances
Making decisions
7. Most things don’t affect us as much as we fear
8. There is always some part in your control and more that is not
9. Listen to your emotions and make decisions with logic
10. Pick reasonable constraints and don’t try shifting what is immovable
11. Decisions involve making tradeoffs
12. The best option is often the hardest
13. Plan to be fast and act faster, decisively
14. Nothing is free
Building (things of) value
15. The user determines the value
16. The user creates the context
17. The higher the abstraction, the freer it is of context
18. Build new things carefully, at pace and with stability
19. Tear down broken things fast, very fast
The List
PURPOSE
INTEGRITY
CONTRIBUTION
Having purpose
39.Leverage your daily work to feed your purpose
40.Know your role in achieving that outcome
41. Focus on impact, on usefulness
42. Happiness is the side effect of being useful
43.Value the outcome, not the effort
44. Teach because you can’t do this alone
Playing long
45.Find the big picture and know where the boundaries lie
46.Problems are not anomalies
47. Hope is not a strategy
48.Work is not an option
49.Don’t quit in the abyss unless it is really the abyss
50.Build platforms, not ladders
51. Ambition is an endlessly receding horizon
Practicing integrity
20.Keeping your feet on the ground is difficult, especially in the face of
success
21. Use your privilege to open space for others
22. Recognise your oppression and understand your oppressor
23.Have a sense of struggle, of history, of humor
24. Be kind, be fair, care about doing good
25.Surround yourself with critics
26.Don’t lie when you can’t speak the truth
27. Giving is a test of our relationship to others
28.Gratitude is the immense attention we pay to a deep privilege
29.Heartbreak is how we naturally mature through caring for things we
cannot control
30.Friendship is the privilege of being a witness to a life, and equally the
privilege of being seen by another
Leading humanely
31. Find solace in your own solitude
32.Offer solidarity over charity
33.People should leave your life better than when they entered
34.If you can’t live your principles, don’t get out of bed
35.Hold the line and know when to walk away
36.Don’t keep pretenses
37. Learn to take responsibility and hold yourself accountable
38.Each day offers opportunity to lead
The older you become,
the more you have that you can look upon,
and the further ahead you can see
integrity
purpose contribution
Thank you for your attention
over
fame
over
ambition
over
inequity
The slide design is used under a Creative Commons Attribution license from www.slidescarnival.com
what I want how I behave what I do

More Related Content

What's hot

Negotiations: Separate the People from the Problem
Negotiations: Separate the People from the ProblemNegotiations: Separate the People from the Problem
Negotiations: Separate the People from the Problem
John Cousins
 
Conflict Mgmt (4) White
Conflict Mgmt (4) WhiteConflict Mgmt (4) White
Conflict Mgmt (4) White
MartyB
 
GE372 Week Four Shortened
GE372    Week Four ShortenedGE372    Week Four Shortened
GE372 Week Four ShortenedComp Class
 
Handling Difficult Conversations
Handling Difficult ConversationsHandling Difficult Conversations
Handling Difficult Conversations
4Good.org
 
Invent Options for Mutual Gain
Invent Options for Mutual GainInvent Options for Mutual Gain
Invent Options for Mutual Gain
John Cousins
 
Become a Better Negotiator: Getting Past No
Become a Better Negotiator: Getting Past NoBecome a Better Negotiator: Getting Past No
Become a Better Negotiator: Getting Past No
MBA ASAP
 
Dialogue for Organizational Performance
Dialogue for Organizational PerformanceDialogue for Organizational Performance
Dialogue for Organizational Performance
Conroy Fourie
 
Personal Development and Professionalism
Personal Development and ProfessionalismPersonal Development and Professionalism
Personal Development and Professionalism
Abu Zafor Md. Shaleah
 
SOCIAL STYLE & Getting to Yes
SOCIAL STYLE & Getting to YesSOCIAL STYLE & Getting to Yes
SOCIAL STYLE & Getting to YesThe TRACOM Group
 
Getting To Yes Excerpt
Getting To Yes ExcerptGetting To Yes Excerpt
Getting To Yes Excerpt
Martijn Sjoorda
 
Leaders effective meeting masterclass full ppt
Leaders effective meeting masterclass full ppt Leaders effective meeting masterclass full ppt
Leaders effective meeting masterclass full ppt
prugell
 
Conflict webinar 2 communication 7 25 12
Conflict webinar 2 communication 7 25 12Conflict webinar 2 communication 7 25 12
Conflict webinar 2 communication 7 25 12
Jlindstr
 
Getting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
Getting to Yes! Negotiating Agreement Without Giving In - Summary - MemoGetting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
Getting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
Justin Fenwick
 
Playing Nice In The Sandbox (Project Phoenix)
Playing Nice In The Sandbox (Project Phoenix)Playing Nice In The Sandbox (Project Phoenix)
Playing Nice In The Sandbox (Project Phoenix)
Dan Wiseman
 
Difficult Conversations
Difficult ConversationsDifficult Conversations
Difficult Conversations
Jeffrey Russell
 
Webinar series 3 conflict+
Webinar series 3 conflict+Webinar series 3 conflict+
Webinar series 3 conflict+
Jlindstr
 

What's hot (19)

Negotiations: Separate the People from the Problem
Negotiations: Separate the People from the ProblemNegotiations: Separate the People from the Problem
Negotiations: Separate the People from the Problem
 
Conflict Mgmt (4) White
Conflict Mgmt (4) WhiteConflict Mgmt (4) White
Conflict Mgmt (4) White
 
GE372 Week Four Shortened
GE372    Week Four ShortenedGE372    Week Four Shortened
GE372 Week Four Shortened
 
Handling Difficult Conversations
Handling Difficult ConversationsHandling Difficult Conversations
Handling Difficult Conversations
 
Invent Options for Mutual Gain
Invent Options for Mutual GainInvent Options for Mutual Gain
Invent Options for Mutual Gain
 
Become a Better Negotiator: Getting Past No
Become a Better Negotiator: Getting Past NoBecome a Better Negotiator: Getting Past No
Become a Better Negotiator: Getting Past No
 
Dialogue for Organizational Performance
Dialogue for Organizational PerformanceDialogue for Organizational Performance
Dialogue for Organizational Performance
 
2
22
2
 
Personal Development and Professionalism
Personal Development and ProfessionalismPersonal Development and Professionalism
Personal Development and Professionalism
 
SOCIAL STYLE & Getting to Yes
SOCIAL STYLE & Getting to YesSOCIAL STYLE & Getting to Yes
SOCIAL STYLE & Getting to Yes
 
Getting To Yes Excerpt
Getting To Yes ExcerptGetting To Yes Excerpt
Getting To Yes Excerpt
 
Leaders effective meeting masterclass full ppt
Leaders effective meeting masterclass full ppt Leaders effective meeting masterclass full ppt
Leaders effective meeting masterclass full ppt
 
Conflict webinar 2 communication 7 25 12
Conflict webinar 2 communication 7 25 12Conflict webinar 2 communication 7 25 12
Conflict webinar 2 communication 7 25 12
 
Conflict Resolution 07302015
Conflict Resolution 07302015Conflict Resolution 07302015
Conflict Resolution 07302015
 
Getting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
Getting to Yes! Negotiating Agreement Without Giving In - Summary - MemoGetting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
Getting to Yes! Negotiating Agreement Without Giving In - Summary - Memo
 
Playing Nice In The Sandbox (Project Phoenix)
Playing Nice In The Sandbox (Project Phoenix)Playing Nice In The Sandbox (Project Phoenix)
Playing Nice In The Sandbox (Project Phoenix)
 
I Think2412 20120414
I Think2412 20120414I Think2412 20120414
I Think2412 20120414
 
Difficult Conversations
Difficult ConversationsDifficult Conversations
Difficult Conversations
 
Webinar series 3 conflict+
Webinar series 3 conflict+Webinar series 3 conflict+
Webinar series 3 conflict+
 

Similar to The Humble Programmer

Organic Communication - De-Escalating Conflict
Organic Communication - De-Escalating ConflictOrganic Communication - De-Escalating Conflict
Organic Communication - De-Escalating Conflict
Lee K. Broekman
 
Clifton strengths 34 report
Clifton strengths 34 reportClifton strengths 34 report
Clifton strengths 34 report
David Carter
 
Working with difficult people
Working with difficult peopleWorking with difficult people
Working with difficult peopleSugata Chowdhuri
 
How to win at work
How to win at workHow to win at work
How to win at work
Candy Bernhardt
 
Secrets Of Winning Ways
Secrets Of Winning WaysSecrets Of Winning Ways
Secrets Of Winning Ways
Saima Aamir Mallick
 
Applying positive psychology at work
Applying positive psychology at workApplying positive psychology at work
Applying positive psychology at workGabriel Benavente
 
How to Create Healthy Boundaries
How to Create Healthy BoundariesHow to Create Healthy Boundaries
How to Create Healthy Boundaries
Marina Dawson
 
4WaysCollegeCareerCounselorsCanDoMoreWithLess
 4WaysCollegeCareerCounselorsCanDoMoreWithLess 4WaysCollegeCareerCounselorsCanDoMoreWithLess
4WaysCollegeCareerCounselorsCanDoMoreWithLess
CAREEREALISM
 
Content Conceptial
Content ConceptialContent Conceptial
Content Conceptial
Rajendra Kumar
 
Team work & performance
Team work & performanceTeam work & performance
Team work & performance
Mohamad Abd Rabbo
 
This App Won't Work on My O/S - Deliver 2016
This App Won't Work on My O/S - Deliver 2016This App Won't Work on My O/S - Deliver 2016
This App Won't Work on My O/S - Deliver 2016
Sue Johnston, MBA + a bunch of other stuff
 
Stephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for ChangeStephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for Change
AgileNZ Conference
 
Communication and conflict resolution skills
Communication and conflict resolution skillsCommunication and conflict resolution skills
Communication and conflict resolution skills
Qatar Charity
 
Negotiation
NegotiationNegotiation
Negotiationimrohan1
 
20091007 [Ab] Interpersonal Relations
20091007   [Ab]   Interpersonal Relations20091007   [Ab]   Interpersonal Relations
20091007 [Ab] Interpersonal Relations
viswanadham vangapally
 
Negotiation skills
Negotiation skillsNegotiation skills
Negotiation skills
Train Brain Solutions Pvt. Ltd
 
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...Amy Hartman
 
Leading to difficult people
Leading to difficult peopleLeading to difficult people
Leading to difficult people
Jed Concepcion
 
Thinking Points
Thinking PointsThinking Points
Collaboration at-ease
Collaboration at-easeCollaboration at-ease
Collaboration at-ease
Madhumita Mantri
 

Similar to The Humble Programmer (20)

Organic Communication - De-Escalating Conflict
Organic Communication - De-Escalating ConflictOrganic Communication - De-Escalating Conflict
Organic Communication - De-Escalating Conflict
 
Clifton strengths 34 report
Clifton strengths 34 reportClifton strengths 34 report
Clifton strengths 34 report
 
Working with difficult people
Working with difficult peopleWorking with difficult people
Working with difficult people
 
How to win at work
How to win at workHow to win at work
How to win at work
 
Secrets Of Winning Ways
Secrets Of Winning WaysSecrets Of Winning Ways
Secrets Of Winning Ways
 
Applying positive psychology at work
Applying positive psychology at workApplying positive psychology at work
Applying positive psychology at work
 
How to Create Healthy Boundaries
How to Create Healthy BoundariesHow to Create Healthy Boundaries
How to Create Healthy Boundaries
 
4WaysCollegeCareerCounselorsCanDoMoreWithLess
 4WaysCollegeCareerCounselorsCanDoMoreWithLess 4WaysCollegeCareerCounselorsCanDoMoreWithLess
4WaysCollegeCareerCounselorsCanDoMoreWithLess
 
Content Conceptial
Content ConceptialContent Conceptial
Content Conceptial
 
Team work & performance
Team work & performanceTeam work & performance
Team work & performance
 
This App Won't Work on My O/S - Deliver 2016
This App Won't Work on My O/S - Deliver 2016This App Won't Work on My O/S - Deliver 2016
This App Won't Work on My O/S - Deliver 2016
 
Stephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for ChangeStephanie Cooper - Genuine Curiosity - Conversations for Change
Stephanie Cooper - Genuine Curiosity - Conversations for Change
 
Communication and conflict resolution skills
Communication and conflict resolution skillsCommunication and conflict resolution skills
Communication and conflict resolution skills
 
Negotiation
NegotiationNegotiation
Negotiation
 
20091007 [Ab] Interpersonal Relations
20091007   [Ab]   Interpersonal Relations20091007   [Ab]   Interpersonal Relations
20091007 [Ab] Interpersonal Relations
 
Negotiation skills
Negotiation skillsNegotiation skills
Negotiation skills
 
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...
Commando Diplomacy:Building Skills and Tolerance for Having Difficult Convers...
 
Leading to difficult people
Leading to difficult peopleLeading to difficult people
Leading to difficult people
 
Thinking Points
Thinking PointsThinking Points
Thinking Points
 
Collaboration at-ease
Collaboration at-easeCollaboration at-ease
Collaboration at-ease
 

More from Aslam Khan

Experiments in Reasoning
Experiments in ReasoningExperiments in Reasoning
Experiments in Reasoning
Aslam Khan
 
Do we care rubyfuza 2019
Do we care   rubyfuza 2019Do we care   rubyfuza 2019
Do we care rubyfuza 2019
Aslam Khan
 
Agile Rabbit Holes
Agile Rabbit HolesAgile Rabbit Holes
Agile Rabbit Holes
Aslam Khan
 
Puppet for Human Beings (NOT!)
Puppet for Human Beings (NOT!)Puppet for Human Beings (NOT!)
Puppet for Human Beings (NOT!)
Aslam Khan
 
How to get open data into the hands of activists
How to get open data into the hands of activistsHow to get open data into the hands of activists
How to get open data into the hands of activists
Aslam Khan
 
Beyond Apartheid and Democracy
Beyond Apartheid and DemocracyBeyond Apartheid and Democracy
Beyond Apartheid and Democracy
Aslam Khan
 
Not Quite Object Oriented
Not Quite Object OrientedNot Quite Object Oriented
Not Quite Object Oriented
Aslam Khan
 
Lean in Software Development
Lean in Software DevelopmentLean in Software Development
Lean in Software Development
Aslam Khan
 
Product Ownership - Leaders of Agile Webinar
Product Ownership - Leaders of Agile WebinarProduct Ownership - Leaders of Agile Webinar
Product Ownership - Leaders of Agile Webinar
Aslam Khan
 
Yet another building metaphor
Yet another building metaphorYet another building metaphor
Yet another building metaphor
Aslam Khan
 
Being in a State of REST
Being in a State of RESTBeing in a State of REST
Being in a State of REST
Aslam Khan
 
Practical Scrum with Kent Beck (SD Times Webinar)
Practical Scrum with Kent Beck (SD Times Webinar)Practical Scrum with Kent Beck (SD Times Webinar)
Practical Scrum with Kent Beck (SD Times Webinar)
Aslam Khan
 
Collaboration: TRC
Collaboration: TRCCollaboration: TRC
Collaboration: TRCAslam Khan
 

More from Aslam Khan (13)

Experiments in Reasoning
Experiments in ReasoningExperiments in Reasoning
Experiments in Reasoning
 
Do we care rubyfuza 2019
Do we care   rubyfuza 2019Do we care   rubyfuza 2019
Do we care rubyfuza 2019
 
Agile Rabbit Holes
Agile Rabbit HolesAgile Rabbit Holes
Agile Rabbit Holes
 
Puppet for Human Beings (NOT!)
Puppet for Human Beings (NOT!)Puppet for Human Beings (NOT!)
Puppet for Human Beings (NOT!)
 
How to get open data into the hands of activists
How to get open data into the hands of activistsHow to get open data into the hands of activists
How to get open data into the hands of activists
 
Beyond Apartheid and Democracy
Beyond Apartheid and DemocracyBeyond Apartheid and Democracy
Beyond Apartheid and Democracy
 
Not Quite Object Oriented
Not Quite Object OrientedNot Quite Object Oriented
Not Quite Object Oriented
 
Lean in Software Development
Lean in Software DevelopmentLean in Software Development
Lean in Software Development
 
Product Ownership - Leaders of Agile Webinar
Product Ownership - Leaders of Agile WebinarProduct Ownership - Leaders of Agile Webinar
Product Ownership - Leaders of Agile Webinar
 
Yet another building metaphor
Yet another building metaphorYet another building metaphor
Yet another building metaphor
 
Being in a State of REST
Being in a State of RESTBeing in a State of REST
Being in a State of REST
 
Practical Scrum with Kent Beck (SD Times Webinar)
Practical Scrum with Kent Beck (SD Times Webinar)Practical Scrum with Kent Beck (SD Times Webinar)
Practical Scrum with Kent Beck (SD Times Webinar)
 
Collaboration: TRC
Collaboration: TRCCollaboration: TRC
Collaboration: TRC
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 

The Humble Programmer

  • 3. CraftConf now 1999 My company 22 Nov 2000 a few hours later I’ve got responsibilities… … clients, a team, projects !?
  • 4. What do I want? What am I doing?
  • 5. CraftConf now When did this misalignment happen? 1992 My first job 1999 22 Nov 2000 University 1987 Somewhere in this time my focus shifted from my vocation to my ambition
  • 6. CraftConf now What alignment is needed and why? This talk is a reflection of my observations in my quest to answer these difficult questions CraftConf now
  • 7. What do I want? What am I doing? How do I conduct myself?
  • 8. The answers affect each other MY WAY OF WORKING WHAT I WANT IN LIFE MY DEFAULT BEHAVIOUR virtuous or vicious
  • 9. Some value a purpose that is bigger than themselves Others pursue an ambition for themselves alone 1st WHAT YOU WANT IN LIFE observation
  • 10. CraftConf now Ambition is an endlessly receding horizon 22 Nov 2000 PURPOSE
  • 11. CraftConf now now Problems are not anomalies in life Hope is not a strategy Work is not an option A brain haemorrhage PURPOSE
  • 12. CraftConf now now Value the outcome, not the effort Know your role in achieving that outcome Focus on impact, on usefulness (Happiness is the side effect of being useful) The industrial psychologist Don’t quit in the abyss unless it really is the abyss PURPOSE
  • 13. CraftConf now now The builders Find the big picture and know where the boundaries lie Build platforms, not ladders PURPOSE Leverage your daily work to feed your purpose Teach because you can’t do this alone
  • 14. Find the big picture and know where the boundaries lie Problems are not anomalies in life Hope is not a strategy Don’t quit in the abyss unless it really is the abyss Build platforms, not ladders Leverage your daily work to feed your purpose Know your role in achieving that outcome Focus `on impact, on usefulness Happiness is the side effect of being useful Value the outcome, not the effort Teach because you can’t do this alone Work is not an option The first way of the humble programmer Ambition is an endlessly receding horizon (it is of limited use in our youth and impediment the longer we live) Having purpose Playing long purpose over ambition
  • 15. Some lead with integrity that facilitates others to be better than what they thought possible Others perpetuate inequity that subjugates many for the benefit of a few YOUR DEFAULT BEHAVIOUR 2nd observation
  • 16. CraftConf now Blacks for rent INTEGRITY Recognise your oppression and understand your oppressor Have a sense of struggle, of history, of humor Hold the line and know when to walk away Be kind, be fair, care about doing good
  • 17. CraftConf now now Keep your feet grounded, especially in the face of success Surround yourself with critics Achieving success Use your privilege to open space for others Giving is a test of our relationship with others Gratitude is the attention we pay to a deep privilege INTEGRITY
  • 18. CraftConf now now Learn to take responsibility and hold yourself accountable Don’t lie when you can’t speak the truth People should leave your life better than when they entered “This is not working out” Find solace in your solitude INTEGRITY
  • 19. CraftConf now now Offer solidarity over charity If you can’t live your principles, don’t get out of bed Don’t keep pretenses “The people shall govern” Heartache is how we naturally mature through caring for things we cannot control Friendship is the privilege of being a witness to a life, and in return the equal privilege of being seen by another Friendship INTEGRITY
  • 20. Find solace in your own solitude Offer solidarity over charity People should leave your life better than when they entered If you can’t live your principles, don’t get out of bed Hold the line and know when to walk away Don’t keep pretenses Learn to take responsibility and hold yourself accountable Each day offers opportunity to lead Keep your feet grounded, especially in the face of success Use your privilege to open space for others Recognise your oppression and understand your oppressor Have a sense of struggle, of history, of humor Be kind, be fair, care about doing good Surround yourself with critics Don’t lie when you can’t speak the truth Giving is a test of our relationship with others Gratitude is the immense attention given a deep privilege Heartache is how we naturally mature through caring for things we cannot control Friendship is the privilege of being a witness to a life, and equally the privilege of being seen by another The second way of the humble programmer over inequity Practicing integrity Leading humanely integrity over inequity
  • 21. Some make meaningful contributions by leveraging their privilege Others promote their fame that negates the contribution of many YOUR WAY OF WORKING 3rd observation
  • 22. now now Turning a company around Plan to be fast and act faster, decisively Build new things carefully, at pace and with stability Tear down broken things fast, very fast Decisions involve making tradeoffs Nothing is free Look for the relationship and name it CONTRIBUTION Pick reasonable constraints and don’t try shifting what is immovable
  • 23. now now Turning a company around CONTRIBUTION The ability to hold conflicting ideas in your head is exhausting Most things don’t affect us as much as we fear There is always some part in your control and more that is not We need clarity of mind to solving a problem Listen to your emotions and make decisions with logic
  • 24. CraftConf now The HIV/AIDS Pandemic The user determines the value The user creates the context CONTRIBUTION
  • 25. CraftConf now Ignorance and confusion can be powerful instruments Look from different vantage points; angles and distances Housing a nation CONTRIBUTION
  • 26. now The higher the abstraction, the freer it is of context Power to the working class CONTRIBUTION
  • 27. now “Can you build a portal?” Don’t ponder answers to badly framed questions CONTRIBUTION
  • 28. Most things don’t affect us as much as we fear There is always some part in your control and more that is not Listen to your emotions and make decisions with logic Pick reasonable constraints and don’t try shifting what is immovable Decisions involve making tradeoffs The best option is often the hardest Plan to be fast and act faster, decisively Nothing is free Ignorance and confusion can be powerful instruments We need clarity of mind to solving a problem Look for the relationships, not just the objects (name it!) The ability to hold conflicting ideas in your head is exhausting Don’t ponder answers to badly framed questions Look from different vantage points; angles and distances The third way of the humble programmer Seeking understanding Making decisions Building (things of) value The user determines the value The user creates the context The higher the abstraction, the freer it is of context Build new things carefully, at pace and with stability Tear down broken things fast, very fast over inequity over fame contribution
  • 29. CONTRIBUTION seeking understanding making decisions building (things of) value PURPOSE having purpose playing long INTEGRITY practicing integrity leading humanely Why?
  • 31. ! a full stack developer…
  • 32. CraftConf now The last (and only) time I was a full stack developer Born Shared file based databases Single threaded, text user interfaces Mixture of C and some 4GL Procedural programming early 1990’s 1969 The technology was easy enough to understand The architecture fitted in my head The code fitted in my head
  • 33. I cannot fit the code in my head I have to make many more design decisions “ CraftConf now
  • 34. “ “The competent programmer is fully aware of the strictly limited size of [his] skull; therefore …
  • 35. “ [he] approaches the programming task in full humility, and among other things [he] avoids clever tricks like the plague” — E.W. Dijkstra The Humble Programmer ACM Turing Lecture, 1972
  • 37. There weren’t many programmers We have more pizza than programmers!
  • 38. We now build systems of systems that are designed to change the behaviour of many people (sometimes entire societies) What has changed? We wrote programs that solved a set of reasonable computational problems for a relatively small number of users
  • 39. We cannot expect society to tolerate our ineffectiveness and nor should we tolerate it ourselves We don’t have a choice but to be more effective developers We are expensive at best and wasteful at worst
  • 40. The way of the humble programmer CONTRIBUTION seeking understanding making decisions building (things of) value PURPOSE having purpose playing long INTEGRITY practicing integrity leading humanely effective
  • 41. Seeking understanding 1. Ignorance and confusion can be powerful instruments 2. We need clarity of mind to solving a problem 3. Look for the relationship and name it 4. The ability to hold conflicting ideas in your head is exhausting 5. Don’t ponder answers to badly framed questions 6. Look from different vantage points; angles and distances Making decisions 7. Most things don’t affect us as much as we fear 8. There is always some part in your control and more that is not 9. Listen to your emotions and make decisions with logic 10. Pick reasonable constraints and don’t try shifting what is immovable 11. Decisions involve making tradeoffs 12. The best option is often the hardest 13. Plan to be fast and act faster, decisively 14. Nothing is free Building (things of) value 15. The user determines the value 16. The user creates the context 17. The higher the abstraction, the freer it is of context 18. Build new things carefully, at pace and with stability 19. Tear down broken things fast, very fast The List PURPOSE INTEGRITY CONTRIBUTION Having purpose 39.Leverage your daily work to feed your purpose 40.Know your role in achieving that outcome 41. Focus on impact, on usefulness 42. Happiness is the side effect of being useful 43.Value the outcome, not the effort 44. Teach because you can’t do this alone Playing long 45.Find the big picture and know where the boundaries lie 46.Problems are not anomalies 47. Hope is not a strategy 48.Work is not an option 49.Don’t quit in the abyss unless it is really the abyss 50.Build platforms, not ladders 51. Ambition is an endlessly receding horizon Practicing integrity 20.Keeping your feet on the ground is difficult, especially in the face of success 21. Use your privilege to open space for others 22. Recognise your oppression and understand your oppressor 23.Have a sense of struggle, of history, of humor 24. Be kind, be fair, care about doing good 25.Surround yourself with critics 26.Don’t lie when you can’t speak the truth 27. Giving is a test of our relationship to others 28.Gratitude is the immense attention we pay to a deep privilege 29.Heartbreak is how we naturally mature through caring for things we cannot control 30.Friendship is the privilege of being a witness to a life, and equally the privilege of being seen by another Leading humanely 31. Find solace in your own solitude 32.Offer solidarity over charity 33.People should leave your life better than when they entered 34.If you can’t live your principles, don’t get out of bed 35.Hold the line and know when to walk away 36.Don’t keep pretenses 37. Learn to take responsibility and hold yourself accountable 38.Each day offers opportunity to lead
  • 42. The older you become, the more you have that you can look upon, and the further ahead you can see
  • 43. integrity purpose contribution Thank you for your attention over fame over ambition over inequity The slide design is used under a Creative Commons Attribution license from www.slidescarnival.com what I want how I behave what I do