The Program Committee for GOTO Copenhagen 2016 always strives to bring outstanding speakers to deliver inspirational keynotes. This year, we (literally) laughed out loud and learned during presentations from Dan North, Scott Hanselman and Kevlin Henney.
Watch the videos from the keynote presentations at GOTO Copenhagen 2016 below.
Agile Version 2016
with Dan North, Originator of Behavior Driven Development (BDD)
In 2001 a group of programmers proposed the word “agile” to describe a set of values they shared. Several of these programmers had already developed methods based on these values. The values are universal, that’s how they were chosen. The methodologies, however, were designed for the technology landscape of the 1990s. Think of all the changes in technology and business practise in the last 25 years. If that seems too daunting just think about the last five years. In taking “Agile” mainstream, we adopt these ancient practises on faith while losing sight of the values that inspired them.
How do agile values map to the modern landscape of massive computing power and storage on demand, languages that compile faster than you can type, computers in jeans pockets more powerful than the previous generation’s mainframes, home broadband fast enough to stream high-definition video?
It’s time to revisit what agile software development really means. The previous generation moved the delivery horizon from years to months. Now we need to think in days or even hours.
with Scott Hanselman, Principal Program Manager at Microsoft
Small Is Beautiful
with Kevlin Henney, Independent Consultant, Speaker, Writer and Trainer
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.