$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
Tweet

More Decks by Marco Cecconi

Other Decks in Programming

Transcript

  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