YOW! Singapore 2018 Day 1
Sat, Sep 8
Registration for YOW! Singapore 2018 - 45 mins
Opening Introductions - 15 mins
Michael Nygard - Keynote - Uncoupling
We overload our terms a lot in this industry. "Coupling" is one such. That word covers situations ranging from essential to accidental to comical to cosmic. Coupling seems to be the root of all ills. It is the molasses that slows our every move. And yet, in the industry from which we borrowed the term, "coupling" was not a dirty word. It meant something ingenious. Let us contemplate coupling for a time and see what we can do about it.
Morning Coffee - 30 mins
Heidi Helfand - Dynamic Reteaming at Fast-Growing Companies
Team change is inevitable, especially when your company is hiring like crazy and doubling in size. Your teams might grow and split. 20 people might arrive in one day. What feels like tectonic shifts happen as you morph structurally to refocus people and work. How can we bring a humanistic stance to this dynamic reteaming? How can the people be empowered to have ownership over their team change? How can we integrate the new people and redefine our sense of “culture?” We will explore questions like these and will discover practical strategies to master dynamic reteaming.
Dave Farley - The Rationale for Continuous Delivery
The production of software is a complex, collaborative process that stretches our ability as human beings to cope with its demands. Many people working in software development spend their careers without seeing what good really looks like. Our history is littered with inefficient processes creating poor quality output, too late to capitalise on the expected business value. How have we got into this state? How do we get past it? What does good really look like? Continuous Delivery changes the economics of software development for some of the biggest companies in the world, whatever the nature of their software development, find out how and why.
Lunch - 75 mins
Gregor Hohpe - Keynote - Enterprise Architecture = Architecting the Enterprise?
Architects in the enterprise are often regarded as ivory tower residents who bestow their utopian plans upon project teams in the form of colorful diagrams that bear little to no resemblance to reality. The most suspicious in this group are often the “Enterprise Architects” who are perceived as being furthest from actual technical problems.
However, large-scale IT operation and transformation require transparency across hundreds or thousands of applications running on all sorts of middleware in data centers around the globe. The very enterprise architects are likely the only ones who stand a chance to bring transparency into such an environment and who can direct IT investments in the hundreds of millions of Euros towards modernization and run-cost reduction. This sounds a lot more exciting and valuable than drawing pictures!
This session takes a serious but light-hearted look at the role of enterprise architects in modern IT organizations.
Cameron Joannidis - Building a Centralised Machine Learning Pipeline with Spark and Kafka
Many organisations face the difficult challenge of enabling Machine Learning projects to get to market more quickly and to allow data science teams to share their features. In this talk, I will be discussing the machine learning pipeline developed at a large Australian telecommunications company to achieve this goal using Kafka and Spark as well as the challenges faced along the way. I’ll begin by discussing the utility and motivation for a centralised feature store, before looking at the complexities of such an undertaking (both technical and organisational). We will then dig into the technical details of implementation by discussing the scalability headaches we faced and dive into the details of the solutions used to drastically improve the speed and organisational scalability of the system. Several areas that will be covered are providing a declarative API that allowed us to compile feature definitions into optimised spark code, the complexity of a true streaming dedupe, adjusting the workflow for different machine learning use cases, fine-tuning the resource allocation to avoid unnecessary bottlenecks and allowing for streaming and batch data sources. Finally, we will touch on lessons learnt along the way and offer advice on things to avoid as well as how to take things to the next stage.
Afternoon Tea - 30 mins
Dave Thomas - Living Live in Big Data – Vector Programming and Visual Analytics
And Now For Something Completely Different?
What do stock ticker feeds, web click streams, micropayments, online games, smart meters, and sensors on a formula one race car have in common? They all need to compute over and visualize large volumes of time series data. In this talk how one can interactively explore and visualize massive data sets using a vector functional programming.
Vector languages are heavily used in finance for the analysis of stock market data. They have inspired array capabilities in other languages, such as R, MatLab, Python NumPy, and Pandas. Vector languages and runtimes enable rapid interactive development of concise and efficient applications. Vectors are a natural low impedance abstraction for dealing with high-performance column stores. We introduce the key concepts of vector programming, applicative style, and idioms of FP. We then illustrate their use on typical data science problems exploring large data sets using visual analytics.
Gojko Adzic - Painless visual testing
When visuals come under test automation, the outcome rarely justifies the cost. Visual tests tend to be too brittle, to difficult to maintain, and too slow to execute for quick iterative delivery cycles. However, recent improvements in cloud computing and browser capabilities make it possible to change the economics of the test automation pyramid. Gojko will talk about how trends such as approval testing, cloud functions and automated image analysis can help us automate acceptance/regression tests for visual look and feel in a visual language, rather than xUnit style code, and make such tests easy to write, understand, execute and maintain.
Jeff Patton - Keynote - MVP: and Why We Confuse Building to Learn with Building to Earn
Minimum viable product is one of the most misunderstood, misused, and abused terms in contemporary software development. In this talk Jeff will explain the misunderstandings made by thought leaders that lead to confusion we all deal with today. You’ll learn the counter-intuitive concepts hidden in the term and why really using them is so hard. You’ll learn about techniques that will ultimately help you find smaller successful releases, test your ideas faster, develop higher quality software more predictably, and release more confidently than ever before. Because hidden in this nasty little term are clues that can help you do all that.
Reception - 60 mins
YOW! Singapore 2018 Workshop Day 1
Mon, Sep 10
Dave Farley - Continuous Delivery Fundamentals
Continuous Delivery is a complex, holistic approach to software development and has a significant impact on the way in which organisations operate. This approach demands a broad range of skills and techniques. This course is designed to introduce, and explore a deeper understanding of, these ideas and techniques. It is primarily aimed at “Change Agents” within organisations, Managers, Leaders, Lead Developers, Lead Architects and so on, but is relevant to anyone who works on delivering valuable software to users in any capacity. More specifically this course will give you the tools to help your company become a 'Learning Organisation'. Increase efficiency and quality, and reduce risk in your software development process. Our training can teach the techniques that will allow you to increase user satisfaction and make your organisation more innovative. We do this by teaching an approach that will allow your company to become more experimental and capable of reacting quickly and efficiently to change and allowing your software development process to become a tool that enables this flexibility rather than an impediment to it.
Gregor Hohpe - Architecting Enterprise Transformation – 37 Things One Architect Knows
Gregor Hohpe has been a recognised expert in architecture for over 15 years, most recently with his work with a large worldwide insurance company. This is a special opportunity to spend a day learning and sharing experiences on how to navigate a digital transformation in the enterprise.
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.
Jeff Patton - Passionate Product Ownership: A Certified Scrum Product Ownership Workshop
Product Ownership is hard! If you’re working as a product owner in an Agile team, you already know this is the toughest and most critical role in a successful product organization. If you’re a UX practitioner, senior engineer, or marketing professional in your organization, it may seem like adopting Scrum or Agile development has stripped away your ability to contribute as a product decision maker.
If you’re adopting an Agile approach, your organization may be struggling with bloated backlogs that aren’t well understood, stressful planning meetings that last too long and fail to get at details needed to deliver predictably, a nagging feeling that you’re building the wrong thing, a lack of time to work with customers and users, chronically late delivery, and frustrated business stakeholders...There’s hope!
The Passionate Product Ownership workshop takes on the bad assumptions and bad practices that often emerge from overly simplistic approaches to agile development and Scrum. Jeff Patton will leverage his past product leadership experience, and years of coaching product teams to teach an effective product ownership strategy.
Gojko Adzic - Impact Mapping
Have you struggled to split user stories into small but valuable chunks? Do you have problems prioritising stories or getting a commitment from business stakeholders on what they want to achieve? Do you have issues deciding when a story is done or how many other stories you really need to achieve a business objective? Are you managing large amounts of stories that are problematic to estimate, prioritise or plan for? If so, join this interactive workshop and bring your product owners and business sponsors to learn how to get the most out of user stories.
Gojko Adzic will present several simple yet incredibly effective ways industry-leading teams apply to make their user stories much more effective. Come to learn how to ensure that things coming into your work stream are defined well, split to be small enough but valuable, and achieve the big benefits of adaptive planning and that you can expect from great user stories.
“I had the fortunate experience of attending Gojko Adzic’s workshop at Booster 2014 on improving user stories. I must say, that for me it was more like ‘radically rethinking the way you’re doing user stories’” Ørjan Taule
“Clearly loads of insight and value + well worth doing” - Rory MacDonald
“Enjoyable, interesting and useful course with engaging teacher”, Morven Ramsay
“Engaging, informative and energizing - it’s a must”, Rob Malcom
“Thought provoking! Inspired to try and implement the ideas in my team”, Gavin Bussey
“Amazing, totally reshapes my mind about user stories”, Ben Hughes, Equinox IT
Michael Nygard - Production Ready Software
In this full-day workshop, you will learn how to create applications that survive the rigors of life in production. Too often, project teams aim to pass QA instead of aiming for success in production. Testing is not enough to prove that your software is ready for continuous availability in the corrosive environment of the Internet. During this workshop, you will receive an understanding of the architecture and design patterns that can produce high availability in distributed, multithreaded systems. You will also learn about the antipatterns that can sabotage your systems availability and capacity.
Heidi Helfand - A Practical Introduction to Coaching Conversations
Listening is power. By tuning in and applying self-management and directed curiosity, you can help others solve their own problems instead of telling them what to do, giving them the tools they need to be leaders in your organization rather than order takers. Heidi Helfand leads a crash course in coaching conversations, helping you become a better and more empowering leader, coworker, and friend.
Heidi first makes the case for focused attention, listening, and awareness—skills that help people feel “heard.” You’ll then learn specific strategies like the three levels of listening, paraphrasing, and mirroring and discover how you can draw people out by asking powerful, open-ended questions. You’ll be able to apply these lessons to all areas of your life.
YOW! Singapore 2018 Workshop Day 2
Tue, Sep 11
Michael Nygard - Architecture Without an End State
Architecture plans in enterprises tend to resemble late-night infomercials. First, you see a person or system that seems incapable of survival—a situation that can be immediately rectified if you just buy into the product. (One popular infomercial shows incompetent people mangling tomatoes transitioning into Ginsu-wielding sous chefs; the architecture pitch starts with hideous complexity then moves to clean orthogonal box diagrams.) Operators are always standing by.
Real architecture never reaches that blissful end state. Something always interrupts the program: businesses change, technology changes, or funding dries up. What would happen if you did reach the end state, anyway? Is IT in the company done? Of course not.
The truth is that there is no end state. We must all learn to build systems that evolve and grow. We need to stop aiming for the end state and understand that change is continuous. We cannot predict the details, but we can learn the general patterns.
Michael Nygard demonstrates how to design and architect systems that admit change—bending and flexing through time. Using a blend of information architecture, technical architecture, and some process change, Michael walks you through examples of rigid systems to show how to transform them into more maneuverable architecture.
Gojko Adzic - Serverless Apps with AWS Lambda
This is a practical workshop for developers and architects that want to take advantage of the latest trends in cloud computing: serverless apps and cloud functions. Through hands-on exercises and teamwork, you’ll learn about using AWS Lambda and API Gateway to create responsive event-driven micro-services, auto-scaling web APIs, and high-performance web sites. By the end of the workshop, you will create a useful real-world serverless application, exploring the typical architectural patterns.
Serverless platforms significantly reduce the cost of running high-performance web sites and API services in the cloud, but with a major impact on architecture, these services also require teams to re-think how to approach sessions, storage, authorization and testing.
The author of the workshop is Gojko Adzic, a key contributor to Claudia.js, a popular open-source deployment tool for AWS Lambda.
Dave Farley - Advanced Deployment Pipeline Techniques
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a “releasable state”. By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release.
This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.