SlideShare a Scribd company logo
Ken DeLong
6/8/2015 1
Work History
• Chief Software Architect, VP of Engineering,
Babybcenter
• Director of Engineering, Illumina
• Principle Consultant, Valtech Technologies
• Senior Software Architect, GE
6/8/2015Footer Text 2
Activities
• Meetups
o East Bay Java Users Group
o Tri-Valley Technology Professionals Meetup (I have spoken at this one)
o Docker, Containers & Cloud Foundry PaaS East Bay Meetup
• Github
o A library of Spring interceptors to facilitate stability in high-load servers
o A JMX console for viewing mbeans in a browser
o From a previous life: a program to characterize ultrashort laser pulses using
iterative phase retrieval
o A DSL to create AWS environments with Gradle (project died when I found
Ansible and CloudFormation!)
o A fractal imaging demo program
• Blog
o http://www.jroller.com/kenwdelong
6/8/2015Footer Text 3
Favorite Books
• Software Craftsmanship, Sandro Mancuso
• Clean Code, Bob Martin
• Lean Software Development, Mary Poppendieck
• Test-Driven Development, David Astels
• Release It!, Michael Nygard
• Planning Extreme Programming, Kent Beck
• The Goal, Eliyahu Goldratt
6/8/2015Footer Text 4
My Strength
• I think my greatest strength is to understand the
long-term ROI of projects, large and small.
• To know when it’s a good idea to invest in doing
something right, or when the shortcut will be good
enough.
• My overall goal is to maintain a high ROI (features
built per hour worked) indefinitely
o You can’t do this if all the previous features you wrote keep breaking or
have bugs or made the software so complex that you can’t alter it safely.
o You can’t do this without some kind of automated testing.
o You can’t do this without monitoring and data from production.
o Most engineers are happy to sacrifice tomorrow’s ROI in order to “get this
feature out” quickly. This is a trap.
6/8/2015Footer Text 5
Software Engineering
• Over $75 billion is wasted each year on failed
software project in the US alone. – Standish Group
• Therefore, there is a huge amount of research on
how software development works, what the KPIs
are.
• However, the vast majority of practitioners are
nearly completely ignorant of this research.
o Therefore, they work by “intuition” and “seat-of-the-pants”, making the
same mistakes over and over.
o A lot of the research result are counter-intuitive.
o So, to get it right, you need to be aware of the principles and stick to them.
6/8/2015Footer Text 6
A Quote
• “Why do so many teams practice crisis-driven
development in horrible code bases?” – Ashley
Johnson, Industrial Logic
6/8/2015Footer Text 7
True Cost of Software
• We know: about 70-90% of the total cost of software
is maintenance.
• Therefore: Engineer it correctly. You can reduce
your costs, and increase your ROI, up to a factor of
10, instead of rushing it out.
• Complete a feature (done done) so that work on it
does not continue into the indefinite future
o Long after it no longer appears on the project schedule.
6/8/2015Footer Text 8
The Bottleneck
• We know: the bottleneck in software development
is learning, not typing.
• Therefore: optimize for learning.
o Code reviews
o Pair programming
o Group design sessions
o Refactor endlessly
6/8/2015Footer Text 9
Flow Accounting
• We know: ROI is best measured by flow accounting,
not cost accounting.
• Therefore: reduce WIP and optimize for cycle time
of finishing a work item.
o Use Scrum or Kanban
o Stop starting and start finishing
6/8/2015Footer Text 10
Communication
• We know: poor communication is a major factor in
failed software projects.
• Therefore: optimize for communication
o Co-location
o Explicit sprint planning and group design sessions
6/8/2015Footer Text 11
Clarity is ROI
• We know: poor requirements is another major factor
in failed software projects.
• I have seen project teams, and whole departments,
flail due to a lack of proper clarity and planning
upfront.
• Therefore: be sure you have clarity from all team
members before you start, even if it takes “too long”
o Sprint goals
o Project goals
o Department goals
• An aligned team is amazingly productive; an
unaligned team can waste astounding amounts of
time and money.
6/8/2015Footer Text 12
Quality is Speed
• We know: obsessive attention to quality is a major
factor in successful, and fast, software projects.
• High quality software is a great asset
• Low quality software can easily have a negative
ROI
o Software projects with identical requirements have been documented
with up to a factor of 200 difference in cost.
• Therefore: Attention to quality is one of the most
important things to ensure the future value of the
work.
6/8/2015Footer Text 13
Teams are Key
• We know: high-performing teams are far more
effective than groups of individuals. Yet
o Few people have experienced true team-based development
o Fewer still have been on high-performing teams
• Working as a team yields both higher-quality code
and people
• Therefore: treat the team as a team, not a group of
individuals.
o Do not “divide and conquer”.
o The team owns the responsibility.
o Hire team players.
6/8/2015Footer Text 14
Hire for Passion
• We know: we describe our best employees in terms
of ownership, passion, self-motivation, versatility.
o Yet we often recruit for resumes with bullet points.
• Therefore: recruit for those qualities. Look for
o Github account
o Contributions to open source
o Conferences attended
o List of favorite books
o Blog
o Meetups attended, or organized
o Presentations given
o Concrete evidence of technical curiosity
6/8/2015Footer Text 15
Hire the Best
• We know: the best developers have been
documented at 20-50 times more productive than
the worst.
o That means they do more in the first half of January than the least
productive do in a whole year. This is an astounding ratio.
• Therefore: hire the best. If they are 20X better, you
do not have to pay them 20X more. Maybe not
even 2X more.
6/8/2015Footer Text 16
Technical Debt
• Technical debt seems to last for about 3 years.
• Generally, the interest is about 200-400%/year
• Therefore: only deliberately incur technical debt if
you think it’s worth 200-400%/year for 3 years.
6/8/2015Footer Text 17
Cultural Debt
• Similarly, once a bad culture gets installed, it takes a
long time to fix.
• Therefore: keep on top of the culture and make
sure it evolves the way you want it.
6/8/2015Footer Text 18

