Wednesday, March 25, 2009

Scandinavian Developers Conference Report

This is a short report from SDC. My comments are in italics.

Habits for Agility, Kent Beck

Kent changed his topic in the last minute. I would have liked to hear the promised talk on Responsive Design. Instead he talked about more general things.


The desire to see reality as it is and to respond. What is reality? Whose reality?

Accountability, take responsibility for your work, no excuses.


Effective teams are biased towards action. If you have a problem, research it, and know instead of think. Try instead of guess.


Find focused time to work. The Pomodoro technique, do something for 25 minutes without interruptions. After finishing something, take some time to reflect before starting on the next task.


Analogies will help improving communication. Sales people are good at being accountable, because their salary depends on it. Customers are people whose daily lives are affected by your software. Good connections improve understanding between people.


A perspective is about the same as an elevator pitch. What do you do? This is essential since this will help you when things get complicated.

Everything that is completely repeatable should be automated. The goal of development is to automate everything.


Good teams find a way to get support, by meeting the needs of the people that can give you support.


The cycle goes from action to reflection, ...

Ancient Philosophers and Blowhard Jamborees by Neil Ford

Neil had a nice presentation on the lore of software development.

Those who cannot learn from history are doomed to repeat it.

Books that are part of the lore of software. Smalltalk Best Practice Patterns, Mythical Man Month, The Pragmatic Programmer

Plato invented object orientation. The best way to solve problems is to think.

Aristotele, developed some important ideas like essential properties and accidental properties.

Galileo, didn’t believe anything he was told. Some things are counter-intuitive, anti-patterns.

Occam’s razor, given a set of solutions the simplest one is the best.

Fred Brooks, the second system is the most dangerous to build since you have all the knowledge of what went wrong with the first system it may be too difficult to get started with the second. KISS!

Cloud Computing, John Davies

John Davies talked about mostly about Amazons Web Services and showed how easy it is to set up an EC2 account. He also talked a bit about cloud computing in general. It seems to me that cloud computing is popular because it is easier to set up a new server in the cloud than it it to get the IT-department on the company to set it up. Something is wrong with this picture.

Google App Engine, for application written in Python. Amazon’s Web Services (AWS) include EC2, S3, Elastic Block Service, SimpleDB, and Simple Queue Service.

Advantages of cloud computing are reliability, security, scalability, volume testing, development with continuous integration and version control. It’s simple to setup new machines.

Setting up an EC2 account

  • Create x509 certificate
  • Download the EC2 API Tools
  • Setup some environment variables
  • Create a ssh key pair.
  • AMI, Amazon Machine Instance
  • Run instances, wait a minute, and log in.

Cool Tools

  • Elastic Fox – firefox plugin
  • ElasticPod – iPhone App

Functional, parallel, and asynchronous programming in F#, Don Syme

Don’s hands on approach to presentation is very nice. He didn’t show much that I hadn’t already seen though.

Why is Microsoft researching functional programming.

  • Pleasure
  • Economics
  • Programmer Productivity

Started with an introduction of the F# language, nothing new. Then the interesting part started, the asynchronous, parallel coding.

let run x = Async.RunSynchronousy x

run(async {return 1+1})

run(ASync.Parallel [{return 2+2}, {return 3+3}])

Simple parallelism.

Outside In – Black Belt TDD/BDD, Niclas Nilsson

Niclas talked about why test first outside-in (or top-down) is better that inside-out. The reason is of course that you don’t create any code that is not necessary and that you know when you are done.

Moder IDEs will also support this style of coding since they can generate the missing method at will.

No comments: