Loading…
Attending this event?
View analytic

Sign up or log in to bookmark your favorites and sync them to your phone or calendar.

Wednesday, April 19
 

08:30

Everything I need to know about Agile, I learned from pair programming (Ron Jeffries, Chet Hendrickson)
Abstract:
In this keynote, Ron and Chet demonstrate pair programming and describe how everything a developer needs to know about Agile Software Development shows up during development.
Agile was invented "to make the world safe for programmers", according to Kent Beck. Yet common experience is that large-scale approaches are certainly not SAFe for programmers, and we are seeing more and more "Dark Scrum", where debased "Agile" ideas are used, not to draw out the best from teams, but to oppress them. As we work through a simple pair programming demonstration, we show how the things we learn as developers give us insight into how to live within the organization, and how to improve it.
It's turtles all the way up and down and we'll look at some of those turtles.
Learning Outcomes:
  • *The Increment is the key counter to conflict between developers and the organization
  • *Ability to improve communication with the organization
  • *Safer and more productive development
  • *Creating the Increment requires certain key practices.
  • *The Increment is central for effectrive communication within the team and with the enterprise.


Speakers
CH

Chet Hendrickson

HendricksonXP
RJ

Ron Jeffries

RonJeffries.com


Wednesday April 19, 2017 08:30 - 10:00
Room 1

10:20

Code reading the most important skill you don't practice (Zachary Shaw)
Abstract:
As software engineers we often talk about high quality code - One of my favorite definitions of code quality is that it's very readable. But what if we can't easily define what makes code readable? How then do we talk about high quality code?
Instead, I prefer to look at a related question - How do I make code more readable for myself and my peers? The answer: Improve your skill in reading code. As we improve our ability to read code we also improve our ability to produce readable code.
In this talk we'll go over some examples and strategies for critical code reading and talk more broadly about how we as an industry become better software engineers.
Learning Outcomes:
  • *


Speakers
avatar for Zachary Shaw

Zachary Shaw

Engineering Manager, Brightcove


Wednesday April 19, 2017 10:20 - 11:05
Room 3

10:20

Mob Programming : A Whole Team Approach (Woody Zuill)
Abstract:
Mob Programming is a development practice where the whole team works on the same thing, at the same time, in the same space, and on the same computer. It is a whole-team approach to doing all the work the team does including designing, coding, testing, and working with the customers, users and other stakeholders. This is an evolutionary step beyond pair programming, and accentuates face-to-face communication, team alignment, collaboration, and self-organizing team concepts of the Agile approach to software development. I'll share with you the basics of Mob Programming, a few techniques we've found useful, some of the benefits we've seen, and how we've overcome some of the problems of working on a team.
Learning Outcomes:
  • You'll Learn:
  • What Mob Programming Is
  • How to try it yourself
  • Some techniques for working well together
  • Some of the Benefits we've seen
  • Why we're still doing it after 5 years
  • The key members of a team
Attachments:

Speakers
avatar for Woody Zuill

Woody Zuill

Application Development Manager, Hunter Industries
I've been a software developer for 30+ years, and I'm an Agile enthusiast. I work as an Agile Coach with the original "Mob Programming" team, and have been instrumental highlighting "No Estimates" concepts. | | I've enjoy sharing my Agile experiences, and learning new things. If you are ever in the San Diego area please stop by and "Mob" with us. | | I maintain and write for both the http://mobprogramming.org website, and my own blog at... Read More →


Wednesday April 19, 2017 10:20 - 11:05
Room 1

10:20

Simplicity, Complexity and Security (Laura Bell)
Abstract:
We no longer live in a world where we build our applications from scratch. We build amazing creations using the blocks provided by libraries, frameworks and components. We trust widely and openly. We share and collaborate.
We design architectures that combine simple single purpose entities into massive complex coupled systems.
Then we try to secure them. What could possibly go wrong?
In this talk we will explore how our approaches to development, architecture and trust change the security of our applications and environments. We will discuss the challenges of securing these systems and some of the practical steps we can take to bring simple security to complex systems.
Learning Outcomes:
  • * Learn how software development has changed to help us go faster and build amazing things
  • * Understand how this has changed how we view risk and vulnerability
  • * Gain hands on pragmatic things to do and think about in your own teams


Speakers
LB

Laura Bell

CEO, SafeStack Limited
Laura Bell likes building secure things and going really really fast, preferably at the same time. | | A speaker at a range of events such as BlackHat USA, BlueHat Velocity and OSCON, on the subjects of privacy, covert communications, agile security, and security mindset, she is an author for O’Reilly (the people with the animal books) and trains people anywhere they stay still long enough. | | She founded the most chaotic security... Read More →


Wednesday April 19, 2017 10:20 - 11:05
Room 2

11:15

Continuous Deployment of Legacy Software: Crazy Smart or Just Plain Crazy? (Alex Freire)
Abstract:
Imagine this:
You've just started leading a team tasked with substituting a legacy system more than a decade in production. It's one of the company's key products and brings in a lot of revenue every day.
Not only will you need to rewrite the system in a new language, you'll have to change database platforms and the communication protocols with several other systems.
Sound challenging?
How would you even start? Plan years of work and a Big Bang release? Could this succeed?
What would change if you knew, as my team did when confronted with this challenge, that the system was responsible for keeping 80% of all of Latin America on the web?
It might sound crazy, but the strategy we chose was based on one of the latest advances in technical agility: Continuous Deployment!
We delivered to production on the first week, then started delivering daily, and eventually were deploying to production multiple times a day.
Join me to better understand everything you’ll need enable Continuous Deployment, from testing automation, through a DevOps culture, to infrastructure as code for example. See how these changes helped us be extremely successful in this crazy (or crazy smart?) case study.
Learning Outcomes:
  • You'll walk away equipped to decide whether Continuous Deployment can help you with your team’s biggest challenges.


Speakers
avatar for Alex  Freire Kawakami

Alex Freire Kawakami

Director, Industrial Logic
Alex, who was one of the Agile pioneers in Latin America, now consults internationally, speaking frequently at conferences to help communities worldwide expand beyond their comfort zones. A programmer, coach, scientist, student and teacher, Alex loves learning and doesn't shy away from changing his mind. | As Director at Industrial Logic, he focuses on enabling our team to deliver quality software and solve real world problems through Modern... Read More →


Wednesday April 19, 2017 11:15 - 12:00
Room 3

11:15

Ops in the time of serverless containerized webscale (Bridget Kromhout)
Abstract:
So you’ve deployed your app, launched your site, and gone live in prod: so far, so good. But what happens when people actually use it, when you find out where your IaaS rate-limits you, and when you can’t just throw (virtual) hardware at your software problems?
Let's explore the practical realities in that vast, uncharted space between "waiting for the change control board is probably fine" and "we just implemented a novel time series data store in our spare time." If you’re coming to this talk, you may be well past the former, while the latter remains strictly aspirational. What matters these days in operations when you're dockering all the Dockers, going serverless with lambda functions, or scaling beyond what you’ve seen before? Getting the abstractions right is a non-trivial task.
I'll chat about the new stuff worth running in production, dispel myths (NoOps is not a thing; serverless still has servers), and answer questions (spoiler alert: the answer is "it depends"). If you've put in a non-zero number of hours on the pager and still can joke about it, you know that a Someone Else's Problem field lasts just long enough for it to become our problem. Let's talk solutions.
Learning Outcomes:
  • Attendees will leave better prepared to deal with the new realities of an operational role.


Speakers
avatar for Bridget Kromhout

Bridget Kromhout

Principal Technologist, Pivotal
Bridget Kromhout is a Principal Technologist for Cloud Foundry at Pivotal. Her CS degree emphasis was in theory, but she now deals with the concrete (if ‘cloud’ can be considered tangible). After years in site reliability operations (most recently at DramaFever), she traded in oncall for more travel. A frequent speaker at tech conferences, she helps organize the AWS and devops meetups at home in Minneapolis, serves on the program committee... Read More →


