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

Marco Cecconi

October 10, 2014

More Decks by Marco Cecconi

Other Decks in Programming


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

    •  Some9mes  speak  at  conferences  about  things   •  @sklivvz  on  TwiAer   •  hAp://sklivvz.com  
  2. 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...  
  3. 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.    
  4. •  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  
  5. 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/  
  6. Beyond  SOLID •  “Create  APIs”   •  Library  based  architectures

      •  UNIX   •  Perl   •  Ruby   •  node.js   •  Nuget   ...   •  Stack  Overflow  
  7. “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  
  8. “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/  
  9. 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