More Related Content

What's hot

AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
Bert Jan Schrijver
 
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
DevOpsDays Tel Aviv
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
Sven Peters
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Bert Jan Schrijver
 
Telstra’s Journey to SAFe - RallyON - June 2013
Telstra’s Journey to SAFe - RallyON - June 2013Telstra’s Journey to SAFe - RallyON - June 2013
Telstra’s Journey to SAFe - RallyON - June 2013
Em Campbell-Pretty
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Bert Jan Schrijver
 
Product Development Process
Product Development ProcessProduct Development Process
Product Development Process
James Young
 
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Repeating the "Quality Debate" @ Agile Gurugram 2019 ConferenceRepeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Vishal Prasad
 
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
AgileNetwork
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
Sven Peters
 
Scale quality with kaizen - Tech.Rocks conference
Scale quality with kaizen - Tech.Rocks conferenceScale quality with kaizen - Tech.Rocks conference
Scale quality with kaizen - Tech.Rocks conference
Fabrice Bernhard
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
Bert Jan Schrijver
 
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
Bert Jan Schrijver
 
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
Bert Jan Schrijver
 
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix ItPHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
Matt Toigo
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
Bert Jan Schrijver
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
DicodingEvent
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Codemotion
 
The Tester’s Role in Agile Planning
The Tester’s Role in Agile PlanningThe Tester’s Role in Agile Planning
The Tester’s Role in Agile Planning
TechWell
 
The Phoenix Project DevOps Simulation - Paul Wilkinson
The Phoenix Project DevOps Simulation - Paul WilkinsonThe Phoenix Project DevOps Simulation - Paul Wilkinson
The Phoenix Project DevOps Simulation - Paul Wilkinson
Pink Elephant
 

What's hot (20)

AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
AmsterdamJUG September 2019 - Better software, faster: Principles of Continuo...
 
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
YOUR OPEN SOURCE PROJECT IS LIKE A STARTUP, TREAT IT LIKE ONE, EYAR ZILBERMAN...
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
 
Telstra’s Journey to SAFe - RallyON - June 2013
Telstra’s Journey to SAFe - RallyON - June 2013Telstra’s Journey to SAFe - RallyON - June 2013
Telstra’s Journey to SAFe - RallyON - June 2013
 
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
 
Product Development Process
Product Development ProcessProduct Development Process
Product Development Process
 
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Repeating the "Quality Debate" @ Agile Gurugram 2019 ConferenceRepeating the "Quality Debate" @ Agile Gurugram 2019 Conference
Repeating the "Quality Debate" @ Agile Gurugram 2019 Conference
 
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
Agile Gurugram 2019 Conferecne | A "Quality" Debate - Rethinking the mindset ...
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
 
Scale quality with kaizen - Tech.Rocks conference
Scale quality with kaizen - Tech.Rocks conferenceScale quality with kaizen - Tech.Rocks conference
Scale quality with kaizen - Tech.Rocks conference
 
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
 
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
 
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
JavaZone 2019 - Better software, faster: Principles of Continuous Delivery an...
 
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix ItPHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
The Tester’s Role in Agile Planning
The Tester’s Role in Agile PlanningThe Tester’s Role in Agile Planning
The Tester’s Role in Agile Planning
 
The Phoenix Project DevOps Simulation - Paul Wilkinson
The Phoenix Project DevOps Simulation - Paul WilkinsonThe Phoenix Project DevOps Simulation - Paul Wilkinson
The Phoenix Project DevOps Simulation - Paul Wilkinson
 

Viewers also liked

Lectura de la paradoja
Lectura de la paradojaLectura de la paradoja
Lectura de la paradoja
Yelitza Romero
 
Proceso de la lectura y escritura
Proceso de la lectura y escrituraProceso de la lectura y escritura
Proceso de la lectura y escritura
Jaime Javier Medina
 
Magic Media Overview
Magic Media OverviewMagic Media Overview
Magic Media Overview
FootfallCam
 
La paradoja
La paradojaLa paradoja
Maandbrief oktober 2014
Maandbrief oktober 2014Maandbrief oktober 2014
Maandbrief oktober 2014
vermeulenjoris
 
5 indrets de bcn1
5 indrets de bcn15 indrets de bcn1
5 indrets de bcn1
carlesgp54
 
Seresvivos 5ºprimaria
Seresvivos 5ºprimariaSeresvivos 5ºprimaria
Seresvivos 5ºprimariaLOPEZMOURENZA
 

Viewers also liked (8)

Lectura de la paradoja
Lectura de la paradojaLectura de la paradoja
Lectura de la paradoja
 
Proceso de la lectura y escritura
Proceso de la lectura y escrituraProceso de la lectura y escritura
Proceso de la lectura y escritura
 
Joseph
JosephJoseph
Joseph
 
Magic Media Overview
Magic Media OverviewMagic Media Overview
Magic Media Overview
 
La paradoja
La paradojaLa paradoja
La paradoja
 
Maandbrief oktober 2014
Maandbrief oktober 2014Maandbrief oktober 2014
Maandbrief oktober 2014
 
5 indrets de bcn1
5 indrets de bcn15 indrets de bcn1
5 indrets de bcn1
 
Seresvivos 5ºprimaria
Seresvivos 5ºprimariaSeresvivos 5ºprimaria
Seresvivos 5ºprimaria
 

Similar to WhoIsKenDeLong

Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"
Keith Boyd
 
Are we there yet? Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management toolsAre we there yet? Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management tools
Margot
 
Are we there yet? Rev up your productivity with project management tools
Are we there yet?  Rev up your productivity with project management toolsAre we there yet?  Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management tools
Annis Lee Adams
 
Software testing
Software testingSoftware testing
Software testing
Nico Heidtke
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Synerzip
 
Synerzip Agile Software Development
Synerzip Agile Software DevelopmentSynerzip Agile Software Development
Synerzip Agile Software Development
Synerzip
 
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with YouNUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
NUS-ISS
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
Alan Hood
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014
Pakorn Weecharungsan
 
Maintainable Machine Learning Products
Maintainable Machine Learning ProductsMaintainable Machine Learning Products
Maintainable Machine Learning Products
Andrew Musselman
 
