Compose Software Like Nature Would

Inspired by biology background, I combine some ideas from functional and OO programming into a presentation about software design. I gave this talk at the OttawaJS meet-up group in September. The slides can be seen here.

Talk Summary

The only constant in software development is change. When our software cannot adapt, it turns into a big ball of mud. It becomes hard to hard to reason about and hard to change.

Living organisms, on the other hand, have the incredible ability to adapt to their environment. Over 3.5 billion years they evolved many different adaptations. For example, there are 400k species of beetles, and they live in diverse habitats. Some beetles feed on decayed matter while others prefer locally sourced, organic vegetation. Perhaps nature could be our inspiration for better software.

The conclusions of the talk are:

  1. Build small components & compose them with messages.
  2. Push side-effects to boundaries and have a functional core.