Wednesday April 19, 2017 11:15 - 12:00
Room 2

11:15

Zero Defects and Less Pizza (Jeffrey Morgan)
Abstract:
*s it really possible to have zero defects? The short answer is yes – if you are willing to change the way you collaborate, code, and test your application. Allowing defects in your software is an admission that it is okay to have a low quality product. This creates the mindset that believes quality is not important which is propagated throughout the code that is produced. Teams that have zero defects can deliver at a consistent pace and often more rapidly over the long term than teams that log their defects. Defects cost much more than is obvious. Between documenting, inventorying, prioritizing, reproducing, fixing, retesting and all the meetings and pizzas to get to releasable software, it is a huge amount of waste that many organizations believe is unavoidable. And then there comes the “hardening phase”! Join Cheezy as he brings more than a dozen years of hands-on experience coaching teams on agile engineering and team practices that drive quality higher. He will show what needs to change in your organization in order to have teams that truly focus on quality, deliver defect free software, and deliver more value to their customers. From source code management, to advanced development and testing techniques, to dev-ops and build pipelines, this talk is full of ideas and real life practices that you can take back to your work and utilize right away. By implementing these practices you can also help Cheezy with his lifetime goal of reducing the number of pizza parties (staying late at work) and increasing the number of beer parties (celebrations for a great release).
Learning Outcomes:
  • * Participants will learn that it is possible to deliver software that has no defects
  • * Participants will learn that software can be delivered daily to your customers using the Agile practices


Speakers
avatar for Jeffrey Morgan

Jeffrey Morgan

CTO / Agile Coach, LeanDog
Cheezy is an international speaker and keynote presenter in different Agile conferences. He has spoken 6 times at the Agile 20XX conferences as well as other ones like Agile development East and West, Mile High Agile, Agile and Beyond, Path to Agility, etc.


Wednesday April 19, 2017 11:15 - 12:00
Room 1

13:30

A Hands-On Introduction to Exploratory Testing (Claire Moss)
Abstract:
Exploratory testing is a powerful tool in any agile team member's arsenal.
Quickly switching between test design, execution, reporting, and learning adds value to teams while avoiding confusion.
In this hands-on introduction, attendees will pair up around a laptop or mobile device and get a quick introduction to test design before opening a real application for testing.
After some reflection and a little more theory, we'll iterate to test a second application and, time-permitting, a third
To wrap up, we'll conduct a retrospective to gather what people have learned. Then, we will talk about how teams can explicitly include exploratory testing to fit testing into iterations, sprints, and other timeboxes while improving coverage and transparency of what is tested.
The test design elements of the class will include quick attacks and consistency heuristics, two ways to generate test ideas when time is tight and information limited.
Learning Outcomes:
  • The 'what' of Exploratory Testing
  • How To Perform Quick Attacks
  • How to integrate Exploratory Testing into existing practice
  • The role of Exploratory Testing in agile software
Attachments:

Speakers
avatar for Claire Moss

Claire Moss

VersionOne
Agile software tester working closely with product development team, a real test jumper. I help teams to craft more testable user stories. Testing teacher, unit and integration test review and advisement, exploratory testing coach. Exploratory tester (manual tester) and test automator using Javascript and Glance. Software testing speaker, workshop facilitator, author, and blogger. | Claire Moss has always had a passion for writing, which might be... Read More →


Wednesday April 19, 2017 13:30 - 15:00
Room 4

13:30

Design Patterns Thinking and Architecture at Scale (Al Shalloway)
Abstract:
This talk is for people who are having difficulty creating and maintaining application architectures. While test-driven development, automated testing and continuous integration are great practices to facilitate local design and making changes without risk, the architecture within which these changes take place will have a large impact on the effort required.
The Agile community is recognizing the need to address the challenges of Architecture at Scale. While many people recognize the importance of patterns, they tend to focus on patterns as a set of solutions. This often leads people to try to develop by combining patterns. This is actually the anti-thesis of the true intention of design patterns. In reality, patterns are a way of thinking – the patterns themselves are a result of this thinking. Attendees to this session will learn how to scale up their application of design patterns to larger systems, resulting in the longer lived, more robust designs we all strive for.
This seminar has three parts to it:
  • A quick introduction to Design Patterns Thinking
  • Simplifying complex models with commonality-variability analysis
  • Using design patterns thinking and a model of issues in a problem domain to create and maintain an application architecture
Learning Outcomes:
  • Understanding that patterns are more than mere "solutions to recurring problems in a context"
  • Understanding the thought process behind what makes patterns good solutions
  • Learn how to identify the issues in your problem domain you are trying to solve
  • Reduce the complexity of these forces by making a distinction between the issue and potential implementations
  • Learn how to ceate a simplified model of the issues to be managed in the application – in particular those issues that tend to vary
  • While design patterns live at the code level, these concepts live from code to high level design. The trick is to create a way of applying these technique at much greater scales. Fortunately, this technique already exists – commonality-variability analysis – introduced by James Coplien and extended with the analysis matrix by Al Shalloway. Using CVA, one can takek these concepts up to any scale.


Speakers

Wednesday April 19, 2017 13:30 - 15:00
Room 2

13:30

Integrating UX Design into Agile Development (David Grabel)
Abstract:
Does your organization have more development teams than User Experience (UX) designers? Have you adopted the Lean UX solution to this problem – a center of excellence of UX designers working 2 sprints ahead of the development team handing off detailed UI designs for developers? If so, you are living an Agile Anti-pattern!
Trying to bridge the Lean UX and Scrum Development divide this “traditional” way is a slippery slope back to waterfall – handoffs, overly complex designs, mismatched expectations and frustration for everyone. However, by keeping the Agile Values and Principles in mind, you can implement a process that allows people to practice Agile development and deliver outstanding user experiences early and often.
In this workshop we will explore how to use face-to-face communication to have “the business” (i.e. UX Designers) work with the developer’s daily to create great experiences. We will also have some hands-on activities to learn about High Tech Anthropology, an Agile practice for creating true empathy for the user within the developers. We will conclude with Mob Design – a practice based on Mob Programming for bringing developers and designers even closer together to co-create UI designs even more rapidly.
Learning Outcomes:
  • 1. How developers and experience designers can work together to create better software faster.
  • 2. The benefits of observing users in their native habitat.
  • 3. How to scope a project using personas and persona mapping.
  • 4. How to apply mob programming to UI design.


Speakers
avatar for David Grabel

David Grabel

Enterprise Agile Coach, Grabel Consulting Services, LLC
David Grabel is an independent agile coach helping teams and enterprises adopt agile at the team and enterprise level. This includes collocated and distributed teams. He has introduced Scrum, Kanban, XP, and SAFe at both small and large organizations. He helped develop a process for integrating Lean UX design with Scrum delivery teams. This process was rolled out to 15 UX teams supporting over 100 delivery teams around the world. Recent clients... Read More →


Wednesday April 19, 2017 13:30 - 15:00
Room 3

13:30

Master Legacy Code in Real Teams - by Refactoring (Arlo Belshee)
Abstract:
How much do you pay for your legacy code? Many team spend up to 7/8 of their development budget on bugs, bug management and triage, late-added features, and so on. And that's on top of invisible costs - the cost to read hard-to-read code, the cost to test hard-to-test code, and the cost to communicate about arcane code. Let's change that.
This session demonstrates micro-skills, culture shifts, and organizational refactorings that dramatically reduce the cost to work with legacy code. We will show how real teams have reduced their cost to ship while reducing bug counts, in both the short-term and long-term simultaneously. The key: a whole different way to think about refactoring. And a whole different way to read, test, and talk about code.
Learning Outcomes:
  • *


Speakers
avatar for Arlo Belshee

Arlo Belshee

