SlideShare a Scribd company logo
1 of 42
© 2022 Thoughtworks | Confidential
By
Thoughtworks
1
© 2022 Thoughtworks | Confidential
By Thoughtworks
Reviving the art of software
design
2
Is
the single biggest contributor
to your organisation's
codebases?
"the quick brown fox
jumps over the lazy
dog"
export function
isPangram(sentence) {
return new Set(sentence
.toLowerCase()
.replace(/[^a-z]/g,
'')
).size === 26
"the quick brown fox
jumps over the lazy
dog"
Pangram.isPangram(
) // => true
wwthere are reasonsww
design is still important
w we are responsible w
change starts small
we're bad at design
Why we
care
(including obligatory awkward audience participation)
Source:
martinfowler.com/bliki/DesignStaminaHypothesis.html
Good design saves
time
Source:
martinfowler.com/bliki/DesignStaminaHypothesis.html
Good design saves
time
Source:
martinfowler.com/bliki/DesignStaminaHypothesis.html
Good design saves
time
Source:
martinfowler.com/bliki/DesignStaminaHypothesis.html
Good design saves
time
Distributed systems
design is complex
Monolithic
Service-oriented
Microservices
Serverless
Distributed systems
design is complex
Monolithic
Service-oriented
Microservices
Serverless
Inside
the box
design
Distributed systems
design is complex
Monolithic
Service-oriented
Microservices
Serverless
Inside
the box
design
Outside
the box
design
Distributed systems
design is complex
Monolithic
Service-oriented
Microservices
Serverless
Inside
the box
design
Outside
the box
design
Why we care
How did
we end up
here?
Larger toolsets make
mastery harder
How did we end up here
Larger toolsets make
mastery harder
How did we end up here
Source: cncf.io
Larger toolsets make
mastery harder
How did we end up here
Source: cncf.io
Monolithic
Service-oriented
Microservices
Serverless
“Less code” led to less
attention to design
How did we end up here
Monolithic
Service-oriented
Microservices
Serverless
“Less code” led to less
attention to design
average
codebase
size
↓
How did we end up here
Outsourcing of design
atrophied our skills
How did we end up here
Outsourcing of design
atrophied our skills
How did we end up here
Outsourcing of design
atrophied our skills
How did we end up here
Outsourcing of design
atrophied our skills
How did we end up here
Outsourcing of design
atrophied our skills
How did we end up here
Startup mindsets
normalised breaking things
How did we end up here
Startup mindsets
normalised breaking things
How did we end up here
What
can
we do?
● "Less code" led to less attention to design
● Outsourcing of design atrophied our skills
● Larger toolsets make mastery harder
● Startup mindsets normalised breaking things
To afford (more)
time
for design...
What can we do
Don't be a feature
factory
What can we do
To allow us to
focus on
fewer tools...
What can we do
Constrain technology
options
What can we do
To raise awareness
around
good software design ...
What can we do
Rediscover the classics
What can we do
To embed knowledge
using
practical experience ...
What can we do
Practice with intent
exercism.io
freeCodeCamp.org
leetcode.com
rosettacode.org
architecturalkatas.com
What can we do
To know if
the correct design decisions
are being made...
What can we do
Verify your design
describe "Observability" do
it "streams metrics" do
expect(service.has_metrics()).to
be(true)
end
it "has parseable logs" do
expect(service.has_logs()).to be(true)
end
end
Credit: https://www.thoughtworks.com/en-au/insights/articles/fitness-function-driven-development
What can we do
with fitness functions
Summary
Good design saves
time
Distributed
systems design is
complex
Why we care How did we end up
here?
What we can do?
Constrain
technology options
Rediscover the
classics
Don't be a feature
factory
Verify your design
Practice with intent
In summary...
“Less code” led to
less attention to
design
Outsourcing of
design atrophied our
skills
Larger codebases
make mastery harder
Startup mindsets
made us break
things
“Make it work,
Make it right,
Make it fast”
- Kent Beck

More Related Content

Similar to By Thoughtworks | Reviving the art of software design with Andy Marks and Pam Rucinque

Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Chad Udell
 
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Rien van den Bosch
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile ArchitectureSteve Green
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bddKim Carter
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Holger Bartel
 
Functional requirements: Thinking Like A Pirate
Functional requirements: Thinking Like A PirateFunctional requirements: Thinking Like A Pirate
Functional requirements: Thinking Like A PirateAmye Scavarda
 
729 Solutions Helps Connect The Dots - Our Services At A Glance
729 Solutions Helps Connect The Dots - Our Services At A Glance729 Solutions Helps Connect The Dots - Our Services At A Glance
729 Solutions Helps Connect The Dots - Our Services At A GlanceIron Mountain
 
Interact 4 0 pim gss - v4
Interact 4 0   pim gss - v4Interact 4 0   pim gss - v4
Interact 4 0 pim gss - v4Odyssey
 
Adobe analytics - playbook
Adobe analytics - playbookAdobe analytics - playbook
Adobe analytics - playbookBaijnath Gupta
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnugoeran
 
Prototyping Approaches and Outcomes
Prototyping Approaches and OutcomesPrototyping Approaches and Outcomes
Prototyping Approaches and OutcomesDevbridge Group
 
IxDA October Event: Prototyping Approaches and Outcomes
IxDA October Event: Prototyping Approaches and OutcomesIxDA October Event: Prototyping Approaches and Outcomes
IxDA October Event: Prototyping Approaches and OutcomesIxDA Chicago
 
LLAMA Intro to Agile May 2019 Download
LLAMA Intro to Agile May 2019 DownloadLLAMA Intro to Agile May 2019 Download
LLAMA Intro to Agile May 2019 DownloadTorranceLearning
 
McrFRED talk 25/09/2014
McrFRED talk 25/09/2014McrFRED talk 25/09/2014
McrFRED talk 25/09/2014Jake Smith
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 

Similar to By Thoughtworks | Reviving the art of software design with Andy Marks and Pam Rucinque (20)

Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
 
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
Brand Commerce - We all know the shiny stuff at the front. But what magic is ...
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bdd
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015
 
Functional requirements: Thinking Like A Pirate
Functional requirements: Thinking Like A PirateFunctional requirements: Thinking Like A Pirate
Functional requirements: Thinking Like A Pirate
 
729 Solutions Helps Connect The Dots - Our Services At A Glance
729 Solutions Helps Connect The Dots - Our Services At A Glance729 Solutions Helps Connect The Dots - Our Services At A Glance
729 Solutions Helps Connect The Dots - Our Services At A Glance
 
Interact 4 0 pim gss - v4
Interact 4 0   pim gss - v4Interact 4 0   pim gss - v4
Interact 4 0 pim gss - v4
 
Adobe analytics - playbook
Adobe analytics - playbookAdobe analytics - playbook
Adobe analytics - playbook
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
 
Manifesto
ManifestoManifesto
Manifesto
 
Agile Ucd
Agile UcdAgile Ucd
Agile Ucd
 
Prototyping Approaches and Outcomes
Prototyping Approaches and OutcomesPrototyping Approaches and Outcomes
Prototyping Approaches and Outcomes
 
IxDA October Event: Prototyping Approaches and Outcomes
IxDA October Event: Prototyping Approaches and OutcomesIxDA October Event: Prototyping Approaches and Outcomes
IxDA October Event: Prototyping Approaches and Outcomes
 
LLAMA Intro to Agile May 2019 Download
LLAMA Intro to Agile May 2019 DownloadLLAMA Intro to Agile May 2019 Download
LLAMA Intro to Agile May 2019 Download
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
McrFRED talk 25/09/2014
McrFRED talk 25/09/2014McrFRED talk 25/09/2014
McrFRED talk 25/09/2014
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

By Thoughtworks | Reviving the art of software design with Andy Marks and Pam Rucinque

Editor's Notes

  1. List of pangrams -> https://clagnut.com/blog/2380/
  2. Tornhill, A, Borg, MCode Red: The Business Impact of Code Quality - a Quantitative Study of 39 Proprietary Production Codebases. In Proceedings of the International Conference on Technical Debt 2022 (pp. 11–20). Association for Computing Machinery. @inproceedings{10.1145/3524843.3528091, author = {Tornhill, Adam and Borg, Markus}, title = {Code Red: The Business Impact of Code Quality - a Quantitative Study of 39 Proprietary Production Codebases}, year = {2022}, isbn = {9781450393041}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3524843.3528091}, doi = {10.1145/3524843.3528091}, abstract = {Code quality remains an abstract concept that fails to get traction at the business level. Consequently, software companies keep trading code quality for time-to-market and new features. The resulting technical debt is estimated to waste up to 42% of developers' time. At the same time, there is a global shortage of software developers, meaning that developer productivity is key to software businesses. Our overall mission is to make code quality a business concern, not just a technical aspect. Our first goal is to understand how code quality impacts 1) the number of reported defects, 2) the time to resolve issues, and 3) the predictability of resolving issues on time. We analyze 39 proprietary production codebases from a variety of domains using the CodeScene tool based on a combination of source code analysis, version-control mining, and issue information from Jira. By analyzing activity in 30,737 files, we find that low quality code contains 15 times more defects than high quality code. Furthermore, resolving issues in low quality code takes on average 124% more time in development. Finally, we report that issue resolutions in low quality code involve higher uncertainty manifested as 9 times longer maximum cycle times. This study provides evidence that code quality cannot be dismissed as a technical concern. With 15 times fewer defects, twice the development speed, and substantially more predictable issue resolution times, the business advantage of high quality code should be unmistakably clear.}, booktitle = {Proceedings of the International Conference on Technical Debt}, pages = {11–20}, numpages = {10}, keywords = {developer productivity, code quality, technical debt, software defects, business impact, mining software repositories}, location = {Pittsburgh, Pennsylvania}, series = {TechDebt '22} }
  3. Our industry has moved towards distributed systems designing for distributed systems is hard, extra considerations engineers earlier in their careers are making decisions that were exclusive to more experienced developers or architects. In a monolithic architecture, all the layers of a feature live inside the box Some outside the box decisions Surface area of software design has shrunk, architecture surface area has expanded. More outside the box design decisions to make, more people involved Design mistakes are going to happen, we’re human. that’s how we learn but A mistake in a distributed architecture, is a distributed mistake, harder to diagnose and rectify
  4. Our industry has moved towards distributed systems designing for distributed systems is hard, extra considerations engineers earlier in their careers are making decisions that were exclusive to more experienced developers or architects. In a monolithic architecture, all the layers of a feature live inside the box Some outside the box decisions Surface area of software design has shrunk, architecture surface area has expanded. More outside the box design decisions to make, more people involved Design mistakes are going to happen, we’re human. that’s how we learn but A mistake in a distributed architecture, is a distributed mistake, harder to diagnose and rectify
  5. Our industry has moved towards distributed systems designing for distributed systems is hard, extra considerations engineers earlier in their careers are making decisions that were exclusive to more experienced developers or architects. In a monolithic architecture, all the layers of a feature live inside the box Some outside the box decisions Surface area of software design has shrunk, architecture surface area has expanded. More outside the box design decisions to make, more people involved Design mistakes are going to happen, we’re human. that’s how we learn but A mistake in a distributed architecture, is a distributed mistake, harder to diagnose and rectify
  6. Our industry has moved towards distributed systems designing for distributed systems is hard, extra considerations engineers earlier in their careers are making decisions that were exclusive to more experienced developers or architects. In a monolithic architecture, all the layers of a feature live inside the box Some outside the box decisions Surface area of software design has shrunk, architecture surface area has expanded. More outside the box design decisions to make, more people involved Design mistakes are going to happen, we’re human. that’s how we learn but A mistake in a distributed architecture, is a distributed mistake, harder to diagnose and rectify
  7. It’s not negligence, laziness Industry wide, systemic problems There are perfectly valid reasons. "Accelerated expectations around delivery strangling tech consolidation"
  8. Know too much about too much Description of the pic In contrast, the tools I needed to know when I started were four maybe five Devs Stretched too thin, No mastery or enough knowledge of what make it right means New things come up No time
  9. Know too much about too much Description of the pic In contrast, the tools I needed to know when I started were four maybe five Devs Stretched too thin, No mastery or enough knowledge of what make it right means New things come up No time
  10. Know too much about too much Description of the pic In contrast, the tools I needed to know when I started were four maybe five Devs Stretched too thin, No mastery or enough knowledge of what make it right means New things come up No time
  11. Codebase has shrunk Tricked into thinking less code, less design Code has just dispersed to more codebases. We still have to connect components, with low coupling.
  12. Codebase has shrunk Tricked into thinking less code, less design Code has just dispersed to more codebases. We still have to connect components, with low coupling.
  13. The way we address software design as individuals has changed We used to rely exclusively on patterns and principles that we learnt from reading books But now, we outsource design decisions to tools, and in most cases we’re being responsible. trade off we’re not flexing our design muscles, paying someone to go to the gym for us. There are still decisions to make, how good will they be if we dont practice often? AWS Codewhisperer beta just launched
  14. The way we address software design as individuals has changed We used to rely exclusively on patterns and principles that we learnt from reading books But now, we outsource design decisions to tools, and in most cases we’re being responsible. trade off we’re not flexing our design muscles, paying someone to go to the gym for us. There are still decisions to make, how good will they be if we dont practice often? AWS Codewhisperer beta just launched
  15. The way we address software design as individuals has changed We used to rely exclusively on patterns and principles that we learnt from reading books But now, we outsource design decisions to tools, and in most cases we’re being responsible. trade off we’re not flexing our design muscles, paying someone to go to the gym for us. There are still decisions to make, how good will they be if we dont practice often? AWS Codewhisperer beta just launched
  16. The way we address software design as individuals has changed We used to rely exclusively on patterns and principles that we learnt from reading books But now, we outsource design decisions to tools, and in most cases we’re being responsible. trade off we’re not flexing our design muscles, paying someone to go to the gym for us. There are still decisions to make, how good will they be if we dont practice often? AWS Codewhisperer beta just launched
  17. The way we address software design as individuals has changed We used to rely exclusively on patterns and principles that we learnt from reading books But now, we outsource design decisions to tools, and in most cases we’re being responsible. trade off we’re not flexing our design muscles, paying someone to go to the gym for us. There are still decisions to make, how good will they be if we dont practice often? AWS Codewhisperer beta just launched
  18. we normalised trading off internal software quality, with good design for speed of delivery. Luckily for us technologists, technology is no longer an afterthought. It is quite the opposite, a super competitive market that has left businesses in constant fear of disruption or any other existential threat. Business are pushed to innovate, serve their customers in however many channels possible (mobile, web, voice, your watch) and that has created a massive amount of work that has to be delivered NOW. And our industry reacted to that improving its delivery cadence, deployments are faster now with cloud providers, testing is automated but that hasn’t been enough,so we also started trading off time to design because time to market is more important That was particularly reinforced by Mark Z with FB’s motto “move fast and break things” famous, and everyone started emulating it But it does not work, to the point that At the 2014’s F8 developer's conference, Mark Zuckerberg jokingly rolled out a new motto for Facebook: "Move Fast With Stable Infra." But the mindset was already in the wild and is still is.
  19. we normalised trading off internal software quality, with good design for speed of delivery. Luckily for us technologists, technology is no longer an afterthought. It is quite the opposite, a super competitive market that has left businesses in constant fear of disruption or any other existential threat. Business are pushed to innovate, serve their customers in however many channels possible (mobile, web, voice, your watch) and that has created a massive amount of work that has to be delivered NOW. And our industry reacted to that improving its delivery cadence, deployments are faster now with cloud providers, testing is automated but that hasn’t been enough,so we also started trading off time to design because time to market is more important That was particularly reinforced by Mark Z with FB’s motto “move fast and break things” famous, and everyone started emulating it But it does not work, to the point that At the 2014’s F8 developer's conference, Mark Zuckerberg jokingly rolled out a new motto for Facebook: "Move Fast With Stable Infra." But the mindset was already in the wild and is still is.
  20. Our Common Future, also known as the Brundtland Report, was published on October 1987 by the United Nations through the Oxford University Press. This publication was in recognition of Gro Harlem Brundtland's, former Norwegian Prime Minister, role as Chair of the World Commission on Environment and Development.Wikipedia
  21. Like testing functionality Fitness functions Manual, automatic checks Inside the box: linters, cognitive complexity Outside the box: is your system observable, scalable, etc
  22. Good design means we can change our software confidently and quickly We now live in a distributed world where mistakes are widely distributed too. At an organisational level Ways of working, prioritising time At a team level for prioritising how to use your time
  23. This Kent Beck quote has been the mantra of my career.. I think we have a decision to make: We build software that just works but mos likely have to rewrite in a couple of years because it’s too hard to change, or we spend the time and effort now building well designed software that can evolve with the product?