2009/01/08

Code Mash Keynote #1: Venkat Subramanian

So far there's been several shuffling from the printed schedule, including the order of the keynote speakers.  So the morning keynote for day 1 of Code Mash is Venkat Subramanian with the topic "Pointy-Haired Bosses and Pragmatic Programmers: Facts and Fallacies of Everyday Software Development."

Here's some summary points from the keynote:

  • The semicolon abuses the pinky.
  • Often head fallacies as Best Practices.  Generally a good sign it should be questioned.
  • Emotion, stress, bias, ignorance, impatience, past events, and intolerance all lead to fallacies about technology
  • Asking the question "Why?" will help fix issues.  In general it helps to ask it about 5 times a day to really learn something.
  • Fallacy: "More money & time will solve our problems".  Having clear goals for a project is the best way to get things done.
  • Service Packs sound much better than Patches.  You don't have a "problem", you have a "challenge".  Technologies aren't "stupid", they're "interesting"
  • The longer the project goes, the more prone it is for failure.  By 3 years it is almost certainly dead
  • Big companies can afford to be stupid by spending and spending without shipping software.  Government is the only "company" that can afford that model
  • "If your objective is to build what your customers wanted, you will fail.  You need to build what they still want"
  • Fallacy: "It's got to be good because it's from this large vendor"
  • "Using software because it's free is like getting into arranged marriage for the sake of money.  Where real love?"
  • Molding-Colossus Problem: we complain that software is old so we ask vendors to fiddle with it.
  • RDD - Resume Driven Design.  Using software because it will look better on your resume than what a project really needs
  • Infatuation is fitting the technology to the problem
  • Standardization before Innovation == BAD IDEA!
  • Fallacy: "We're off-shoring because it will save us money."  The gap in cost is closing in on 1:1.  Companies figured out they're methods are already failing, so they figured they might as well fail-for-less
  • Huge turnover in staff in India off-shore companies
  • "Hire smart skilled developers who can learn fast".  "Small team of highly capable developers is better than large teams of below average developers".  Off-shoring isn't bad, just take advantage of great talent world-wide.
  • Fallacy: "Dynamic Languages are not safe."
  • C programmers are generally excited and say "I can't wait to get to work and see what this crap does today!"
  • Java's 13 years old.  What do you expect of a 13 year old???? (in reference to having "2.0 - 1.1" result not be 0.9, but Groovy it works despite being on same JVM engine)
  • Generics in Java is screwy because of the backwards compatibility.
  • Royal Gorge Bridge is 1000ft above the Arkansas River.  It has a sign that says "No Fishing From Bridge"
  • "Humans have a natural tendency to complicate and confuse".  Especially noticeable at Starbucks with coffee sizes.
  • Developers are like prehistoric cave artists.  As soon as the creator walks away, any special meaning to the symbols lose all meaning.
  • "My code is not testable" == "My code and design sucks!"
  • Unit testing == exercising

Overall really good stuff, but his use of video, changing color schemes/fonts kind of hurt it.

No comments: