Tuesday, November 13

Oopsla - Making Object-Orientation Work Better (David Lorge Parnas)

Its inspiring seeing David's presentation on this topic despite my personal opinion difference.

  • Object Orientation is a principle not an attribute of language (you can create non-OO program using OO language and vice versa)
  • Outdated documentation is worse than no-documentation at all
  • Program without documentation (documentation can be in many form) is not maintainable
  • Finish coding without writing documentation should not be considered complete

Oopsla - Panel "No Silver Bullet" Reloaded

This is the best panel I attended in this year's Oopsla. Its nice to see Federick and David on the panel, and of course the big bad weir-wolf by Martin Fowler.

  • Federick's definition of inherent complexity vs. incidental complexity 20 years ago is still the one of the main driving forces of many recent process model and framework development aiming at minimizing incidental complexity hence focusing on the inherent complexity
  • Human incompetence is unavoidable
  • There is no silver bullet, but maybe a couple of lead bullets will do the job
  • There is no silver bullet, but we might have created something although complex but powerful enough to kill or seriously injure the weir-wolf, just like the creation of modern chemistry from the pursuit of ancient alchemist's dream of turning stone to gold
  • Embrace the inherent complexity

Sunday, November 11

Oopsla - Research: Language Design

This is the only academic research talk I attended in this year Oopsla which turned out quite interesting.

  • Software based transactional memory is approximately about 50% as efficient as hardware based solutions.
  • StreamFlex provides a Java based soft real-time streaming (no buffer & no dropping) platform
  • Annotation might be a good choice for constructing object meta-model (knowledge level model)
  • Its always a good idea to make your meta-model generic

Oopsla - Actor-Network Theory: Nothing to do with TCP/IP or distributed objects (Brian Marick)

This is one of the my favorite talks I attended in this year Oopsla, and it is so interesting that I was busy enjoying the talk and did not take too many notes :-)

  • Break your mental model (to be successful in this rapid changing industry you need to constantly challenge your past experience and your way of thinking - your mental model)
  • Conduct retrospective of your personal career development every 5 years
  • Read books and topics outside of our industry to help you breaking the mental model
  • To produce quality software programmer and tester need to form a unity of team effort
  • Tester's job is not a destroyer but rather helping programmer to beef up the product together
  • Agile daily stand-up meeting should not be a shrunk version of weekly status report. Daily stand-up should be purely user story oriented since thats the only measurement of real progress in an agile project

Saturday, November 10

Oopsla - Creating Passionate User (Kathy Sierra)

This presentation is, like its name suggests, about creating passionate users which is not only essential to the success of the creation of any useful software (especially important in agile environment), but also equally important from the sales and marketing perspective for creating consumer loyalty as well as utilizing the power of word of mouth.

  • User can't be passionate if they suck (at using your product or doing whatever they do)
  • Human can acquire high definition experience once they are good at something, for example watching tennis matches are way more exciting if you actually play tennis and understand the difficulty and the tactics that the players are facing in the match
  • HD experience and passion threshold model also apply to personal career development
  • When designing software, remember its not about the software (tools) but the goals (what user wants to achieve through using the tools). Make user good at achieving the goals, not just using the tools.
  • Constantly ask yourself "What can I do to make my user kick ass?"
  • Set up milestones and development path for the user, so they know how they can get better and measure the progress too. Learn from the video game model. Again this approach can also be applied to career development and management
  • For startups you don't need to out spend your competitor in marketing or sales, but just out teach your competitor hence obtain consumer recognition and the power of word of mouth
  • One step further, with highly satisfied and ass-kicking users it is possible to create tribal community among your users to further cultivate recognition and loyalty, for example Apple 1997 "Think Different" campaign

Sunday, November 4

2007 Oopsla Montreal Notes

As I promised :-) in the next several blog entries I am going to share the session notes I took at 2007 Oopsla conference in Montreal. My notes are not meant to be detailed summary of what was presented at the session, but rather a bunch of sparks and ideas that I collected with very strong personal bias, please keep this in mind. At mean time, I highly recommend you checking out the content of the presentation before you start reading these notes.