YOW! Singapore 2017

Topics covered at #YOWSG

Monday, 11th - Tuesday, 12th September in Singapore

16 experts spoke.

Since 2008, YOW! has brought 200+ International Software Experts from North America, Europe and countries around the world to over 10,000 software professionals in Australia. Now we're bringing them to Singapore.

Come to this two-day conference to discover the latest trends and network with fellow developers. Hear 14 international software experts share best practices in development and delivery.

Excited? Share it!


Specification By Example: From User Stories to Acceptance Tests


Specification by example is a collaborative approach to defining requirements and tests for based on capturing realistic examples instead of abstract statements. It is the cornerstone of any successful requirements and testing and requirements strategy with agile and lean processes, such as Scrum, Extreme Programming and Kanban. This workshop teaches you how to apply specification by example to bridge the communication gap between stakeholders and implementation teams, build quality into software from the start, design, develop and deliver systems fit for purpose.

Since 2007, more than 6000 people have benefited from this workshop. Below is selected feedback from some of the previous participants:

  • Very efficient and practical course. No dogmatism or philosophy. Built up on real life examples with useful real life exercises. – Sergei Sergejev, Skype
  • The best course I’ve attended in my career. I loved that the instructor challenged us to think for ourselves and did not give us the answers straight away. Trond Svensen, SITS
  • Informative, to the point and loads of potential business value for my employer and clients. Thomas Bakken, Consultant at Logica Norge AS
  • I initially wanted to attend Gojko’s course on Agile Acceptance Testing because I wanted to learn about test automation and how to do it well. As a product owner, I came to realise that I was going to have to change a lot of what I did. I needed to learn how to make requirements definite, unambiguous, atomic – not only so that they might be an input into an automation process but also because I want to create something the whole company can understand, something that is concise to read and something I can easily keep up to date.- Patrick O’Malley, Product Manager, Yahoo Inc.
  • Definitely worthwhile, particularly if product owners/internal clients are also involved. – Will Thomas, Scrum Developer at UBS
  • As a teacher, Gojko is one of the few that understand the power of teaching. It is all to seldom that someone with great familiarity of the solutions they teach also understand and listens to any other and novel problems someone share. It is hard to to put your self in someone else’s shoes. But Gojko does this remarkably well. – Gunnar Ahlberg, Avega Group
  • Inspiring, changed my perspective, essential knowledge. – John I. Hervik, Logica Norge AS


This workshop is based on Gojko Adzic’s books Specification by Example and Bridging the Communication Gap. Through facilitated exercises and discussion, you will learn:

  • how to extend specifications with examples to create a single source of truth for testing and development
  • how to avoid functional gaps and inconsistencies in specifications and tests
  • how to run specification workshops to facilitate collaboration
  • good practices for designing specifications with examples and acceptance tests for agile teams
  • how to create a living documentation system to facilitate change and improve your process long-term
  • how other teams, from small web startups to large distributed teams in investment banks, apply specification by example in their contexts


Gojko Adzic

Gojko is a partner at Neuri Consulting LLP. He is the winner of the 2016 European Software Testing Outstanding Achievement Award, and the 2011 Most Influential Agile Testing Professional Award. Gojko's book Specification by Example won the Jolt Award for the Best Book of 2012, and his blog won the UK Agile Award for the best outline publication in 2010. Gojko is a frequent speaker at software development conferences, including NDC, Agile Days, Oredev, and YOW!, and is one of the authors of MindMup and Claudia.js.

Impact Mapping with Innovation Games

Impact Mapping is a lightweight method for strategic planning in product and project development. Although seemingly simple and intuitive, many teams fail to get the most out of it because they jump to conclusions too quickly and skip over important discussions. Gojko will talk about how to avoid common pitfalls and present two innovation games that can help you facilitate impact mapping easily, support innovative ideas and divergent thinking, and help your teams and clients make a big impact through software delivery.

Gojko Adzic

Gojko is a partner at Neuri Consulting LLP. He is the winner of the 2016 European Software Testing Outstanding Achievement Award, and the 2011 Most Influential Agile Testing Professional Award. Gojko's book Specification by Example won the Jolt Award for the Best Book of 2012, and his blog won the UK Agile Award for the best outline publication in 2010. Gojko is a frequent speaker at software development conferences, including NDC, Agile Days, Oredev, and YOW!, and is one of the authors of MindMup and Claudia.js.

Snow White and the 777.777.777 Dwarfs

Gartner estimates that during the next few years, 50% of all of enterprise IT organisations will have hybrid half-cloud half-on-premise deployment, and that by 2019 30% of the software will be cloud-only. For software quality, of course, this creates a challenge. Companies no longer control all the hardware or the data. There are many more assumptions in play. The industry is moving away from expensive kits that rarely break, to virtualised improvised magicked-up systems running on commodity hardware and likely to blow up at any time. This completely changes the risk profile for software architectures and tests. Gojko Adzic will help you navigate this swamp and create a winning testing strategy for cloud deployments.

Gojko Adzic

Gojko is a partner at Neuri Consulting LLP. He is the winner of the 2016 European Software Testing Outstanding Achievement Award, and the 2011 Most Influential Agile Testing Professional Award. Gojko's book Specification by Example won the Jolt Award for the Best Book of 2012, and his blog won the UK Agile Award for the best outline publication in 2010. Gojko is a frequent speaker at software development conferences, including NDC, Agile Days, Oredev, and YOW!, and is one of the authors of MindMup and Claudia.js.

Pushing C# to the limit

C# is a language of breadth. At one end it allows low-level programming with pointers and lock-free synchronization; at the other end, it sports high-level features such as closures, expressions trees and asynchronous functions.

Which leads us to a challenge: can we write a non-contrived program that uses all of the above? The answer is “of course!”, and I’m going to walk you through a practical example: a high-speed communications library built on shared memory (and used in production!)

Come and join the author of C# 7 in a Nutshell and LINQPad in an advanced session, where we step outside the box and play with all of C#’s best toys at once.

Joe Albahari

.NET Developer

Agile is the Last Thing You Need

Nigel Dalton is known in Australia as The Godfather of Agile, having run one of the two famous enterprise experiments in new ways of delivering software, each beginning in 2007. One was Suncorp, led by Jeff Smith, who went on to be global CIO at IBM in 2014. Nigel learned his agile skills building a startup in the USA from 2000 – 2004, applying agile principles to all aspects of the business – from tech to sales. In 2007 Nigel was GM of IT at Lonely Planet, the travel guide publisher – where hundreds of agile practitioners, in both engineering and delivery roles, began their XP, Scrum and Kanban journeys. Thoughtworks were a key partner for Lonely Planet.

Ten years later, working as CIO (and more recently Chief Inventor) at the REA Group, who own Iproperty in Asia, Nigel now offers his reflections on the successes and failures of obsessing with agile dev practices to deliver great business and tech outcomes. He will present a model built on 17 years of being agile, that begins with Toyota-inspired lean management; flows to a focus on resilience (because “agile is fragile”); which unleashes invention; which can finally be executed in an agile ‘factory’ that includes unified design, engineering and product.

Attendees should take away an understanding that as engineers they need to be very careful to ask for a clear organisational purpose, effective organisation structure, and multi-disciplinary teams – just as loudly as demanding AWS access, Github keys, Docker licenses, Slack logins, and pair-programming desks.

Nigel Dalton

Chief Inventor
REA Group

Microservices - Let's Build Some (V2)


While “micro-services” is becoming a heavily over-worked term, it has been interpreted many ways. In this hands-on workshop we will explore a particular style, tiny asynchronous services, that was the core of one of the most successful implementations.


Given an animated specification of flow, we will embark on delivering the proposed services, wrestling with the issues common to this new paradigm. Participants have a choice of languages, with new starting code in Java, C#, and Ruby. At the end of the workshop, we will discuss MicroServices challenges and organizations that are optimized for such architectures.


IoT and MicroServices

IoT, the prevalence of specialized interconnected devices, has invaded business and home. The myriad of devices, hubs, and APIs has created a Tower of Babel that makes the Android phone scene seem mild. Such devices are inherently less network ­reliable than previous products, primarily due to the casual attachment (convenient outlets). Add to this heterogeneous soup the security exposure that has already been exploited in DDoS attacks, and you have an environment begging for technical solutions.

We propose Asynchronous MicroServices as a solution. Borrowing a page from historical J2ME thinking and more recent implementations using IFTTT, we introduce small bridging MicroServices for the various devices. Further, also consistent with MicroServices, we keep these services very simple: They broadcast device status to an event bus, or listen for action commands to relay to the devices from the same bus. Interaction among the various IoT devices is delegated to yet another set of MicroServices.

One exemplary composite application would accept signals from motion detectors to turn on appropriate lights, or alternatively alerting the owner of unauthorized intrusion. Using the same motion detectors, lights can be dimmed and eventually turned off. Room temperatures and even audio/video gear could be adjusted as well. Using Asynchronous MicroServices, we can also set up controlled access from the outside world, rather than exposing each device with its own vulnerabilities.

Finally we wrap up talking about the challenges of implementing this in my own flat using Hue lights, Amazon Alexa, and 4th generation Apple TV. We run these MicroServices in local containers attached to the same home network. Docker support of ARM devices enables low cost redundancy as well.

Lake, Swamp or Puddle: Data Quality at Scale

Data is a powerful tool. Data-driven systems leveraging modern analytical and predictive techniques can offer significant improvements over static or heuristic driven systems.

The question is:

  • How much can you trust your data? Data collection, processing and aggregation is a challenging task.
  • How do we build confidence in our data? Where did the data come from?
  • How was it generated? What checks have or should be applied?
  • What is affected when it all goes wrong?

This talk looks at the mechanics of maintaining data-quality at scale. Firstly looking at bad-data, what it is and where it comes from. Then diving into the techniques required to detect, avoid and ultimately deal with bad-data. At the end of this talk the audience should come away with an idea of how to design quality data-driven systems that ultimately build confidence and trust rather than inflate expectations.

Mark Hibberd


Architecting Enterprise Transformation 37 Things One Architect Knows

Many large enterprises are under pressure to transform their IT architecture and organization, as their business is attacked by “digital disruptors”. IT architects can play a key role in such a transformation because they combine the technical, communication, and organizational skill to apply IT for the benefit of the business. Their job is not an easy one, though: they must maneuver in an organization where IT is often still seen as a cost center, where operations means “run” as opposed to “change”, and where middle-management has become cozy neither understanding the business strategy nor the underlying technology.

This workshop illustrates how software or IT architects can play an active role in driving the digital transformation of a large enterprise. To do so, they need to extend their horizon beyond dealing with technology to navigate organizational politics, get management attention, work with external vendors, and pick the right battles. The examples and anecdotes originate from the presenter’s experience as Chief Architect in a large financial services organization that is undergoing a massive IT transformation

Gregor Hohpe

Enterprise Strategist

Enterprise Integration Patterns 2: The Making of a Pattern Language

The book Enterprise Integration Patterns, published some 14 years ago, has become the common language for most open source ESBs. Still, integration is much more than just messaging, so there are bound to be many more integration patterns. The second volume of EIP will contain conversation patterns that describe interactions between systems over time. This talk reflects on EIP and gives a behind-the-scenes look at how this new pattern language evolves.

Gregor Hohpe

Enterprise Strategist

Setting up Continuous Delivery Culture for a Large-Scale Mobile App

The ability to get the latest greatest version of your product into the hands of users, safely and quickly in a sustainable way, a.k.a Continuous Delivery is the need of the hour for every enterprise out there. Over the years, we've got very good about Continuous Delivery for server-side, web-applications. However, it's not as streamlined for Mobile or Desktop Apps.

This talk will cover the typical aspects we need to address while setting up a Continuous Delivery culture in the context of a large-scale mobile app:

  • SCM/Version Control: moving from Feature Branches to a trunk-based development model
  • Build/Test Environments: Decentralising the build & test environments using Containers(Docker) and CI Server(Jenkins)
  • Microservices Architecture: Segregating and containerize the micro-services. Also refactoring the mobile apps to be more container friendly.
  • Device Farm: Setting up a mobile device farm (using STF or ADF)
  • Code-reviews: Improving the quality of code-reviews (using SonarQube, PRBuilder & PRRiskAdvisor)
  • Test Pyramid: Building the right Test Pyramid to get rapid feedback by creating different kinds of automated tests to align with the CI Pipeline
  • Code Quality: Visualising the health of our code-base (using C3)

Naresh Jain


Beyond Relational: Applying Big Data Cloud Pipeline Patterns


In this full-day workshop, you will learn applied big data solution patterns. most often, but not always using the public cloud. We’ll cover Amazon Web Services and Google Cloud Platform, and work with in small groups to design data pipeline architectures for common scenarios.


We’ll discuss database categories, products and understand actual cost to use one or more database types in your solution(s). Using combinations of Big Relational (for hot, cold or cold data), and one or more types from the NoSQL category (Key-value, Wide-column, Document or Graph) and sometimes even along with NewSQL, we’ll design implementable solutions. We’ll also cover what types of problems are best suited to the Hadoop ecosystem (including use of Spark and the associated libraries).


Lynn Langit

Lynn Langit is an independent Cloud Architect and Developer. She works on genomic-scale cloud pipelines. Also Lynn is an author for LinkedIn Learning, having created 25 courses on cloud topics. For her technical education work, she has been awarded as an AWS Community Hero, Google Cloud Developer Expert and Microsoft Regional Director.

Building Genomics Pipelines with AWS Lambda and Apache Spark

Lynn Langit shares lessons learned and cloud data pipeline patterns via examples from work she’s doing with CSIRO Bioinformatics Australia. The team there, led by Dr. Denis Bauer, is analyzing a number of large genomic datasets.

First, Lynn examines real-time analysis with cloud-based solutions. Keeping runtime constant can be challenging for problems that vary in complexity, such as genome engineering. The CSIRO GT-Scan2 tool works by instantaneously recruiting additional Lambda functions as the complexity increases. It was built using a microservices pattern (serverless) using AWS services.

Next, Lynn will demo a Jupyter notebook which shows how genomic research can leverage Apache Spark to massively parallelize the generation of random forests to identify disease genes efficiently.She’ll discuss the pipeline’s use of an OSS library written by the team at CSIRO (VariantSpark).

VariantSpark can analyze 3,000 samples with 80 million features in under 30 minutes. This pipeline enables real-time diagnosis by finding similar patients. This platform is contributing to motor neuron disease research (publicized by the Ice Bucket Challenge) in Australia.

Lynn Langit

Lynn Langit is an independent Cloud Architect and Developer. She works on genomic-scale cloud pipelines. Also Lynn is an author for LinkedIn Learning, having created 25 courses on cloud topics. For her technical education work, she has been awarded as an AWS Community Hero, Google Cloud Developer Expert and Microsoft Regional Director.

Cloud Native Java

“It is not necessary to change. Survival is not mandatory.” - W. Edwards Deming

Work takes time to flow through an organization and ultimately be deployed to production where it captures value. It’s critical to reduce time-to-production. Software - for many organizations and industries - is a competitive advantage.

Organizations break their larger software ambitions into smaller, independently deployable, feature -centric batches of work - microservices. In order to reduce the round-trip between stations of work, organizations collapse or consolidate as much of them as possible and automate the rest; developers and operations beget “devops,” cloud-based services and platforms (like Cloud Foundry) automate operations work and break down the need for ITIL tickets and change management boards.

But velocity, for velocity’s sake, is dangerous. Microservices invite architectural complexity that few are prepared to address. In this talk, we’ll look at how high performance organizations like Ticketmaster, Alibaba, and Netflix make short work of that complexity with Spring Boot and Spring Cloud.

Josh Long

Spring Developer Advocate

The Future of Mars Exploration

Mars is the next destination for humans to explore and colonize in our journey through the solar system and beyond. For the past thirty years, the space programs of many nations have been sending landed platforms of increasing complexity, revealing the Red Planet’s ancient past. One of the most challenging aspects of all missions to Mars is the safe landing on the surface, from an initial entry speed of 30,000 miles per hour to a soft touchdown. On the surface future explorers must be able to survive radiation and low pressures, with only the limited resources they can bring with them. This talk will discuss the motivation for Mars exploration and how engineering challenges are tackled with computational modeling, cutting-edge technologies, and out-of-the-box thinking. Engineering the Red Planet is the key to our future and understanding our past.

Anita Sengupta

Rocket Scientist, Sr. Vice President
University of Southern California

Agile Coaching Nightmares: Lessons We Can Learn From Gordon Ramsay

When you look for inspiration in the Agile Coaching community, the name Gordon Ramsay is probably not the first name to come to mind. He has been known to be belligerent, condescending and downright rude, but underneath this brute facade is a treasure trove of skills and talents that influence change.

In this presentation we will draw insights from his ‘Kitchen Nightmare’ escapades and draw parallels with how much his work aligns with that of an Agile Coach and the goal to successfully drive change and introduce a number of models and techniques that are indispensable in the coaching toolkit.

Craig Smith

YOW! Conference

A Presentation to Myself on Organisational Agile Transformations

Dear Self, in your career you’re going to lead large scale transformation projects all aimed at developing companies into killer Agile delivery environments. Now I have access to a time machine I’m able to teleport myself back to a time just before I embark on those journeys and I can give myself the value of hindsight! If I let myself go ahead without advising me, then I’ll think an Agile transformation is about the adoption of a process and over time I’ll learn it’s not! I’ll think that architecture and architects are irrelevant and they aren’t! For too long I’ll ignore the significance of diverse teams and culture! I’ll start the transformation process in the technical teams and build out to the wider organisation which is just flawed! I’ll try to eradicate project management, plans, managers, architects, and standards….. Oh, there is just so much to tell me!