Lean Approach for Agile Localization
Lean Approach for Agile LocalizationLean Approach for Agile Localization
Lean Approach for Agile Localization
Jari Herrgård
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
Luis Tineo
 
Bringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day Job
Ben Coe
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
Builtvisible
 
Why agile?
Why agile?Why agile?
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
Nitin Bhide
 
Interview preparation net_asp_csharp
Interview preparation net_asp_csharpInterview preparation net_asp_csharp
Interview preparation net_asp_csharp
Mallikarjuna G D
 
Why do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 editionWhy do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 edition
Indiginox
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps TransitionDOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
Gene Kim
 

Similar to WhoIsKenDeLong (20)

Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"Need to reboot your content creation strategy? Start with "No"
Need to reboot your content creation strategy? Start with "No"
 
Are we there yet? Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management toolsAre we there yet? Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management tools
 
Are we there yet? Rev up your productivity with project management tools
Are we there yet?  Rev up your productivity with project management toolsAre we there yet?  Rev up your productivity with project management tools
Are we there yet? Rev up your productivity with project management tools
 
Software testing
Software testingSoftware testing
Software testing
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Synerzip Agile Software Development
Synerzip Agile Software DevelopmentSynerzip Agile Software Development
Synerzip Agile Software Development
 
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with YouNUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
NUS-ISS Learning Day 2015 - Project Management - May the Agility be with You
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014
 
Maintainable Machine Learning Products
Maintainable Machine Learning ProductsMaintainable Machine Learning Products
Maintainable Machine Learning Products
 
Lean Approach for Agile Localization
Lean Approach for Agile LocalizationLean Approach for Agile Localization
Lean Approach for Agile Localization
 
DevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with MagentoDevOps, Performance Optimization and the Green Life with Magento
DevOps, Performance Optimization and the Green Life with Magento
 
Bringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day Job
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
 
Why agile?
Why agile?Why agile?
Why agile?
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Interview preparation net_asp_csharp
Interview preparation net_asp_csharpInterview preparation net_asp_csharp
Interview preparation net_asp_csharp
 
Why do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 editionWhy do mobile projects (still) fail - September 2014 edition
Why do mobile projects (still) fail - September 2014 edition
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps TransitionDOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
DOES15 - Randy Shoup - Ten (Hard-Won) Lessons of the DevOps Transition
 

