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

ProgrammingMatters.pdf

Kurt Christensen
December 26, 2011
83

 ProgrammingMatters.pdf

Kurt Christensen

December 26, 2011
Tweet

Transcript

  1. Who IS this guy?! I actually write code! ! (github.com/projectileboy)!

    Software development coach! for small teams, big corporations,! and everything in between! Available for purchase at:! [email protected]! Twitter: @projectileboy!
  2. EXERCISE! 90 seconds! Introduce yourself to someone sitting near you!

    Tell them one thing! you absolutely know to be true! about writing code, ! or testing code, ! or deploying code! and why!
  3. EXERCISE! Listen with an open mind! (and a skeptical heart)!

    By the end of this session, ! you should have at least one thing! with which you either:! " " " "(a) Agree! " " " "(b) Disagree! " " " "(c) Believe, but wasn’t covered !
  4. Why are we talking about programming ! at an agile

    conference?! Because we’re building software! Pop Quiz:! You own a software company and you ! can afford to hire exactly one person! Who do you hire?!
  5. “In the South Seas there is a cargo cult of

    people. During the war they saw airplanes land with lots of good materials, and they want the same thing to happen now. So they've arranged to imitate things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head like headphones and bars of bamboo sticking out like antennas - he's the controller - and they wait for the airplanes to land. They're doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn't work.”! - Richard Feynman, 1974 Caltech Commencement Address! http://calteches.library.caltech.edu/51/2/CargoCult.pdf!
  6. Agile without Engineering! =! Cargo Cult Agile! If we can’t

    write, test and deploy code! then process doesn’t matter!!
  7. Programming: Where Do We Begin?! It all starts with values…!

    What’s the cost? ! What’s the value?! What would I do if it was my money?! Role model: successful startup companies!
  8. What Would Startups Do?! One view of ‘agile’:! The best

    ideas from startups ! applied to big organizations! Startups often care deeply about technology ! but only to the extent that it stays out of the way! http://paulgraham.com/head.html!
  9. Core Values! Simplicity > Flexibility! Less Code! Cost vs. Value!

    Scientific Thinking: Guess, Test, Guess Again! Context Matters!
  10. Core Practices! Iteration Zero:! Automated Build! Automated Testing! Automated Deployment!

    Continuous Integration?! Continuous Delivery!! Ignore this at your peril…!
  11. Core Practices! All other things being equal,! the less code

    the better! Corollary: Use the most powerful language you can!!
  12. Core Practices! Extreme Programming had it right!! Pair Programming (with

    enforced pair rotation)! Collective Code Ownership! Constant Refactoring! Metaphor as Architecture! Test-Driven Development! Emergent Design! …and so on…!
  13. …but don’t be dogmatic!! “Just because we’re agile ! doesn’t

    mean we assume ! the most stupid solution”! - Matthias Thiele!
  14. An Example of Dogma! Testing as religion! Why test?! Where

    should we test?! What should we test?! How much should we test?! What’s the cost?! What’s the value?!
  15. Resume Driven Development! Evaluating tools and technologies:! Is it improvement,

    or just fashion?! Applets good! Applets bad!! EJB good! EJB bad!! Flash good! Flash bad!! Technical debt! Technical debt!! Harf blarf blurffy snarf!! http://twincitiescodecamp.com/TCCC/Fall2009/Sessions.aspx!
  16. Core Skills! Data Structures and Algorithms! Java or C#! C!

    Lisp! SQL! Bash! sed! Ruby and Rails! Build automation tools! Deployment automation tools! Proficiency with text editors and/or IDEs!
  17. Core Skills! Computer and networking hardware! Operating system fundamentals! Network

    protocol stack! Concurrency! Security considerations! Database fundmentals! Cloud offerings and their economics!