Team Craftsman, Legacy Code Mender, and Rabblerouser, Tableau Software
Arlo helps you change cultures in large organizations. He transitions hundreds or thousands of people at a time to full technical and cultural prowess in a way that sticks. More importantly, Arlo gives your company the ability to change its own culture. He seeks to be the last consultant you will ever need to hire. After 6 months, you should be able to adapt your culture, practices, and company structures to meet novel challenges, each in a... Read More →


Wednesday April 19, 2017 13:30 - 15:00
Room 1

15:20

An Introduction to Monadic Error Handing in Go (Rebecca Skinner)
Abstract:
Google's Go programming language was one of the fastest growing languages of 2016
and is poised for explosive growth in the coming years. One of the key
features that has helped make Go a success has been it's coherent and
simple design that focuses on straightforward, idiomatic approaches to
developing software. As the amount of production Go code begins to expand,
we may start to find limitations in some existing idioms around how Go
code is structured. For developers who want to push the boundaries of
quality in our applications, it's vital that we understand how to
transform and adopt idioms within our code that favor quality and make
defects both apparent and difficult to create.
Many functional programming languages, especially those in the ML
language family, have a rich history of facilitating development
idioms that enforce safety on the user through programing constructs
like phantom types and monadic error handling. In this talk, we'll look
at how we can take lessons learned from those functional languages and
apply them to our Go applications with the explicit goal of improving
application quality by reducing the potential for errors.
Learning Outcomes:
  • Attendees will learn several techniques for handling errors in Go code, as well as idoms for reducing the surface area of potential error cases. Attendees should be able to take the concepts introduced in this talk and use them to develop novel Go idioms for improving code quality, and should develop an appreciation for circumstances that make it appropriate to deviate from traditional idioms used in the Go community.


Speakers
avatar for Rebecca Skinner

Rebecca Skinner

Software Developer, Asteris, LLC
Rebecca is a software developer with a background in network security, systems programming, and functional languages. Her research interests include image processing and computer vision, type systems, and programming language design. She is the founder of the St. Louis Haskell meetup, and a core contributor on the Converge system configuration tool.


Wednesday April 19, 2017 15:20 - 16:05
Room 3

15:20

Continuous Delivery with Containers: The Trials and Tribulations (Daniel Bryant)
Abstract:
Implementing a continuous delivery (CD) pipeline is not trivial, and the introduction of container technology to the development stack can introduce additional challenges and requirements. In this talk we will look at the high-level steps that are essential for creating an effective pipeline for creating and deploying containerized applications.
Topic covered include:
  • The impact of containers on CD
  • Adding metadata to container images
  • Validating NFR changes imposed by executing Java applications within a container
  • Lessons learned the hard way (in production)
A supporting O'Reilly report "Containerizing Continuous Delivery in Java" will also be available, and this contains instructions and code for how to create a Jenkins-based continuous delivery pipeline that takes a series of Java applications and containerizes them, ready for functional and nonfunctional testing, and ultimately, deployment.
Learning Outcomes:
  • Core learnings focus on the impact of introducing container technology into a typical development and continuous delivery build pipeline stack. The key takeaways are that the container image now becomes the 'single binary' that should be pushed along a build pipeline; adding metedata to a container image is essential (but challenging); and the NFR constraints introduced with container technology must be tested/validated within the pipeline


Speakers
avatar for Daniel Bryant

Daniel Bryant

Reporter, InfoQ
Daniel Bryant is the Chief Scientist at OpenCredo. His current technical expertise focuses on ‘DevOps’ tooling, cloud/container platforms and microservice implementations. He is a leader within the London Java Community, contributes to several open source projects, writes for well-known technical websites, and regularly presents at international conferences.


Wednesday April 19, 2017 15:20 - 16:05
Room 1

15:20

Planning for Failure (Jesse Phelps)
Abstract:
You’re a professional software developer. Your software never fails because you follow all the best practices. Right? We all know better. All software sucks. In reality, we need to plan for failure, think about what failure might look like, and plan what we do when it happens. There is a tool used in engineering called Failure Mode and Effects Analysis which I have found great success using in software. I’ll demonstrate how it works and how you can use it too.
Learning Outcomes:
  • Basic understanding of Failure Mode and Effects Analysis (FMEA).


Speakers
avatar for Jesse Phelps

Jesse Phelps

Software Craftsman, Pomiet
Jesse Phelps is a Software Craftsman for POMIET. Jesse is technologically agnostic and dabbles in all aspects of technology from writing software to building/hacking hardware. When not immersed in technology, Jesse spends his free time with his wife Sarah and sons, Jonah, Jackson, and Sawyer. He also enjoys brewing beer and politics.


Wednesday April 19, 2017 15:20 - 16:05
Room 4

15:20

Test-Driven Development Guided by ZOMBIES (James Grenning)
Abstract:
Have you had a hard time figuring out where to start with Test-Driven Development. What if ZOMBIES could help you build code that does exactly what you think it is supposed to do? What if ZOMBIES helped you build a test harness that can keep your code clean and behaving as expected for a long and useful life?ZOMBIES can help!
I'm not talking about a legion of undead or virus stricken. ZOMBIES is an acronym that helps you, the engineer, decide where to start, what test to write next and make sure that, to the best of your ability, you do not forget critical tests and production code behaviors. We'll go through the though process and steps with a detailed code example.
Learning Outcomes:
  • ZOMBIES' foundation is in the Zero-One-Many (ZOM) programming pattern
  • To provide additional guidance behind ZOM, the programmer needs to constantly pay attention to
  • Behaviors
  • Interfaces
  • Exceptional situations
  • while defining Simple test Scenarios


Speakers
avatar for James Grenning

James Grenning

President, Wingman Software Consulting
James Grenning’s trains, coaches and consults worldwide. With more than three decades of software development experience, both technical and managerial, James brings knowledge, skill, and creativity to software development teams and their management.  As his professional roots are in embedded software, James’ mission is to bring state-of-the-art technical and management practices to embedded development teams. He is the author of... Read More →


Wednesday April 19, 2017 15:20 - 16:05
Room 2

16:15

Agile Data Science (Terran Melconian)
Abstract:
In this talk, I'll discuss rapid iteration in data science. Often our mission is to improve a certain metric. Nobody knows in advance how to do so. To be successful, we need to experiment, to test hypothesis and determine the causal relationships between factors. We'll explore how rapid experiment iteration is similar to agile software engineering, and also a few ways in which it differs. What if there is no product owner who knows how to prioritize ideas? How do we manage infrastructure building tasks in parallel with experimentation? How do we write tests for pipelines whose data is constantly changing?
Learning Outcomes:
  • Participants will learn some practices which have worked in the past to run data science teams on agile principles with rapid iteration.


Speakers
TM

Terran Melconian

Data science manager, consultant, and trainer, Air Network Simulation & Analysis Inc


Wednesday April 19, 2017 16:15 - 17:00
Room 3

16:15

Small Steps to a Large Refactoring (Doc Norton)
Abstract:
You know that area of the code nobody wants to touch? It's been sitting there forever, just doing it's thing. It is a functioning shanty town of code. And you know, as everyone on the team knows, that there is no such thing as a simple change to this code. Because the "solution" is coupled in the strangest ways, code seemingly separate from the module you're working on breaks when you make the most mundane of changes.
But today, you picked up a user story that, try as you might, you cannot figure out a way to implement without either digging into the internals of the shanty town or bolting another hovel onto the side. You can't keep adding onto this mess. You're going to have to roll up your sleeves and fix it. But how? One change breaks 2 other things, which when modified each break 2 more. You're destined for a path of exponential brokenness that will take weeks to fix and when it's all done, you have to make one huge commit.
Ugh.
Enter the Mikado Method.
The Mikado Method is a relatively simple means of approaching these exact problems. By probing the code, we learn where changes need to take place. We then start at the outer edges and work our way in. We can commit small changes that don't break the system and iterate our way towards a solution. It might still take two weeks to implement this simple change, but we've derisked the entire process.
In this session, Doc shows an example of the Mikado Method in use and welcomes audience members to contribute both to the coding and the discussion.
Learning Outcomes:
  • Mikado Method for refactoring Legacy Code safely
  • Refactoring Patterns


Speakers
avatar for Doc Norton

Doc Norton

CEO, CTO2
Doc is passionate about working with teams to improve delivery and building great organizations. Once a dedicated code slinger, Doc has turned his energy toward helping teams, departments, and companies work better together in the pursuit of better software. Working with a wide range of companies such as Groupon, Nationwide Insurance, and Belly, Doc has applied tenants of agile, lean, systems thinking, and servant leadership to develop highly... Read More →


Wednesday April 19, 2017 16:15 - 17:00
Room 1

16:15

Unit Testing with ApprovalTests (Llewellyn Falco)
Abstract:
When I look back at every time I have not written a unit test first. It was either because I didn’t really know how to do it effectively, or how to do it at all.
Of course, this doesn’t mean it can’t be done, just that I hadn’t learned how to… yet.
This session is about how I’ve learned to test many things I used to think were impossible. Usually in a just a few lines of code.
Want to test that a gui looks right? No problem.
That the Html and CSS render correctly. Piece of cake.
Is the noise reduction function making the audio sound better? I can do that.
That database query from the ORM is working? Sure. Even if the database is down. Yep!
This is going to be a compare and contrast type session. We will look at lot’s of examples of standard unit tests vs the same test using an ApprovalTesting framework like: TextTests, PealFish, Depicted (dpxdt) or ApprovalTests.
Learning Outcomes:
  • The 4 benefits of testing
  • Increasing Feedback
  • How to create custom asserts
  • How to test many 'untestable' things


Speakers
avatar for Llewellyn Falco

Llewellyn Falco

Agile Coach, Spun Labs
Llewellyn Falco is an Agile Technical Coach specializing in Legacy Code and Test Driven Development. He is the creator of the open source testing tool ApprovalTests( www.approvaltests.com ), co-founder of TeachingKidsProgram ( www.teachingkidsprogramming.org ) and a PluralSight author.


Wednesday April 19, 2017 16:15 - 17:00
Room 2
 
Thursday, April 20
 

08:30

Agile Data Warehousing: Building a Virtualized ODS (Operational Data Store) (Kent Graziano)
Abstract:
At a past client, in order to meet timelines to fulfill urgent, unmet reporting needs, we found it necessary to build a virtualized Operational Data Store (ODS) as the first phase of a new agile DW/BI project using the Data Vault 2.0 approach. This allowed us to deliver new objects, quickly and incrementally to the report developer so we could quickly show the business users their data. In order to limit the need for refactoring in later stages of the data warehouse development, we chose to build this virtualization layer on top of a Type 2 persistent staging layer. All of this was done using Oracle SQL Developer Data Modeler (SDDM) against (gasp!) a MS SQL Server Database. In this talk I will show you the architecture for this approach, the rationale, and then some of the tricks I used in SDDM to build all the stage tables and views very quickly. In the end you will see actual SQL code for the virtual ODS that you can leverage for your own projects.
Goals:
  • learn a data warehouse architecture that can be implemented incrementally and in layers
  • learn what a Virtual ODS is and how it can help you be Agile
  • how to quickly build pattern based stage tables in SDDM
  • how to build complex, pattern based views in SDDM
  • tip on how to use analytic functions to create virtual columns
  • see examples of how to embed change data capture into a view-based ELT loading architecture
Learning Outcomes:
  • * see above


Speakers
avatar for Kent Graziano

Kent Graziano

Senior Technical Evangelist, Snowflake Computing
Kent Graziano is a Senior Technical Evangelist for Snowflake Computing and an award winning author, speaker, and trainer, in the areas of data modeling, data architecture, and data warehousing. He is an Oracle ACE Director, a certified Data Vault Master and Data Vault 2.0 Practitioner (CDVP2), expert data modeler and solution architect with more than 30 years of experience, including two decades doing data warehousing and business... Read More →


Thursday April 20, 2017 08:30 - 10:00
Room 2

08:30

