Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Guerrilla Programming - code.talks 2014

Guerrilla Programming - code.talks 2014

Guerrilla programming - doing it wrong and getting it right, as presented at code.talks 2014

3fd9e5b2c59170ec3d74dde30d233fa4?s=128

Marco Cecconi

October 10, 2014
Tweet

Transcript

  1. Marco Cecconi! 10.10.2014! GUERRILLA PROGRAMMING! Marco Cecconi! Skalierung!

  2. About  me •  So#ware  Engineer  who  loves/codes  Stack  Overflow  

    •  Some9mes  speak  at  conferences  about  things   •  @sklivvz  on  TwiAer   •  hAp://sklivvz.com  
  3. Guerrilla  programming •  This  talk  is  about  a  pa$ern.  

      •  It  is  not  about  design  paAerns.     •  It’s  about  how  our  industry  (“so#ware  engineering”)  moves   •  Problems  go  through  three  stages:   •  Discovery   •  Experimenta9on   •  Synthesis   •  For  example,  speaking  of  the  Hollywood  image  of  hackers...  
  4. None
  5. None
  6. None
  7. None
  8. None
  9. Warning   •  The  following  material  is  probably  not  right

     for  your  case.     •  It’s  right  for  some  people,  in  some  specific  situa9ons  and  at  some   specific  9mes.    
  10. None
  11. None
  12. •  Object  oriented  analysis   •  Find  the  objects  

    •  Organize  the  objects   •  Describe  how  the  objects  interact   •  Define  the  behavior  of  the  objects   •  Rela9onal  data  analysis   •  Find  the  en99tes   •  Normaliza9on  &  schema   •  Queries   •  Indexes   •  Constraints  
  13. None
  14. hAp://rubyquick9ps.com/post/292826666/display-­‐ac9verecord-­‐generated-­‐sql-­‐queries-­‐in-­‐the  

  15. None
  16. hAp://www.tutorialspoint.com/hibernate/hibernate_examples.htm  

  17. None
  18. hAp://www.tritac.com/bp-­‐24-­‐dapper-­‐net-­‐by-­‐example  

  19. None
  20. OOP  is  about  taming  complexity  through  modeling,  but  we  have

     not   mastered  this  yet,  possibly  because  we  have  difficulty  dis9nguishing   real  and  accidental  complexity.   I  believe  that  to  make  further  progress  we  must  focus  on  change  and   how  OOP  can  facilitate  change.  A#er  all  these  years,  we  are  s9ll  in  the   early  days  of  OOP  and  understanding  what  it  has  to  offer  us.     Oscar  Nierstrasz   [Banquet  speech  given  at  ECOOP  2010.  Maribor,  June  24,  2010]     hAp://blog.jot.fm/2010/08/26/ten-­‐things-­‐i-­‐hate-­‐about-­‐object-­‐oriented-­‐programming/comment-­‐page-­‐2/  
  21. None
  22. None
  23. None
  24. None
  25. hAp://blog.8thlight.com/uncle-­‐bob/2014/05/12/TheOpenClosedPrinciple.html  

  26. None
  27. Beyond  SOLID •  “Create  APIs”   •  Library  based  architectures

      •  UNIX   •  Perl   •  Ruby   •  node.js   •  Nuget   ...   •  Stack  Overflow  
  28. None
  29. None
  30. None
  31. None
  32. None
  33. “Amazon is on record as making changes to production every

    11.6 seconds on average in May of 2011. Facebook releases to production twice a day. Many Google services see releases multiple times a week, and almost everything in Google is developed on mainline.” Jez Humble - The Case for Continuous Delivery hAp://www.thoughtworks.com/insights/blog/case-­‐con9nuous-­‐delivery  
  34. None
  35. None
  36. “SQL  databases  are  fundamentally  non-­‐scalable,  and  there  is   no

     magical  pixie  dust  that  we,  or  anyone,  can  sprinkle  on   them  to  suddenly  make  them  scale.”         Adam  Wiggins  -­‐  SQL  Databases  Don't  Scale   hAp://adam.herokuapp.com/past/2009/7/6/sql_databases_dont_scale/  
  37. None
  38. None
  39. hAp://teamganA.com/blog/2014/03/13/how-­‐to-­‐use-­‐ganA-­‐charts-­‐for-­‐your-­‐agile-­‐project/  

  40. Agile  Manifesto • Individuals  and  interac9ons  over  processes  and  tools  

    • Working  so#ware  over  comprehensive  documenta9on   • Customer  collabora9on  over  contract  nego9a9on   • Responding  to  change  over  following  a  plan  
  41. What  is  guerrilla  programming? 1.  Be  skep9cal   2.  Be

     insighnul   3.  Be  bold  
  42. The  End   Thanks  for  listening!   Marco  Cecconi  

    @sklivvz