SlideShare a Scribd company logo
1 of 33
Ten Ways to Accelerate
Software Development
Dave Thomas
YOW! Nights HK
11 May 2017
Dave made a
comment that with
every release of
one of the products
he worked on, the
target is 15% less
code even with new
features.
Dave mentioned
Conway’s Law –
how the
organization is
organized will be
reflected in the
software and its
architecture.
Dave’s comment:
Writing code should be
the last resort. Vary
behavior with data and
flow.
This is the basics of creating an
environment to enable high
performance.
Create ranged
estimates (pessimistic,
optimistic, likely).
“Single point estimates
are for fools.”
Points are training
wheels. The business
estimates with time
and money.
3 point estimates
create risk windows,
likely outcomes thus
increasing
predictability of
estimates.
Use low fidelity
prototypes to test and
iterate quickly.
High fidelity
prototypes are a
waste.
Architects who are
“post-code” (don’t
code) don’t provide
value.
Dave recommends
learning Erlang and the
OTP library as a way of
learning microservices
and distributed design.
If storing data in a
datalake, make sure its
in binary format. Text /
Json exponentionally
increase disk / network
/ cpu bandwidth
required to process and
slows down the system.
Use Structured binary
formats. Newer / better
than google protocol
buffers, etc.
“NoSQL won’t exist by
2020. SQL DBs already
support columnar data
and allows queries.”
Having all your
data in memory
solves many
problems. Don’t
need to cache,
process, etc.
New memory
technology allows
non-volative, high
quantity storage
(e.g. 1TB in
memory)
Vary behavior
through data rather
than implement
logic in code.
State machines are
underused. Simplifies
many issues with
distribution and
events if have well
defined state machine.
Use spreadsheet
concept to define
business rules, to be
interpreted and
executed.
Changes to system
don’t require code
changes, just data.
Kent Beck (Yes – the
founder of XP), rebuilt
that 100 dev project
with 2 people and
small talk (now ported
to java)
Create queryable
APIs, minimizes
need to create
many APIs.
Dave commented that if
you only remember one
thing from today’s
session, it’s Property
Based Testing.
My personal notes:
• General theme is to simplify
the issue before solving it.
• Find the simplest solutions, it
reduces complexity, less effort
to implement, easier to
maintain and generally higher
quality.
• Think data and flows first,
then code.
• Functional design (lambdas)
are able to solve problems
more simply than OO, for the
right kind of problems.
• Test automation should be 30-
50% of the code. What slows
down development is not
enough testing, testing is the
constraint.

More Related Content

Similar to 10 ways to accelerate software development by dave thomas at yow! nights hk

Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018  Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018 Codemotion
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015Christopher Curtin
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpTony Bibbs
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Enkitec
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni SoftwareengineeringTony Bibbs
 
Connecting Online Business Software 101 (B2B)
Connecting Online Business Software 101 (B2B)Connecting Online Business Software 101 (B2B)
Connecting Online Business Software 101 (B2B)Anant Corporation
 
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
 
Thinking Outside the Cube: How In-Memory Bolsters Analytics
Thinking Outside the Cube: How In-Memory Bolsters AnalyticsThinking Outside the Cube: How In-Memory Bolsters Analytics
Thinking Outside the Cube: How In-Memory Bolsters AnalyticsInside Analysis
 
Big Data
Big DataBig Data
Big DataNGDATA
 
Alphabet soup deployment
Alphabet soup deploymentAlphabet soup deployment
Alphabet soup deploymentStephen Rose
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentMichael Denomy
 
HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesAymen EL Amri
 
Database Development: The Object-oriented and Test-driven Way
Database Development: The Object-oriented and Test-driven WayDatabase Development: The Object-oriented and Test-driven Way
Database Development: The Object-oriented and Test-driven WayTechWell
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Andrey Karpov
 
Jon cohn exton pa corporate data architecture
Jon cohn exton pa   corporate data architectureJon cohn exton pa   corporate data architecture
Jon cohn exton pa corporate data architectureJon Cohn
 
MongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesMongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesHadi Ariawan
 
Class 7: Introduction to web technology entrepreneurship
Class 7: Introduction to web technology entrepreneurshipClass 7: Introduction to web technology entrepreneurship
Class 7: Introduction to web technology entrepreneurshipallanchao
 
Building a Testable Data Access Layer
Building a Testable Data Access LayerBuilding a Testable Data Access Layer
Building a Testable Data Access LayerTodd Anglin
 

Similar to 10 ways to accelerate software development by dave thomas at yow! nights hk (20)

Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018  Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018
Daniel Cerecedo | From legacy to cloud... and beyond | Codemotion Madrid 2018
 
Architecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons LearnedArchitecting a Large Software Project - Lessons Learned
Architecting a Large Software Project - Lessons Learned
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
 
Old Is the New New
Old Is the New NewOld Is the New New
Old Is the New New
 
Connecting Online Business Software 101 (B2B)
Connecting Online Business Software 101 (B2B)Connecting Online Business Software 101 (B2B)
Connecting Online Business Software 101 (B2B)
 
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...
 
Thinking Outside the Cube: How In-Memory Bolsters Analytics
Thinking Outside the Cube: How In-Memory Bolsters AnalyticsThinking Outside the Cube: How In-Memory Bolsters Analytics
Thinking Outside the Cube: How In-Memory Bolsters Analytics
 
Big Data
Big DataBig Data
Big Data
 
Alphabet soup deployment
Alphabet soup deploymentAlphabet soup deployment
Alphabet soup deployment
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best Practices
 
Database Development: The Object-oriented and Test-driven Way
Database Development: The Object-oriented and Test-driven WayDatabase Development: The Object-oriented and Test-driven Way
Database Development: The Object-oriented and Test-driven Way
 
Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++Development of resource-intensive applications in Visual C++
Development of resource-intensive applications in Visual C++
 
Jon cohn exton pa corporate data architecture
Jon cohn exton pa   corporate data architectureJon cohn exton pa   corporate data architecture
Jon cohn exton pa corporate data architecture
 
MongoDB Schema Design by Examples
MongoDB Schema Design by ExamplesMongoDB Schema Design by Examples
MongoDB Schema Design by Examples
 
Class 7: Introduction to web technology entrepreneurship
Class 7: Introduction to web technology entrepreneurshipClass 7: Introduction to web technology entrepreneurship
Class 7: Introduction to web technology entrepreneurship
 
Building a Testable Data Access Layer
Building a Testable Data Access LayerBuilding a Testable Data Access Layer
Building a Testable Data Access Layer
 

More from Tze Chin Tang

Remote Work Tips & Tricks
Remote Work Tips & TricksRemote Work Tips & Tricks
Remote Work Tips & TricksTze Chin Tang
 
What is business agility?
What is business agility?What is business agility?
What is business agility?Tze Chin Tang
 
Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Tze Chin Tang
 
Avoiding Fragile Agile: Making Change Stick
Avoiding Fragile Agile: Making Change StickAvoiding Fragile Agile: Making Change Stick
Avoiding Fragile Agile: Making Change StickTze Chin Tang
 
Collaboration - What the Req? Building things together is tough!
Collaboration - What the Req? Building things together is tough!Collaboration - What the Req? Building things together is tough!
Collaboration - What the Req? Building things together is tough!Tze Chin Tang
 
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015Tze Chin Tang
 
Why is agile so !@#$ing difficult but it's worth it!
Why is agile so !@#$ing difficult but it's worth it!Why is agile so !@#$ing difficult but it's worth it!
Why is agile so !@#$ing difficult but it's worth it!Tze Chin Tang
 
Scrum-ban: Time-boxes and flow
Scrum-ban: Time-boxes and flowScrum-ban: Time-boxes and flow
Scrum-ban: Time-boxes and flowTze Chin Tang
 

More from Tze Chin Tang (10)