Cross-Platform Full-Stack Deployment with pkgsrc (Amitai Schleier)
Abstract:
Sure, it works on your machine. But how confident are you that your Linux servers provide the same runtime environment as your Mac laptop? And when there's a security hole somewhere in your app stack, how quickly and safely can you upgrade to fix it? How much happier would you be if you could generate identical software configurations for your dev and prod boxen, no matter what OS they run?
Stop crossing your fingers that brew-ing here and apt-get-ing there will produce matching results. You deserve DevOps happiness! Learn how to pronounce "pkgsrc" -- and how a practical, proven cross-platform package manager can save you from the kind of surprises that ruin your week.
What to bring
  • A laptop,
  • Running any Unixy OS (Windows even counts, if you're feeling adventurous),
  • With a working C compiler,
  • And a downloaded, unzipped pkgsrc-current tree
Learning Outcomes:
  • How pkgsrc helps you...
  • - Install the shiniest, newest Git
  • - Package a famously gnarly Ruby gem from source
  • - Package Vim with an embedded interpreter for Ruby, Python, Perl, or Lua
  • - Update OpenSSL to address the latest vulnerability (can't wait to find out what it'll be this time)
  • - Build your own custom set of ready-to-deploy binary packages
  • - Package up your own application using its existing build process


Speakers
avatar for Amitai Schleier

Amitai Schleier

Software development coach, Pillar Technology
Amitai Schleier (@schmonz) is an enlightened doofus, software development coach, legacy code wrestler, non-award-winning musician, and award-winning bad poet. He publishes fixed-length micropodcasts at Agile in 3 Minutes, writes variable-length articles at schmonz.com, and contributes code and direction to notable open-source projects such as NetBSD, pkgsrc, and ikiwiki. Amitai’s ideas, prose, music, and puns have manifested at Agile Roots... Read More →


Thursday April 20, 2017 08:30 - 10:00
Room 2

08:30

Test Driven - A Deep Dive Into How Testing Shapes Code (Brian Haggard)
Abstract:
Test driven development gets its roots from XP and is a popular development practice in most agile circles. Tests help us gain confidence in the correctness of our code, so code that is driven by tests starts life with a good deal of confidence. Or at least that is the reason many people try out TDD in the first place. Instead of focusing on whether or not the promise of error-free code is fulfilled by test driven development or exploring if the added cost of writing tests is worth the additional time, I'd like to explore with the audience how tests and the mindset of the test writer shapes the code being tested. Come for lots of code samples as we explore some of the ways that testing shapes a codebase.
Learning Outcomes:
  • A deeper understanding of how testing shapes the code you write


Speakers
BH

Brian Haggard

Principle Agile Engineer, Emerson Electric
Victim of grace, husband, father, son and developer.


Thursday April 20, 2017 08:30 - 10:00
Room 3

08:30

Your First TDD Experience (James Grenning)
Abstract:
You've heard about TDD but have never tried it or don't quite get it. The best way to get TDD is to try it by pairing with an experienced TDD practitioner. In this workshop you will get a brief overview and demo of TDD, but way more. We will all practice TDD in a language of your choosing (C, C++, Java, C#). Bring a laptop or a tablet with a keyboard so you can access my custom cyber-dojo.org server and begin doing TDD with no special tool setup. I'll set up a virtual pairing experience, I write the tests, you make them pass. You will know what TDD is after this session.
Learning Outcomes:
  • Why TDD?
  • What is TDD?
  • See how TDD prevents defects.
  • Witness TDD.
  • Experience the cadence and small steps of TDD.
  • Experience right-sized unit tests.
  • Get your questions about TDD answered.


Speakers
avatar for James Grenning

James Grenning

President, Wingman Software Consulting
James Grenning’s trains, coaches and consults worldwide. With more than three decades of software development experience, both technical and managerial, James brings knowledge, skill, and creativity to software development teams and their management.  As his professional roots are in embedded software, James’ mission is to bring state-of-the-art technical and management practices to embedded development teams. He is the author of... Read More →


Thursday April 20, 2017 08:30 - 10:00
Room 1

10:20

Cloud Native Java (josh long)
Abstract:
“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.
Learning Outcomes:
  • to optimize for organizational agility by building microservices


Speakers
JL

josh long

Spring Developer Advocate, Pivotal
Josh (@starbuxman) is the Spring Developer Advocate at Pivotal. Josh is a Java Champion, author of 5 books (including O'Reilly's upcoming ""Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry"") and 3 best-selling video trainings (including ""Building Microservices with Spring Boot Livelessons"" w/ Phil Webb), and an open-source contributor (Spring Boot, Spring Integration, Spring Cloud, Activiti and... Read More →


Thursday April 20, 2017 10:20 - 11:05
Room 1

10:20

Serverless Microservices with Microsoft Azure (Ron Quartel, Steve Kuo)
Abstract:
Microservice architecture comes with many rewards – but also many challenges. We set out on a challenge to see if we could bypass much of the complications by using SAAS and PAAS exclusively. We are happy to share what we found available within Microsoft Azure and just how quick and simple it was to get going with 100% serverless computing in this environment. You will be able to watch real time as we create services in the Azure cloud with this tool set.
Learning Outcomes:
  • Understanding of Microsoft Azure SAAS and PAAS services and how to wire them together for microservices.


Speakers
SK

Steve Kuo

Agile Software Craftsperson, Premera Blue Cross of Washington
I like to be hands on delivering high quality value to users in a sustainable way. I'm not afraid to challenge convention and have very strong beliefs that are loosely held.
avatar for Ron Quartel

Ron Quartel

Product Manager, Premera Blue Cross
Ron loves software and creating harmony in the workplace. His agile and Extreme Programming experiences go back to 2002 and have built into strong technical skills and deep understanding of agile methods. Microservices is exciting because it solves both a technical problem at the same time creates an agile environment because of the small independent teams. Done right, it is like getting agile for free.


Thursday April 20, 2017 10:20 - 11:05
Room 3

10:20

The Rationale for Continuous Delivery (Dave Farley)
Abstract:
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.
Learning Outcomes:
  • Why and how does Continuous Delivery change the economics of software development? What does excellence in software development process look like? What are the fundamental principals that enable organizations around the world to benefit from these techniques?


Speakers

Thursday April 20, 2017 10:20 - 11:05
Room 2

11:15

Elisabeth Hendrickson's AATC Session (Elisabeth Hendrickson)
Abstract:
*
Learning Outcomes:
  • *



Thursday April 20, 2017 11:15 - 12:00
Room 1

11:15

Five XP Practices for Agile Development (David Bernstein)
Abstract:
*These five development practices are core to Extreme Programming (XP)—automating the build for continuously integrating software as it is written, collaborating with team members through pair programming, practicing agile design skills that enable testability, using test first development to drive design, and refactoring code to reduce technical debt. Together, these five technical practices are proving to be essential for sustained success with agile development. However, many teams haven’t been exposed to the benefits of these practices or understand how to use them effectively. David Bernstein explores these engineering practices and their use in reducing risk and building quality in at every level of the development process. He makes the business case for these practices by showing how they address the inherent risks and challenges of building software. David then examines how XP practices address the core issues of software development by helping us “build the right thing” and “build the thing right.”
Learning Outcomes:
  • *Gain a deeper understanding of XP practices and why they are not what they seem
  • Use continuous integration to reduce risk in building software
  • Employ pair programming to propagate knowledge throughout the team
  • Recognize five code qualities at the core of all good developer practices
  • Adopt test driven development to rapidly build higher quality code
  • See how refactoring is used to help you work faster by reducing technical debt


Speakers

Thursday April 20, 2017 11:15 - 12:00
Room 2

11:15

Security at Scale. Building a Security First Technical Organization (Pete Cheslock)
Abstract:
Computers are hard, and security is even harder. While you're building a bespoke host based intrusion detection system to monitor for advanced persistent threats, vulnerabilities are uncovered in 30 year old core unix programs. Even worse, the same junior level operations engineer who can (accidentally) provision thousands of systems and blow your budget away, is the same person who can make one small change to a security group which now allows all access to your backend systems.
The cloud is making it easier than ever to provision systems to meet your infrastructure needs -- and to do so very quickly. Speed to market is a major competitive advantage that many companies are leveraging through the concept of Infrastructure as Code. Provisioning hundreds or thousands of compute instances in mere minutes is now considered an everyday activity. Everyone wants to move fast.
The long contested battlefield of remote access to production machines has only gotten uglier since the rise of The Cloud, which has obliterated the line between building the system and running the system. “Lock out the developers” is not an acceptable policy anymore. Developers inherently build better systems when they experience running them.
Continuous Integration. Continuous Deployment. But who (or what) is continually monitoring the state of your operational security?
We'll discuss the role of security in this new *aaS landscape. We'll talk about things to do when you have a dedicated Infosec team, and tools you can use when you don't. We'll explore what it means to build in security in the same way you build in quality as part of your continuous delivery pipelines. And how you can strengthen your security posture while maintaining your ability to move quickly and deliver value to your customers.
Learning Outcomes:
  • Everyone should hopefully leave with at least one practical action item they can take back to their company and implement.


Speakers
avatar for Pete Cheslock

Pete Cheslock

Sr Director, Ops and Support, Threat Stack


Thursday April 20, 2017 11:15 - 12:00
Room 2

13:30

Cucumbers Have Layers: A 'Knife Skills' Class (Sam Livingston-Gray)
Abstract:
Cucumber features are hard to write, and constantly break when the UI changes. But what if the fault lies not with the tool, but with the way we use it?
After years of making awful messes with Cucumber, I finally found a style that worked well, and a project I couldn't have done without it. I'd like to help you discover a way to use Cucumber that can be elegant, powerful, expressive, more accessible to your stakeholders, and resilient to even the most drastic of UI changes.
PS: Cucumber haters are welcome! Just don't heckle too much and we'll be fine.
Learning Outcomes:
  • You'll learn from, and hopefully laugh at, my abominations^W mistakes.
  • You'll find Cucumber's sweet spot of abstraction: not super nitpicky, but not too hand-wavy either.
  • You'll take away a short question you can use as a quick "gut check" to stay in that sweet spot.
  • You may even be inspired to try an advanced technique that may, at first, sound a little bit wacky.
  • And if you've sworn off Cucumber, you *might* just be prompted to give it another look.


Speakers
avatar for Sam Livingston-Gray

Sam Livingston-Gray

Senior Software Developer, Real Geeks, LLC
A developer from sunny* Portland, Oregon, Sam's been working in code | since 1998, doing TDD since 2004, slinging Ruby since 2006. He likes | TDD/BDD/TATFT, pair programming, and refactoring—but finds that long | walks on the beach tend to result in sandy keyboards. Sam co-hosts a | tech and tech culture podcast at greaterthancode.com. | | * YMMV


Thursday April 20, 2017 13:30 - 15:00
Room 3

13:30

Edge Free Programming (Michael Feathers)
Abstract:
Many systems are full of error checks and conditional logic. Each of these introduce discontinuities and make reasoning difficult. In this workshop, Michael Feathers will introduce the concept of an Edge and describe how removing them and bypassing them in code and UX can lead to systems that are more robust and easier to use and maintain.
Learning Outcomes:
  • Attendees will learn concepts and practices for smoother development


Speakers
MF

Michael Feathers

Director, R7K Research & Conveyance
Michael Feathers is the Founder and Director of R7K Research & Conveyance, a company specializing in software and organization design. Prior to forming R7K, Michael was the Chief Scientist of Obtiva and a consultant with Object Mentor International. Over the past 20 years he has consulted with hundreds of organizations, supporting them with general software design issues, process change and code revitalization. A frequent presenter at national... Read More →


Thursday April 20, 2017 13:30 - 15:00
Room 1

13:30

Mollie Callahan's AATC Session (Mollie Callahan, Laura Elliott)
Abstract:
In the software industry, the ultimate measure of business value is how well the software produced meets the needs of end users. In this session, Menlo High-tech Anthropologists will walk you through their unique rapid iterative design process and their collaboration with developers during implementation to ensure that user feedback effectively informs all phases of design and development. This will be a hands-on session focused on: design revision and assessment practices, persona-based storycards, and
communication across cross-functional teams.
Learning Outcomes:
  • *


Speakers
avatar for Mollie Callahan

Mollie Callahan

MENLO Innovations
Mollie Callahan is a member of the High-Tech Anthropology® design team at Menlo Innovations, a design and development firm that builds user-centered software and provides organizational change consulting. She is as passionate about translating ethnographically-grounded user insights into functional designs and strategic solutions as she is about teaching Menlo's High-Tech Anthropology process to tour guests and workshop attendees.  ... Read More →


Thursday April 20, 2017 13:30 - 15:00
Room 4

13:30

What Not to Test? (Alex Freire)
Abstract:
If there's one technical agile practice that everyone has a different opinion about, it's testing. The debate between the Chicago (no mocks) and London (mocking) schools of thought has been going on for more than a decade! Some claim that if you believe in POs and BAs writing acceptance tests with Gerkhin you're living in fairy land. Others that writing automated tests is a waste and that cheap QAs should catch all the bugs instead. And just to name a few influencers on opposites of the spectrum: @DHH thinks TDD is dead; while @KentBeck wishes there were more examples of what not to test!
We see a lot of value in TDD and BDD but are not blindly obsessed with these practices. We don’t question the value of having tests for your project, but we do question the value of testing absolutely everything. Over the years, we've discovered that deleting tests is just as important as writing them!
In this workshop, you will see real examples of tests we've seen (or written ourselves) that we don't believe add value to your test suite. You will also have a chance to discuss why you would delete, rewrite or rethink these tests
Learning Outcomes:
  • You'll leave our session with an informed opinion on what not to test in your project and, who knows, maybe you’ll even start deleting some of your tests. What’s more, you'll better understand how to test what is essential.


Speakers
avatar for Alex  Freire Kawakami

Alex Freire Kawakami

Director, Industrial Logic
Alex, who was one of the Agile pioneers in Latin America, now consults internationally, speaking frequently at conferences to help communities worldwide expand beyond their comfort zones. A programmer, coach, scientist, student and teacher, Alex loves learning and doesn't shy away from changing his mind. | As Director at Industrial Logic, he focuses on enabling our team to deliver quality software and solve real world problems through Modern... Read More →


Thursday April 20, 2017 13:30 - 15:00
Room 2

15:20

Ansible, AWS, and Awesomeness (Brian Felton)
Abstract:
Monoliths or microservices? Server or serverless? Cloud or self-hosted? No matter your preference for architecture or platform, your software inevitably must be delivered to production. And we don't get to stop at the initial delivery -- there are upgrades and rollbacks and scaling and other matters to consider. With time and without good automation, these realities turn once-solid systems into fragile, special snowflakes.
This session explores one team's journey to create robust automation for a system of serverless, cloud-hosted microservices. We will show a working system that provides a simple and automation-friendly method for deploying services of various complexity into AWS. Come for a deep dive into automation with Ansible while we explore the value in automating the tail end of the software development lifecycle.
Learning Outcomes:
  • * Exposure to usage of Ansible as a cloud provisioning tool and an Ansible-generation tool
  • * Exposure to one solution for handling complex deployments without creating hidden contracts
  • * Discussion of the challenges both of automating deployments in a serverless world and of building this system


Speakers
BF

Brian Felton

Principle Agile Engineer, Emerson


Thursday April 20, 2017 15:20 - 16:50
Room 4

15:20

Communication Artifacts: What’s Your Code's Legacy? (Andrea Goulet)
Abstract:
Legacy code. It's those dirty brownfield applications that no one wants to work on. How do you make sure that your project never becomes one of those dreaded projects? And if you’ve inherited a dirtfield app, how do you turn it back around into a gorgeous greenfield?
The answer to both of these questions may surprise you: seeding your app with good communication artifacts. In this talk, Andrea Goulet, the CEO of Corgibytes, a shop that specializes in working on legacy code bases, will give you specific and immediately actionable ideas to ensure the legacy of your codebases stays as green as possible. You’ll learn how to:
● Avoid interruptions by effectively “seeding” artifacts throughout your work ● Use the ideas of inception layers to talk about your availability ● End the dreaded git blame game
● Create code that continues to provide value years after you write it.
If you’re ready to take your code legacy to the next level, this is one talk you won’t want to miss!
Learning Outcomes:
  • *


Speakers
avatar for Andrea Goulet

Andrea Goulet

CEO, CorgiBytes LLC
Andrea is the CEO of Corgibytes, a software development shop dedicated to maintaining and modernizing software applications. She’s the founder of LegacyCode.Rocks and hosts a podcast dedicated to changing the way we think about legacy code. Andrea has a knack for solving complex business problems with simple solutions and is passionate about user experience.


Thursday April 20, 2017 15:20 - 16:50
Room 3

15:20

The S.O.L.I.D. Principles of OO and Agile Design (Robert Martin)
Abstract:
What happens to software? Why does is rot over time? How does an Agile development team prevent this rot, and prevent good designs from becoming legacy code? How can we be sure our designs are good in the first place? This class presents the agile S.O.L.I.D. principles for designing object oriented class structures. These principles govern the structure and interdependencies between classes in large object oriented systems. The principles include: The Open Closed Principle, The Liskov Substitution Principle, and the Dependency Inversion Principle, among others.
Learning Outcomes:
  • *


Speakers

Thursday April 20, 2017 15:20 - 16:50
Room 1

15:20

Unit Test Abstraction: Crafting Sustainable Tests (Jeff Langr)
Abstract:
Don't end up twirling down the bad-test death spiral! Coding unit tests is an investment, and if you're not careful, it will all be for naught: Many teams quickly built a significant number of unit tests, only to find out that their low quality pushes them into disuse, then to disrepair/dysfunction, and ultimately to discarded.
Part of sustaining TDD or "test-after development" (TAD) unit testing is recognizing that the tests must play a role as documentation on the behaviors of the system under test. In this hands-on workshop, we'll focus on applying the notion of abstraction--amplifying essential elements and suppressing irrelevant details--to unit tests. You'll learn to sniff out a couple hands-ful of test smells that relate to poor test abstraction. You'll work on eliminating these smells to create tests that are literary and emphasize immediacy of understanding. (And you'll hear a bit about why this pays off.)
You'll find codebases for this workshop in Java and C#. Download before the session from https://github.com/jlangr/utabstraction and get ready to clean up!
Learning Outcomes:
  • the concept and value of emphasizing abstraction in tests
  • how to recognize smells in tests
  • how to eliminate smells from tests
  • how to use tests as entry points for understanding system behaviors
  • how to negotiate test readability by pairing


Speakers
avatar for Jeff Langr

Jeff Langr

Owner, Langr Software Solutions, Inc.
Jeff Langr has been professionally building software for over a third century. He is the author of five books on software development: Pragmatic Unit Testing in Java 8 with JUnit, Modern C++ Programming with Test-Driven Development, Agile in a Flash, Agile Java, and Essential Java Style. Jeff provides consulting and training services through his company, Langr Software Solutions, Inc. He lives in Colorado Springs.


Thursday April 20, 2017 15:20 - 16:50
Room 3
 
Friday, April 21
 

08:30

Infrastructure as Code - Agile engineering for your environments (Kief Morris)
Abstract:
You may be building, testing, and delivering code, but how do you manage your environments? "Early and continuous delivery of valuable software" is much easier when you can rapidly provision infrastructure, and guarantee its consistency and correctness across development through to production. It turns out that the same agile principles and practices you use for software can be applied to delivering infrastructure.
This talk describes the goals and core principles of Infrastructure as Code - the "A" for "Automation" in the DevOps "CALMS" model. What are Patterns and antipatterns for using cloud and infrastructure automation tools like Chef, Puppet, Ansible, Saltstack, etc. See how you can apply test Driven Development (TDD), Continuous Integration (CI), Continuous Delivery (CD) and other Agile practices to your full systems.
Learning Outcomes:
  • *


Speakers
avatar for Kief Morris

Kief Morris

Cloud Practice Lead, ThoughtWorks
Kief Morris is Cloud Practice Lead at ThoughtWorks, and the author of the O'Reilly book "Infrastructure as Code" (http://oreil.ly/1JKIBVe). He works with organisations to understand how to take advantage of cloud, infrastructure automation, DevOps, and Continuous Delivery to become more effective at delivering IT services. Originally from Tennessee, Kief moved to London in the dot-com days and has been there ever since.


Friday April 21, 2017 08:30 - 09:15
Room 1

08:30

Isomorphic Reactive Programming (Giorgio Natili)
Abstract:
No matter which technology you use, your software should be able to efficiently handle user interaction and data streams to satisfy all requested use cases.
In order to manage the fast growth of data sources and interaction paradigms, we must shift to a non-blocking and sequential programming paradigm--which can be solved through Reactive Programming.
In Reactive Programming, everything can be seen as a sequence of events. In conjunction with function composition, Reactive Programming is a powerful tool to leverage readability, maintainability, and testability on any layer of your software.
During this session, we'll dive into Reactive Programming and, with the help of the Reactive Extensions API, discover how to translate use cases and acceptance criteria in a stream of events across multiple platforms.
(Code labs to be provided in JavaScript, Kotlin, Swift, and Java).
Learning Outcomes:
  • - Fundamentals of reactive programming
  • - Fundamentals of the reactive extensions API
  • - Fundamentals of parallel programming


Speakers

Friday April 21, 2017 08:30 - 09:15
Room 3

08:30

Moving from technical debt to organizational health through systems thinking (Declan Whelan)
Abstract:
Most of us have worked in situations where a large amount of effort is spent addressing defects, support calls and technical debt. I recently worked with one team where they estimated that only 20% of their time was devoted to new value work and 80% of that effort was spent working around the technical debt. In other words they are operating at less than 5% of their potential.
How does code get into such horrible shape? The pattern seems pervasive enough that an appeal to craftsmanship is insufficient. I believe that there are larger systemic forces at play.
In this talk, I will present technical debt, not as a problem but as a measure. It is a measure of the technical health of your organization. Large technical debt is analogous to high blood pressure. Addressing high blood pressure likely entails a lifestyle change involving diet, exercise and so on. Addressing the symptom of technical debt will similarly shed light on organizational changes such as hiring practices, optimizing for project delivery over sustainable product development and so on.
Learning Outcomes:
  • deeper understanding of the root causes of technical debt
  • appreciation of the connections between value streams, organizational structure and technical health
  • insights into improving technical health in your organization
Attachments:

Speakers
avatar for Declan Whelan

Declan Whelan

Leanintuit
Helping organizations improve value steams and their organizational structure.


Friday April 21, 2017 08:30 - 09:15
Room 2

09:25

MicroServices, IoT, and Agile... Seriously! (Fred George)
Abstract:
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 discuss our implementation in my own flat, following all the Agile principles, and almost none of the “standard” practices. We wrap up talking about the challenges of this using my IoT technology of 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.
Learning Outcomes:
  • Architects, managers, and developers benefit from understanding the impact to Agile of a continuous deployment, MicroService implementation environment. Attempting to apply “standard” Agile practices in such an environment is counter-productive.


Speakers
avatar for Fred George

Fred George

Fred George Consulting
Fred George is an industry consultant, and has been writing code for over 46 years in (by hiscount) over 70 languages. He has delivered projects and products across his career, and in thelast decade alone, has worked in the US, India, China, and the UK. He started ThoughtWorksUniversity in Bangalore, India, based on a commercial programming training program hedeveloped in the 90s. An early adopter of OO and Agile, Fred continues to impact the... Read More →


Friday April 21, 2017 09:25 - 10:10
Room 1

09:25

Understanding Software Faster: Automated Code Simplification via Program Slicing (Alan Shreve)
Abstract:
Conceptualization and understanding are prerequisites for changing software. But they become harder to achieve as software becomes more complex and expands in scope. We have many tools for writing software, but few at all for reading and understanding it. What if there were tools that helped us conceptualize systems so that we could change them with greater confidence? What would they look like and how would we use them?
I will describe a new approach that helps developers rapidly build understanding of new software systems by generating an Idealized Commit Log: a simplified step-by-step deconstruction of a working software system. I will explain how the tool works by touching upon a diverse set of topics including type analysis, code coverage tools, AST transformations and a much-ignored topic of academic computer science pioneered nearly forty years ago called program slicing.
Learning Outcomes:
  • A better understanding of the problem of software comprehensibility
  • History and foundations of program slicing
  • A new approach for understanding software


Speakers

Friday April 21, 2017 09:25 - 10:10
Room 2

09:25

Zero Bugs: State of the Practice (Stephen Vance)
Abstract:
Create software with Zero Bugs! Is that your reality? Why or why not?
We've heard the mantra, an extension of the Zero Defects movement introduced in manufacturing in the 60s. Is it achievable? How do you achieve it? What does it mean? What challenges do you run into? Are they technical, people, or organizational issues? All of the above? The reasons probably go deeper than you realize.
This talk will look at all aspects of what it takes to adopt and deliver on a Zero Bugs promise. We'll cover a wide range of technical approaches, along with some opinions on their effectiveness and applicability. We'll talk about the people issues from whether people believe it's possible to overcoming the obstacles in applying it. Finally, we'll talk about some of the organizational, habitual, and structural issues that complicate its pursuit.
Learning Outcomes:
  • * What does it mean to have Zero Bugs?
  • * What techniques can I use in pursuit of Zero Bugs and what are some of their pros and cons?
  • * What gets in the way of Zero Bugs and how can we address them?


Speakers
avatar for Stephen Vance

Stephen Vance

Principal Consultant, Stellar Advances
Stephen Vance (@StephenRVance, vance.com) has served in most roles in the software product development process across a wide range of industries and technologies. For the last several years, he has focused on coaching teams in Lean and Agile approaches to development and testing as a practitioner, manager and consultant. He is currently an independent Agile and technology consultant. He is the author of Quality Code: Software Testing... Read More →


Friday April 21, 2017 09:25 - 10:10
Room 3

10:30

Being Agile About System Qualities: Values, Practices, and Patterns (Rebecca Wirfs-Brock)
Abstract:
In a sprint to deliver features, software qualities or “non-functional requirements” such as security, performance or reliability can be slighted or sometimes even ignored. This hands-on workshop introduces you to several patterns and practices for weaving quality-related work into your project rhythms and techniques for keeping system quality requirements in mind, measurable, and tangible. You will also learn some options for how you can adapt these practices to fit your preferred way of working.
Learning Outcomes:
  • Understand how quality-related activities can fit into your development process
  • Understand the mechanics of writing agile quality scenarios and quality-related acceptance criteria
  • How to define and use landing zones to incrementally specify key system qualities
  • How to run an agile quality workshop
  • Options for writing system quality scenarios
  • Know the difference between read-do and do-confirm checklists and natural pause points for running a quality-related checklist


Speakers
avatar for Rebecca Wirfs-Brock

Rebecca Wirfs-Brock

President, Wirfs-Brock Associates
I'm best known as the "design geek" who invented Responsibility-Driven Design and the xDriven meme. I'm also keen about team effectiveness, communicating complex requirements, software quality, pragmatic TDD, and techniques for architecting and reducing risk on agile projects and programs. I'm a slow jogger... if anyone is interested in early morning runs while at Agile 2014 it'd be fun to meet and go on a run.


Friday April 21, 2017 10:30 - 12:00
Room 4

10:30

Keep It Short (Craig Buchek)
Abstract:
As I've learned to improve the way I work, I've discovered that almost everything we do needs to be smaller. We would benefit from smaller stories, smaller tests, smaller classes, smaller methods, and smaller commits.
In this workshop, we'll spend some time looking at how to make each of these things smaller, and the advantages of spending the time to do so. Then we'll break into pairs to work on some real code, to get some practice in finding ways to improve our code by finding the smaller pieces.
Learning Outcomes:
  • * How smaller helps us focus at every level
  • * Techniques to help write more readable code
  • * Techniques for refactoring to smaller functions/methods/classes
  • * Writing smaller stories
  • * Writing more concise tests
  • * Saving time on estimating with smaller stories


Speakers
CB

Craig Buchek

BoochTek
Craig is an independent consultant specializing in helping teams improve the way they work — both their processes and their technical practices. He works as an Agile player/coach on Rails rescue projects, DevOps automation, and anything else he finds interesting. | | Craig has been in the IT industry for over 20 years. He got started with Extreme Programming in 2003. He's one of the hosts of the podcast This Agile Life. | | When he's... Read More →


Friday April 21, 2017 10:30 - 12:00
Room 3

10:30

Matt Heusser's AATC Session (Matthew Heusser)
Abstract:
Roughly inspired by "do you even lift"
https://www.youtube.com/watch?v=OloLS5kTrVs
Here's the text. I'd do the intro, add material, then, after "but seriously folks", do a "seriously seriously" thing.
1) Do you have automated unit tests?
No -> Do you even need to automate the gui? Automate unit tests first!
Yes -> Cool
2) Do you have continuous integration running on every commit (or a
specific tag - at least for every story?)
No -> Do you even need to automate the gui? Automate the build first!
Yes -> Cool
3) Can you get your own virtual environment for any story in under fifteen minutes? (Really should be three but I'm generous)
No -> Do you even need to automate the gui? Automate provisioning first!
Yes -> Cool
4) Can you deploy (and hotfix or rollback) a build to production with a
button click in less than five minutes?
No -> Do you even need to automate the gui? Automate deploy first!
Yes -> Cool
5) Do you have a component architecture, so that you can test/deploy a
small piece of the application at a time - test/deploy in a day or less?
(Should be 2 hours but I'm generous)
No -> Do you even need to automate the gui? Separate the component
architecture first!
Yes -> Cool
6) Do you have a standard backend database that you can clear/refresh, or good test data?
No -> Do you even need to automate the gui? Automate database refresh first!
Yes -> Cool.
7) Do you have a low regression rate - so that changes to one piece of the software are unlikely to cause problems with other areas - or even within
the same component?
No -> Do you even need to automate the gui? Improve code craft and refactor. Stop finding bugs and instead, stop having bugs. Man.
Yes -> Cool.
8) Is the front-end even designed to handle gui-driving, with predictable
ID elements?
No -> Do you even need to automate the gui? Build testability hooks for a
few months as a good first step.
Yes -> Cool software team, bro.
8) "But Matt, our testers don't have access to the source code, they can't
unit test, all they have is the GUI."
Right. So what you have is not a testing problem. And test automation won't
solve it. Instead, you'll write a bunch of brittle stuff that may be thrown
away and forgotten. What are you, richard bradshaw?
No-> Do you even need to automate the gui?
Yes -> I AM RICHARD BRADSHAW.
9) You are richard bradshaw? You should know better. You should do a tutorial on things to automate beyond the GUI!
Answer: I did
http://www.ministryoftesting.com/masters-of-the-ministry/courses/taking-automation-checks-beyond-webdriver/, Matt.
Cool software project, bro.
BUT SERIOUSLY FOLKS.
This idea is not new. I can't seem to find it in google, but I believe Jim Shore gave a talk at an Agile Alliance Functional Test Tool Workshop called
"We don't need another functional test tool"; at least some remnants of something like that appear on his blog
http://www.jamesshore.com/Blog/The-Problems-With-Acceptance-Testing.html.
It all boils down to: Heavy GUI automation is what deming would call mass inspection. (and it ain't great mass inspection unless you add a visual comparison layer.) We're better off reducing errors and the impact of those errors (through faster fix/test/deploy cycles). High functioning teams can solve the problems that intense GUI automation intends to solve by doing less, not more. And really, that's the key to going faster at anything -taking things away.
Teams that are low-performing, that are behind all the time, that have a high regression rate, that can't create a test environment quickly, that can't deploy quickly ... these teams are unlikely to be well served trying to reverse-engineer GUI automation -- essentially adding an entire new project that they are unqualified to do, on top of the current project (at which they are behind) in their spare time. Of course, you could add budget and hire an automator, which historically has mixed results. You could also
take your money to vegas. That has mixed results too.
Don't get me wrong. I think a small slice of build verification GUI checks, and checks that look at essential functions (for eCommerce, that's login, search, path to purchase, PCI) those can be a great idea. They are also the very top of the pyramid.
Why you so busy spending all that time on the cherry on top when the Sundae is moldy banana and spoiled icemilk? Because it's cool?
Get your automation priorities in order.
Think about it.
Learning Outcomes:
  • *