This presentation talks about approaches for building new delivery teams, advice on how to make existing teams more effective and insights on approaches which have been used to transform organisations.

John Sullivan

A Java programmer since 1996, I’ve fallen in love with Scala over the last two to three years. I’m extremely fortunate to work more or less full time in Scala at my current position at The Broad Institute. Interests include software engineering, agil

The Best OO Language is a Functional One

Object oriented development turns 50 this year. During that time, hundreds of OO languages have come and gone. And yet, with the exception of Smalltalk and a few research languages, none of them were actually object-oriented.

I think we might now be seeing a revival of the spirit of OO, but it is coming from the functional world. I want to show you how to write OO in Elixir, and how liberating this can be.

Dave Thomas

Dave Thomas is recognized internationally as an expert who develops high-quality software--accurate and highly flexible systems. He helped write the now-famous Agile Manifesto, and regularly speak on new ways of producing software. He is the author of six books, including the best selling The Pragmatic Programmer: From Journeyman to Master (Addison-Wesley) and Programming Ruby: A Pragmatic Programmer's Guide (Pragmatic Bookshelf).

Learn Elixir with Prag Dave


Elixir is the new hot language among folks who are looking for performance, reliability and scalability. It also helps that its a fun language to use.

If you’re already a programmer, you can pick up most of Elixir in a day. Come and join Dave Thomas (author of Programming Elixir) as we explore the language. We’ll all be coding most of the day as we follow a progression of exercises, each illustrating new features of the language and its environment.

This course has a flexible agenda—we’ll go fast, but were not committed to complete all the material. Instead, the goal is to give you a solid foundation from which to start coding Elixir on your own.


Topics can include:

  • effective use of tools such as IEx and mix
  • syntax and semantics of Elixir
  • functional programming, transformation, and pattern matching
  • structuring projects
  • testing
  • concurrency, processes, and the actor model
  • agents and tasks
  • OTP Applications, Supervisors, and Servers
  • Phoenix

Bring a laptop with Elixir already installed. Instructions are here: https://elixir-lang.org/install.html


Dave Thomas

Dave is a freelance F# engineer and a Microsoft MVP, formerly with Xamarin.

Fast Big Data – Enabling Financial Oversight

For the last decade, there has been increased concern about the integrity of capital markets. The crash of 2008-2009 and follow legal actions and press have created an image of a world of high-frequency traders who can leverage their computer power to manipulate markets. Technical talks on performance which is critical in finance, further characterize finance as hooked on speed/low latency. One gets the impression that fast data leads to a fast buck at public expenses. However, fast big data also enables the good guys!

We discuss how fast big data is being used in the financial industry to ensure good governance and protect consumers and businesses who depend on the integrity of financial markets. We discuss the better decisions enabled by algorithms; improved testing practices for algorithms; oversight of markets through surveillance; protection against cyber threats; and the use of data forensics to tell the true story of transactions past.

Dave Thomas

Co-Chair Conferences Program & Technical Advisory Board

High Performance Managed Languages

Common wisdom dictates that native languages are the only means of building high-performance applications. How do managed runtimes such as those available to .NET, Java, and even JavaScript, yes even JavaScript compare? Many applications requiring high-performance are now developed for managed runtimes – such as financial trading, data stores and analytics, messaging, and even supercomputing.

Over the last few decades we have seen significant advances in managed runtimes, particularly for JIT compilers and garbage collectors. In this talk we will explore how our managed runtimes can equal, and even better in some cases, the performance of native languages.

Martin Thompson

Martin is a Java Champion with over 2 decades of experience building complex and high-performance computing systems.

High-Performance Messaging with Aeron


In this workshop you will learn how to build microservices with Aeron and SBE in Java. Microservices capable of handling millions of messages per second with very low and predictable response times. We will cover some networking theory and the design of Aeron so you know how to use it with mechanical sympathy.


Topics covered will include:

  • Network Fundamentals
  • Aeron Design
  • Encoding & decoding messages with SBE for zero copy semantics
  • Handling large messages and streaming
  • Monitoring, debugging, and spying on streams
  • Basic tuning for performance and resource management
  • “Multicasting” in the cloud with multi-channel-cast
  • Configuring message delivery service levels: allow loss, reliable, durable, etc.
  • Flow control and congestion control strategies – When and how to use them.
  • Customising channel endpoints for extending Aeron, e.g. testing loss scenarios.

Delegates need a laptop with Java 8 installed and be comfortable with hands on coding.


Martin Thompson

Martin is a Java Champion with over 2 decades of experience building complex and high-performance computing systems.

Other Years