Remote Work Tips & Tricks
Remote Work Tips & TricksRemote Work Tips & Tricks
Remote Work Tips & Tricks
 
What is business agility?
What is business agility?What is business agility?
What is business agility?
 
State of Agile 2017
State of Agile 2017State of Agile 2017
State of Agile 2017
 
Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...Software Characterization & Performance Testing - Beat Your Software with a S...
Software Characterization & Performance Testing - Beat Your Software with a S...
 
Avoiding Fragile Agile: Making Change Stick
Avoiding Fragile Agile: Making Change StickAvoiding Fragile Agile: Making Change Stick
Avoiding Fragile Agile: Making Change Stick
 
Collaboration - What the Req? Building things together is tough!
Collaboration - What the Req? Building things together is tough!Collaboration - What the Req? Building things together is tough!
Collaboration - What the Req? Building things together is tough!
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015
Product management in the Enterprise ByRyan Duguid - agile malaysia june 2015
 
Why is agile so !@#$ing difficult but it's worth it!
Why is agile so !@#$ing difficult but it's worth it!Why is agile so !@#$ing difficult but it's worth it!
Why is agile so !@#$ing difficult but it's worth it!
 
Scrum-ban: Time-boxes and flow
Scrum-ban: Time-boxes and flowScrum-ban: Time-boxes and flow
Scrum-ban: Time-boxes and flow
 

Recently uploaded

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
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
 
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...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

10 ways to accelerate software development by dave thomas at yow! nights hk

  • 1. Ten Ways to Accelerate Software Development Dave Thomas YOW! Nights HK 11 May 2017
  • 2.
  • 3.
  • 4.
  • 5. Dave made a comment that with every release of one of the products he worked on, the target is 15% less code even with new features. Dave mentioned Conway’s Law – how the organization is organized will be reflected in the software and its architecture.
  • 6.
  • 7. Dave’s comment: Writing code should be the last resort. Vary behavior with data and flow.
  • 8. This is the basics of creating an environment to enable high performance.
  • 9.
  • 10.
  • 11. Create ranged estimates (pessimistic, optimistic, likely). “Single point estimates are for fools.” Points are training wheels. The business estimates with time and money.
  • 12. 3 point estimates create risk windows, likely outcomes thus increasing predictability of estimates.
  • 13.
  • 14.
  • 15. Use low fidelity prototypes to test and iterate quickly. High fidelity prototypes are a waste.
  • 16. Architects who are “post-code” (don’t code) don’t provide value.
  • 17. Dave recommends learning Erlang and the OTP library as a way of learning microservices and distributed design.
  • 18. If storing data in a datalake, make sure its in binary format. Text / Json exponentionally increase disk / network / cpu bandwidth required to process and slows down the system. Use Structured binary formats. Newer / better than google protocol buffers, etc. “NoSQL won’t exist by 2020. SQL DBs already support columnar data and allows queries.”
  • 19.
  • 20. Having all your data in memory solves many problems. Don’t need to cache, process, etc. New memory technology allows non-volative, high quantity storage (e.g. 1TB in memory)
  • 21. Vary behavior through data rather than implement logic in code.
  • 22.
  • 23. State machines are underused. Simplifies many issues with distribution and events if have well defined state machine.
  • 24. Use spreadsheet concept to define business rules, to be interpreted and executed. Changes to system don’t require code changes, just data.
  • 25. Kent Beck (Yes – the founder of XP), rebuilt that 100 dev project with 2 people and small talk (now ported to java)
  • 27.
  • 28.
  • 29. Dave commented that if you only remember one thing from today’s session, it’s Property Based Testing.
  • 30.
  • 31.
  • 32.
  • 33. My personal notes: • General theme is to simplify the issue before solving it. • Find the simplest solutions, it reduces complexity, less effort to implement, easier to maintain and generally higher quality. • Think data and flows first, then code. • Functional design (lambdas) are able to solve problems more simply than OO, for the right kind of problems. • Test automation should be 30- 50% of the code. What slows down development is not enough testing, testing is the constraint.