Small Is Beautiful

Systems get bigger, technologies reach further, practices mature, advice changes... or at least some of it does. Some guidance remains unaffected by the passing of paradigms, the evolution of technology or the scaling of development: break your software into small, cohesive parts defined by clear interfaces and sound implementations, all the while striving for simplicity. The excuses for not doing so are as predictable as they are problematic. But if you want to create legacy code, make sure code is arbitrarily partitioned into large, incoherent parts characterised by unwieldy interfaces and incomprehensible implementations. While there are many definitions of what a legacy system is, common to almost all perceptions of a legacy system is the concept of size — specifically, lots of it. The phrase 'small legacy system' can be considered an oxymoron. This talk sets out to re-assess and reassert the importance of thinking and implementing small as an essential property of software systems — yes, even the large ones.

Related Talks

The Value of Values

Rich Hickey
32 minutes
In this keynote speech from JaxConf 2012, Rich Hickey, creator of Clojure and founder of Datomic gives an awesome analysis of the changing way we think about values (not the philosphoical kind) in light of the increasing complexity of information technology and the advent of Big Data. The broad subject ...

Keynote GoingNative 2012 C++

Bjarne Stroustrup
an hour
We know how to write bad code: litter our programs with casts, macros, pointers, naked new and deletes, and complicated control structures. Alternatively (or additionally), we could obscure every design decision in a mess of deeply nested abstractions using the latest object-oriented programming and generic programming tricks. Then, for good ...

ECMAScript 6 & Web Components • Brian LeRoux

This presentation was recorded at GOTO Chicago 2015 http://gotochgo.com Brian LeRoux - PhoneGap Project Team, Adobe ABSTRACT JavaScript has a long history of being difficult to structure and maintain. To deal with this complexity a swath of frameworks appeared over the years. Prototype.js was quickly followed by jQuery and hounded by Dojo, YUI, Mootools ...

Why Scaling Agile Doesn't Work

Jez Humble
an hour
There are now several frameworks designed to address the demand for "big agile." In this talk Jez will explain the flaws in such frameworks, why they so often fail to produce the desired effects, and what we should do instead. He will also address some common organizational obstacles to moving fast ...

A Practical Guide to Cybercrime

Cybercriminals are often perceived as having super powers to get into your systems and steal your money and data. The vast majority are just following simple cookbook recipes to take advantage of laziness, sloppiness and an failure to understand what might be risky behaviour. Defences against cybercrime do not have ...

The R Language: The Good The Bad & The Ugly

R is a domain-specific language for analyzing data. Why does data analysis need its own DSL? What does R do well and what does it do poorly? How can developers take advantage of R's strengths and mitigate its weaknesses? This talk will give some answers to these questions. ...

User Interface (UX) Techniques • Janne Jul Jensen

Check out our upcoming conferences at http://gotocon.com Subscribe to the GOTO Conferences YouTube Channel at https://www.youtube.com/user/GOTOConf... Janne Jul Jensen - Interaction Designer and Usability Specialist ABSTRACT Most developers today are aware of the importance of creating a good user interface with a high level of usability, but many are lacking the methods and techniques ...

Power Use of UNIX • Dan North

Dan North - Agile Troublemaker, Developer, Originator of BDD ABSTRACT Thus begins an old, and sadly lost in the mists of Usenet, love story about Vi and Ed (who becomes her "ex"), told entirely in Unix commands. I had no idea when I started learning these arcane (guess how the "dd" command ...

Speed & Scale: How to get there • Adrian Cockcroft

This presentation was recorded at GOTO Chicago 2014 http://gotochgo.com Adrian Cockcroft - Technology Fellow at Battery Ventures and Former Netflix Cloud Architect Pioneer ABSTRACT To deliver software products at high velocity requires four things. First, a culture of innovation that can see and respond to opportunities. Second, the data and analytics to evaluate alternatives. ...