SlideShare a Scribd company logo
1 of 34
And

“The Voice of Reason”
PRESENT


    Modern Software
Development Anti-Patterns
                 Reconciliation by Scot A Harvest
1. Conference-Driven
      Delivery
Hecklers that suggest this talk
 resembles this anti-pattern...
Real pros hack code
  and write their slides
minutes before their talks


                           7
The Voice of Reason


       PPPPPP
2. Mortgage-Driven
  Development
In these tough
economic times..



                   10
The Voice of Reason


  Don't succumb to fear
3. Distracted By Shiny
3.a. CV++
Always use the latest tech,
    it'll put you ahead



                          14
The Voice of Reason


  Prototype and evaluate
4. Design Driven Design
UML Code Generators
   are awesome



                      17
The Voice of Reason

    Design for what
     you need now
5. Pokemon Patterns
Use *all* of the
GoF design patterns



                      20
The Voice of Reason

  The appropriate design
   pattern is your friend
7. Tuning by Folklore
I performance tune by
lighting black candles



                         23
The Voice of Reason


  Measure, don't guess.
8. The Deity
All the code in one file..
    easier to search



                             26
The Voice of Reason

Discrete components are vital
 in today's distributed world
9. Lean Startup Ninja
Compiles? == Ship it!




                        29
The Voice of Reason

 Continuous Delivery is a
    business enabler
10. <crowd sourced>
I'll make it up as I go along




                           32
The Voice of Reason


 I'll prove Martijn wrong :-)
Thanks! Martijn - @karianna & Ben - @kittylyst

More Related Content

Viewers also liked

The 23 gof design patterns in java ,the summary
The 23 gof design patterns in java ,the summaryThe 23 gof design patterns in java ,the summary
The 23 gof design patterns in java ,the summary
achraf_ing
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
Jean Pаoli
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
Aman Jain
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
Paulo Gandra de Sousa
 

Viewers also liked (15)

Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
 
Design Patterns - GOF
Design Patterns - GOFDesign Patterns - GOF
Design Patterns - GOF
 
The 23 gof design patterns in java ,the summary
The 23 gof design patterns in java ,the summaryThe 23 gof design patterns in java ,the summary
The 23 gof design patterns in java ,the summary
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
Design Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web ExperienceDesign Anti Patterns - How to Design a Poor Web Experience
Design Anti Patterns - How to Design a Poor Web Experience
 
Domain logic patterns of Software Architecture
Domain logic patterns of Software ArchitectureDomain logic patterns of Software Architecture
Domain logic patterns of Software Architecture
 
Anti Patterns
Anti PatternsAnti Patterns
Anti Patterns
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
OO design principles and patterns
OO design principles and patternsOO design principles and patterns
OO design principles and patterns
 
Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)Patterns of Enterprise Application Architecture (by example)
Patterns of Enterprise Application Architecture (by example)
 
9 anti-patterns for node.js teams
9 anti-patterns for node.js teams9 anti-patterns for node.js teams
9 anti-patterns for node.js teams
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 

Similar to Modern software development anti patterns (OSCON 2012)

Stanford CS547 April2009
Stanford CS547 April2009Stanford CS547 April2009
Stanford CS547 April2009
John Lilly
 
Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8
Snake Hill Web Agency
 
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
SANTIAGO PABLO ALBERTO
 

Similar to Modern software development anti patterns (OSCON 2012) (20)

Open Hack Taiwan 2012 - Hacking 101
Open Hack Taiwan 2012 - Hacking 101Open Hack Taiwan 2012 - Hacking 101
Open Hack Taiwan 2012 - Hacking 101
 
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
 
Game development program
Game development programGame development program
Game development program
 
Curing the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad DevelopersCuring the Headaches: How to Deal with Bad Developers
Curing the Headaches: How to Deal with Bad Developers
 
How NOT to start a mobile app development?
How NOT to start a mobile app development?How NOT to start a mobile app development?
How NOT to start a mobile app development?
 
Creating a good architecture
Creating a good architectureCreating a good architecture
Creating a good architecture
 
Jory Prum's Lollipop Audio - Investment Pitch Deck
Jory Prum's Lollipop Audio - Investment Pitch DeckJory Prum's Lollipop Audio - Investment Pitch Deck
Jory Prum's Lollipop Audio - Investment Pitch Deck
 
