$30 off During Our Annual Pro Sale. View Details »

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

Marco Cecconi

October 10, 2014

More Decks by Marco Cecconi

Other Decks in Programming


  1. Marco Cecconi!
    Marco Cecconi!

    View Slide

  2. About  me
    •  So#ware  Engineer  who  loves/codes  Stack  Overflow  
    •  Some9mes  speak  at  conferences  about  things  
    •  @sklivvz  on  TwiAer  
    •  hAp://sklivvz.com  

    View Slide

  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...  

    View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  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.    

    View Slide

  10. View Slide

  11. View Slide

  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  

    View Slide

  13. View Slide

  14. hAp://rubyquick9ps.com/post/292826666/display-­‐ac9verecord-­‐generated-­‐sql-­‐queries-­‐in-­‐the  

    View Slide

  15. View Slide

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

    View Slide

  17. View Slide

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

    View Slide

  19. View Slide

  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]  

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. hAp://blog.8thlight.com/uncle-­‐bob/2014/05/12/TheOpenClosedPrinciple.html  

    View Slide

  26. View Slide

  27. Beyond  SOLID
    •  “Create  APIs”  
    •  Library  based  architectures  
    •  UNIX  
    •  Perl  
    •  Ruby  
    •  node.js  
    •  Nuget  
    •  Stack  Overflow  

    View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. View Slide

  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

    View Slide

  34. View Slide

  35. View Slide

  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  

    View Slide

  37. View Slide

  38. View Slide

  39. hAp://teamganA.com/blog/2014/03/13/how-­‐to-­‐use-­‐ganA-­‐charts-­‐for-­‐your-­‐agile-­‐project/  

    View Slide

  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  

    View Slide

  41. What  is  guerrilla  programming?
    1.  Be  skep9cal  
    2.  Be  insighnul  
    3.  Be  bold  

    View Slide

  42. The  End  
    Thanks  for  listening!  

    Marco  Cecconi  

    View Slide