Speakers
avatar for Matthew Heusser

Matthew Heusser

Principal Consultant, Excelon Development
The winner of the 2014 Most Influential Test Professional Person, awarded in Potsdam, Germany and 2015 Most Popular Contributor to Agile, Matt Heusser is the currently managing director of Excelon Development. In his role at Excelon, Matt consults, trains, and does software delivery, and is the lead instructor for the Lean Software Delivery course and method.


Friday April 21, 2017 10:30 - 12:00
Room 2

10:30

Mob Programming Demonstration (Woody Zuill)
Abstract:
We will invite some volunteers from the audience to work as a Mob Programming team on a simple coding exercise facilitated by Woody Zuill. We'll provide instruction on the basics of Mob Programming, and Woody will guide the team both as a "product owner" and as a facilitator to demonstrate some of the basic techniques of teamwork and collaboration.
This is a mini-version of a Mob Programming Workshop due to the time limits of the session, but we'll still be able to cover some important things such as how to work together, how to communicate our intent, how to keep calm when things aren't going well, and how to take baby steps using Test-Driven Development.
Learning Outcomes:
  • The basics of Mob Programming
  • How to introduce Mob Programming to your teams
  • How to give each member of the team a chance to contribute
  • What it takes to be a decent team member
  • The importance of Kindness, Consideration, and Respect


Speakers
avatar for Woody Zuill

Woody Zuill

Application Development Manager, Hunter Industries
I've been a software developer for 30+ years, and I'm an Agile enthusiast. I work as an Agile Coach with the original "Mob Programming" team, and have been instrumental highlighting "No Estimates" concepts. | | I've enjoy sharing my Agile experiences, and learning new things. If you are ever in the San Diego area please stop by and "Mob" with us. | | I maintain and write for both the http://mobprogramming.org website, and my own blog at... Read More →


Friday April 21, 2017 10:30 - 12:00
Room 1

13:30

Engineering the Red Planet (Dr. Anita Sengupta)
Abstract:
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 sent landed platforms of increasing complexity, increasing our understanding of the Red Planet’s ancient past.
This talk will discuss the motivation for Mars exploration and how engineering challenges are tackled with new technology, and out-of-the-box thinking. Engineering the Red Planet is the key to our future and to understanding our past.
Learning Outcomes:
  • *



Friday April 21, 2017 13:30 - 15:00
Room 1