WhoIsKenDeLong

  • 2. Work History • Chief Software Architect, VP of Engineering, Babybcenter • Director of Engineering, Illumina • Principle Consultant, Valtech Technologies • Senior Software Architect, GE 6/8/2015Footer Text 2
  • 3. Activities • Meetups o East Bay Java Users Group o Tri-Valley Technology Professionals Meetup (I have spoken at this one) o Docker, Containers & Cloud Foundry PaaS East Bay Meetup • Github o A library of Spring interceptors to facilitate stability in high-load servers o A JMX console for viewing mbeans in a browser o From a previous life: a program to characterize ultrashort laser pulses using iterative phase retrieval o A DSL to create AWS environments with Gradle (project died when I found Ansible and CloudFormation!) o A fractal imaging demo program • Blog o http://www.jroller.com/kenwdelong 6/8/2015Footer Text 3
  • 4. Favorite Books • Software Craftsmanship, Sandro Mancuso • Clean Code, Bob Martin • Lean Software Development, Mary Poppendieck • Test-Driven Development, David Astels • Release It!, Michael Nygard • Planning Extreme Programming, Kent Beck • The Goal, Eliyahu Goldratt 6/8/2015Footer Text 4
  • 5. My Strength • I think my greatest strength is to understand the long-term ROI of projects, large and small. • To know when it’s a good idea to invest in doing something right, or when the shortcut will be good enough. • My overall goal is to maintain a high ROI (features built per hour worked) indefinitely o You can’t do this if all the previous features you wrote keep breaking or have bugs or made the software so complex that you can’t alter it safely. o You can’t do this without some kind of automated testing. o You can’t do this without monitoring and data from production. o Most engineers are happy to sacrifice tomorrow’s ROI in order to “get this feature out” quickly. This is a trap. 6/8/2015Footer Text 5
  • 6. Software Engineering • Over $75 billion is wasted each year on failed software project in the US alone. – Standish Group • Therefore, there is a huge amount of research on how software development works, what the KPIs are. • However, the vast majority of practitioners are nearly completely ignorant of this research. o Therefore, they work by “intuition” and “seat-of-the-pants”, making the same mistakes over and over. o A lot of the research result are counter-intuitive. o So, to get it right, you need to be aware of the principles and stick to them. 6/8/2015Footer Text 6
  • 7. A Quote • “Why do so many teams practice crisis-driven development in horrible code bases?” – Ashley Johnson, Industrial Logic 6/8/2015Footer Text 7
  • 8. True Cost of Software • We know: about 70-90% of the total cost of software is maintenance. • Therefore: Engineer it correctly. You can reduce your costs, and increase your ROI, up to a factor of 10, instead of rushing it out. • Complete a feature (done done) so that work on it does not continue into the indefinite future o Long after it no longer appears on the project schedule. 6/8/2015Footer Text 8
  • 9. The Bottleneck • We know: the bottleneck in software development is learning, not typing. • Therefore: optimize for learning. o Code reviews o Pair programming o Group design sessions o Refactor endlessly 6/8/2015Footer Text 9
  • 10. Flow Accounting • We know: ROI is best measured by flow accounting, not cost accounting. • Therefore: reduce WIP and optimize for cycle time of finishing a work item. o Use Scrum or Kanban o Stop starting and start finishing 6/8/2015Footer Text 10
  • 11. Communication • We know: poor communication is a major factor in failed software projects. • Therefore: optimize for communication o Co-location o Explicit sprint planning and group design sessions 6/8/2015Footer Text 11
  • 12. Clarity is ROI • We know: poor requirements is another major factor in failed software projects. • I have seen project teams, and whole departments, flail due to a lack of proper clarity and planning upfront. • Therefore: be sure you have clarity from all team members before you start, even if it takes “too long” o Sprint goals o Project goals o Department goals • An aligned team is amazingly productive; an unaligned team can waste astounding amounts of time and money. 6/8/2015Footer Text 12
  • 13. Quality is Speed • We know: obsessive attention to quality is a major factor in successful, and fast, software projects. • High quality software is a great asset • Low quality software can easily have a negative ROI o Software projects with identical requirements have been documented with up to a factor of 200 difference in cost. • Therefore: Attention to quality is one of the most important things to ensure the future value of the work. 6/8/2015Footer Text 13
  • 14. Teams are Key • We know: high-performing teams are far more effective than groups of individuals. Yet o Few people have experienced true team-based development o Fewer still have been on high-performing teams • Working as a team yields both higher-quality code and people • Therefore: treat the team as a team, not a group of individuals. o Do not “divide and conquer”. o The team owns the responsibility. o Hire team players. 6/8/2015Footer Text 14
  • 15. Hire for Passion • We know: we describe our best employees in terms of ownership, passion, self-motivation, versatility. o Yet we often recruit for resumes with bullet points. • Therefore: recruit for those qualities. Look for o Github account o Contributions to open source o Conferences attended o List of favorite books o Blog o Meetups attended, or organized o Presentations given o Concrete evidence of technical curiosity 6/8/2015Footer Text 15
  • 16. Hire the Best • We know: the best developers have been documented at 20-50 times more productive than the worst. o That means they do more in the first half of January than the least productive do in a whole year. This is an astounding ratio. • Therefore: hire the best. If they are 20X better, you do not have to pay them 20X more. Maybe not even 2X more. 6/8/2015Footer Text 16
  • 17. Technical Debt • Technical debt seems to last for about 3 years. • Generally, the interest is about 200-400%/year • Therefore: only deliberately incur technical debt if you think it’s worth 200-400%/year for 3 years. 6/8/2015Footer Text 17
  • 18. Cultural Debt • Similarly, once a bad culture gets installed, it takes a long time to fix. • Therefore: keep on top of the culture and make sure it evolves the way you want it. 6/8/2015Footer Text 18