Lollipop Audio - Investment Pitch Deck
Lollipop Audio - Investment Pitch DeckLollipop Audio - Investment Pitch Deck
Lollipop Audio - Investment Pitch Deck
 
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
[IGC 2017] 셀렉트버튼 나카하타 코야 - 소규모 팀이 타사 IP로 게임 개발할 때의 과제와 해결법
 
The Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service StoryboardThe Delivery Hero - A Simpsons As A Service Storyboard
The Delivery Hero - A Simpsons As A Service Storyboard
 
IsobarCreate32 SF Opening / Kickoff
IsobarCreate32 SF Opening / KickoffIsobarCreate32 SF Opening / Kickoff
IsobarCreate32 SF Opening / Kickoff
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Who’s Afraid of Open Design? - Emanuela Damiani - Codemotion Rome 2018
Who’s Afraid of Open Design? - Emanuela Damiani - Codemotion Rome 2018Who’s Afraid of Open Design? - Emanuela Damiani - Codemotion Rome 2018
Who’s Afraid of Open Design? - Emanuela Damiani - Codemotion Rome 2018
 
Controlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame DevelopmentControlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame Development
 
Stanford CS547 April2009
Stanford CS547 April2009Stanford CS547 April2009
Stanford CS547 April2009
 
Vmg li dg_dec2009
Vmg li dg_dec2009Vmg li dg_dec2009
Vmg li dg_dec2009
 
Tech Quotient 2014 - Put Funda
Tech Quotient 2014 - Put FundaTech Quotient 2014 - Put Funda
Tech Quotient 2014 - Put Funda
 
Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8Techniques for Designing with Drupal 8
Techniques for Designing with Drupal 8
 
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
Raspberry pi: Proyectos prácticos de raspberry pi por publicación de imágenes
 
AI: Your Personal Intern
AI: Your Personal InternAI: Your Personal Intern
AI: Your Personal Intern
 

More from Martijn Verburg

More from Martijn Verburg (14)

NoHR Hiring
NoHR HiringNoHR Hiring
NoHR Hiring
 
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
 
Garbage Collection - The Useful Parts
Garbage Collection - The Useful PartsGarbage Collection - The Useful Parts
Garbage Collection - The Useful Parts
 
Free community with deep roots
Free community with deep rootsFree community with deep roots
Free community with deep roots
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)
 
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)
 
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
 
Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)
 
Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)
 
How to open source a project at Mega Corp (Geecon - May/2011)
How to open source a project at Mega Corp (Geecon - May/2011)How to open source a project at Mega Corp (Geecon - May/2011)
How to open source a project at Mega Corp (Geecon - May/2011)
 
Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2
 

Recently uploaded

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 

Modern software development anti patterns (OSCON 2012)

Editor's Notes

  1. \n
  2. We have all of these tools and techniques, but are we any better?\n
  3. Note the lack of fluffy animals in this talk - that&apos;s right people this shit just got serious\n
  4. \n\n
  5. Nothing to do with this talk whatsoever!\n\n
  6. \n
  7. \n
  8. Proper preparation prevents piss poor performance\n
  9. \n
  10. source code on a USB key, no documentation, don&apos;t communicate etc\n
  11. Don&apos;t be a Cave Troll\nDocumentation\nCoding is a social activity\n
  12. Always use the latest bleeding edge technologies!\nNo IDE support? Well you an just use vi like a real developer right?\nYou&apos;ll be on hacker news!\n
  13. \n\n
  14. No IDE support? Well you an just use vi like a real developer right?\nYou&apos;ll be on hacker news!\n
  15. Carfey.com search for why developers keep make technology choices\nboredom, CV++, Peer Pressure, Lack of understanding, solving non-existing problems\n
  16. UML is king\nGenerate your code from UML\n
  17. \n
  18. \n
  19. Gotta catch them all!\nMust use at least 5 of the GoF\n
  20. Gotta catch them all!\nDefaultAbstractFactoryFactoryBean\n
  21. Lifecycle: Design Pattern --&gt; Framework --&gt; Language Feature\n
  22. \n
  23. \n
  24. Empirical evidence trumps intuition\n
  25. \n
  26. \n
  27. Empirical evidence trumps intuition\n
  28. \n
  29. \n
  30. Empirical evidence trumps intuition\n
  31. \n
  32. \n
  33. Empirical evidence trumps intuition\n
  34. \n