Loading…
deliver:Agile 2018 has ended

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

Session [clear filter]
Monday, April 30
 

10:20 CDT

Mastering Legacy Code: Preventing Bugs in Code You Can't Test (Arlo Belshee)

Abstract:
"I can't test this code because the design is awful. I can't refactor because I don't have tests. Yet it keeps having (and breeding) bugs. Now what?"
--- Everyone, everywhere
I've talked in the past about how this apparent catch-22 is resolved by a better understanding of the word "refactoring" --- that using a specific set of techniques allows defect detection and prevention even in untested --- or untestable --- code. Now I'm going to show you those techniques by applying them to some gnarly code.
This session is 75% live-coding, 25% talking. Most of the talking will be me asking you questions. So come if you want to think, want to get your hands dirty, and want to see specifics that you can try to apply immediately in your own code.
Agenda:
  1. Microtesting: understanding what the code does and deriving a spec.
    1. Resolve microtesting blocker: mechanically spot CQRS violations; resolve them via extract method + make method static.
    2. Resolve microtesting blocker: mechanically spot multiple responsibilities in a class; resolve them via extract method + make method static + introduce parameter object.
  2. Safeguarding: preventing bugs by eliminating hazards.
    1. Remove hazard: primitive obsession leads to inconsistent computation; resolve it via introduce parameter object + extract method + move method.

Learning Outcomes:
  • See a new way to test, with best features of both a unit test and an acceptance test.
  • Observe that testing this way induces design pressure, and use that to guide your design.
  • Spot and address the 2 most-common design obstacles to testing.
  • Understand that defects are not spontaneous; they can be prevented by addressing hazards.
  • Spot and address the #2 bug-creation hazard (#1 is naming, and that is already well-addressed in other work).
  • Pick which habits to take home and learn by applying on your code.


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... Read More →


Monday April 30, 2018 10:20 - 11:05 CDT
Lone Star F/G

10:20 CDT

The Tester's Mission (Ash Coleman)

Abstract:
Have you ever struggled to get features out the door, only to realize you are behind schedule? Have you ever been on time with your release, but realize after that you have to revert back because of catastrophic bugs? Have you ever wished there was more clarity into the development process, and the potential risk of deployment of a feature?
I have, and I believe these are questions we have all asked or have grappled with at one point or another. They are common questions when looking to deliver software, and will likely be questions we ask on all projects we work on. And so, the real question is, where do we find answers?
Testers!
In this talk, I will direct you to a secret source; tapping into the well of the Quality Assurance team. A team whose focus is producing a quality product by conducting test plans and appropriate coverage for your product. They work interactively with other roles within engineering to insure all approaches to development are covered and accounted for. And they work cohesively within Agile ceremonies to reveal areas of risk and provide feedback concerning each deployment. They are the additions you never knew you had. With quality being the responsibility of everyone on the team, they work as an added level of assurance to round out the development process, and secure a better deployment. When given the space, they have the ability provide the resources needed to help find answers to these hard questions, and better prepare the team for the unknowns of delivering software.
This is the tester's mission.

Learning Outcomes:
  • We will take a walk through the power of understanding a tester's contributions on an agile team, and how to see the semblance of having a successful delivery when testers are closely integrated on the team by discussing:
  • - Testing Plans, Coverage, and Matrixes,
  • - The importance of establishing clear Definitions of "Ready" and "Done,"
  • - Testers participation and voice in Agile Ceremonies, and
  • - The art of testing and pair testing


Speakers
avatar for Ash Coleman

Ash Coleman

Head of Diversity & Inclusion, Credit Karma
Ash focuses her efforts within technology on bringing awareness to inclusion of women and people of color, especially in the Context Driven Testing and Agile communities. Though technology and inclusion have her heart today, engineering was not her first love. A former chef, Ash crafted... Read More →


Monday April 30, 2018 10:20 - 11:05 CDT
Lone Star D

11:15 CDT

Cops and Robbers: Bootstrapping Team Unity Through Working Agreements (Matthew Plavcan)

Abstract:
Building an empowered team requires alignment. However, it's often assumed rather than agreed. From chartering to coding conventions, working agreements help teams to seek consensus and resolve disputes. They provide a mechanism for teams to take control of their development destiny, especially when the corporate process or adoption appears to restrict their autonomy. Starting from practical examples, we explore ways that technical working agreements can provide better code reviews, pairing, architecture, and team development. Collectively creating these effective negotiations within teams enable them to move from managed to motivated.
This session is for team members and servant leaders who facilitate their team's development. Attendees to the session will:
  • Describe the role of the decision making process in team conflict
  • Understand how the creation of an agreement is as important as the contents
  • Explore the advantages of working agreements in companies where structured process already exists
  • Integrate technical decision making process into software development habits

Learning Outcomes:
  • Describe the role of the decision making process in team conflict
  • Understand how the creation of an agreement is as important as the contents
  • Explore the advantages of working agreements in companies where structured process already exists
  • Integrate technical decision making process into software development habits


Speakers
avatar for Matthew Plavcan

Matthew Plavcan

Technical Coach, Tacit Focus


Monday April 30, 2018 11:15 - 12:00 CDT
Lone Star D

11:15 CDT

FP vs. OOP: Beyond the Bikeshed (Colin Jones)

Abstract:
In object-oriented languages like Ruby, people often say that “everything is an object”—but first-class functions have become standard for object-oriented languages too. C# has had them and other related features for years, and even Java is in the game these days! Some “functional” languages seem to have some very object-oriented-looking features, too. If that sounds wrong to you, let's talk about polymorphism and more in languages like Clojure, Elixir, and even Haskell! So where does object-oriented programming (OOP) end and functional programming (FP) begin?
In this session, you’ll learn to look at these programming paradigms with a more critical eye, focusing on where FP and OOP folks fundamentally disagree, where these paradigms have more in common than the industry's rhetoric suggests, and how you can use those insights to make better decisions about the software you build.

Learning Outcomes:
  • - Deeper understanding of the different emphases of the functional and object-oriented programming paradigms, and of the overlap between their respective language implementations.
  • - More critical thinking and charity in technical discussions and debates.


Speakers
avatar for Colin Jones

Colin Jones

CTO, 8th Light
Colin Jones is CTO at 8th Light, where he works with teams to craft reliable, maintainable software. He's into application performance, security, DevOps, architecture, and functional programming. He is the author of Mastering Clojure Macros (Pragmatic Press, 2014).


Monday April 30, 2018 11:15 - 12:00 CDT
Lone Star E

11:15 CDT

Noisy Code: The SNR Conjecture (Tim Ottinger)

Abstract:
We will focus solely on how clearly and starkly code presents its intention: its Signal-to-Noise Ratio (SNR).
We will explore this one aspect as a potential replacement for other measures and heuristics of code quality.
When the meaning and mechanics of any passage (paragraph, function, or page) of source code are both apprehended easily, that code is
  • faster to skim
  • faster to read deeply
  • faster to improve
  • quickly identified or excluded as the site of a defect
Reaching that point of easy comprehension is trickier. Relying on catalogs of code smells and/or automated code quality metrics can leave a lot of room for misunderstanding:
  • One passage of code may strictly have low cyclomatic complexity, low line count, no constants, low operator density, and longer variable names but remain tricky to modify
  • Another passage can be terse, dense, and use short names but remain easy to understand and modify until the metrics system requires a developer to make it less dense and thereby less understandable.
Come see some examples of low-signal (or high-noise) software, in a "before and after" format, and let's discuss how and whether this one aspect makes code craft more learnable and teachable, and deepens your awareness of code quality.

Learning Outcomes:
  • Those in the room will learn a (perhaps) new way to consider their code, and to teach others to consider the code they write.
  • Attendees will focus on the essential nature of the code, and their ability to use code craft to cooperate with their IDEs for faster/safer coding.


Speakers
avatar for Tim Ottinger

Tim Ottinger

Anzeneer, Industrial Logic
Tim is a long-time programmer (since 1979), reviewer, speaker, writer. He has been active in many of the big changes in software over the past 36 years (including Design Patterns, Object-Oriented Design, and Agile software development). In addition to his contributions in "Clean... Read More →


Monday April 30, 2018 11:15 - 12:00 CDT
Lone Star F/G

15:20 CDT

Optimizing For Collaboration: Unlocking The Continuous Fountain of Ideas (GeePaw Hill)

Abstract:
In his work addressing the complexity of software development, GeePaw has identified four "separations" of the larger problem, areas we seek to optimize for maximum performance: Drive, Sustenance, Pathfinding, and Collaboration. In this session, we'll take a brief overview of that work, then focus in on optimizing for collaboration. The scarce resource in the geek trade is ideas. Fortunately, collaboration provides a nearly infinite source. As such, we need to take special pains to arrange our structure and process to enable F2D2: Frequent Focused Direct Dialog. We'll consider a variety of ways we can enable & encourage collaboration in and across our teams. This will be a short talk followed by a good long wrangle: come prepared to opine!

Learning Outcomes:
  • * The "Color Separation" approach to addressing complexity.
  • * The F2D2 Goal
  • * Collaboration Modes and Heat Maps
  • * Tricks for Breaking Structures


Speakers
avatar for GeePaw Hill

GeePaw Hill

Coach, GeePawHill.org
GeePaw Hill is an independent software development coach. A geek for nearly 40 years, he has been doing, teaching, and coaching software using the various techniques of agility since the late '90s. He has worked with large teams and tiny ones all over the world, creating everything... Read More →


Monday April 30, 2018 15:20 - 16:05 CDT
Lone Star D

15:20 CDT

So You Want To Go Faster? A Roadmap for Continuous Deployment (Daniel Davis)

Abstract:
How frequently does a good agile team deploy to production? Not every team is capable of deploying "on every commit". What does it take for a team to even start deploying at the end of each sprint, or each week, or each day?
Most companies don't realize that deploying more frequently often requires both significant technical change as well as cultural change. In this talk, I'll guide you through what it takes to deploy more frequently. I'll draw on the unique challenges that teams must overcome at each step of the way, from deploying once a month all the way down to full continuous delivery. If your team has been struggling to go faster, come see how you can change to get there. And if you already are at full continuous delivery, come see how to go even faster than that!

Learning Outcomes:
  • Attendees should leave the talk with a full understanding of the different challenges for deploying at these intervals:
  • - Once per sprint
  • - Every few days
  • - Daily
  • - On Every Commit
  • Attendees will learn about important DevOps techniques, including:
  • - Blue/Green Deployments
  • - Feature Toggles
  • Attendees will be able to answer to these common cultural questions:
  • - Why does more frequent deployment not translate into more risk?
  • - How do you ensure quality without a dedicated QA team of manual testers?
  • - Do all deployments deliver functionality?
  • - Is it actually ok to let commits go to production without human intervention?


Speakers
avatar for Daniel Davis

Daniel Davis

Managing Consultant, Excella Consulting
I love testing, Agile and cats. If any of those things interest you, come find me. If any of those interests overlap (e.g. Agile cats), definitely come find me!


Monday April 30, 2018 15:20 - 16:05 CDT
Lone Star B/C

15:20 CDT

Unit Tests as Specifications (David Bernstein)

Abstract:
Test-driven development is a core practice of Extreme Programming (XP) and the “secret sauce” for some teams, enabling them to rapidly build quality code. But for other teams it’s an impediment that keeps them from refactoring code and increases their technical debt. TDD is supposed to help us refactor code safely but we often find that when we refactor our code we also have to change our tests, and what was supposed to add safety becomes a burden, requiring time and effort to keep tests up to date.
Writing good unit tests is a critical skill that developers need to master in order to get the most benefit from test-driven development. Tests must be unique, written at the right level of abstraction, and implementation-independent in order to be most valuable. When we understand how to use tests to articulate the behaviors we want to create, we can recognize the correct number and kind of tests needed to describe the behavior we want to build, putting every member of a team on the same page and building the right kind and number of tests that drive the creation of any behavior in the system. Our tests become a form of living specifications.
In this session, we’ll cover effective techniques for doing TDD that support building useful tests and quality code. You’ll learn how to instrument unit tests so they’re more readable and flexible. Instrumentation helps make a test’s intention clear and removes magic numbers from code.
You’ll also learn how to approach TDD in a way that yields the right number and kind of tests that allow you to refactor code later without breaking it. Working through a few code examples, we’ll see how many assertions are required to specify a linear range, exceptions, and other boundary conditions. We’ll look at how to write tests that don’t need to be changed when code is refactored while still keeping test coverage high.
If you’ve struggled to apply TDD on a project, or are just not sure how to start, then this session is for you.

Learning Outcomes:
  • Avoid the common pitfalls of doing TDD
  • Identify the minimal number of tests required to specify a behavior
  • Avoid writing implementation-dependent tests
  • Build test suites that acts as a safety net for refactoring
  • Instrument tests so they read more like specifications
  • Use unit tests to specify testable behaviors

Attachments:

Speakers
avatar for David Bernstein

David Bernstein

Consultant, To Be Agile
David Scott Bernstein is the author of the new book _Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software._ It’s an insider’s view of the software industry drawn from his decades of hands-on experience as a software developer, trainer, and consultant... Read More →


Monday April 30, 2018 15:20 - 16:05 CDT
Lone Star F/G

16:15 CDT

Elixir: a potion for building scalable, fault-tolerant systems (Declan Whelan)

Abstract:
While microservices offer a way to easily compose and scale systems they pose some challenges. Designing our systems functionally with simple data structures and composable functions can help. Elixir is rapidly emerging as a language and ecosystem to build systems in this way. We will explore Elixir and show how it can be used to build highly scalable, performant fault-tolerant systems. I will demo a running example of an Elixir application that brings the main concepts together.

Learning Outcomes:
  • How to build evolutionary microservices with Elixir.
  • Applying Domain Driven Design to functional solutions.


Speakers
avatar for Declan Whelan

Declan Whelan

Leanintuit
Helping organizations improve value steams and their organizational structure.


Monday April 30, 2018 16:15 - 17:00 CDT
Lone Star E

16:15 CDT

Healthy Agile Product Security (Molly Crowther)

Abstract:
When people think of product security, they think of an enforcer telling them "no" or "don't do that" or "I'm surprised you didn't know that". At Cloud Foundry, we're trying to improve product security while building a healthy agile security culture. This session will include real-life examples of how a globally-distributed engineering team is working on a secure development lifecycle, some pain points we've hit along the way, and best practices for shipping security features quickly and (relatively) painlessly. Participants will come away with the knowledge of why and how to improve the culture of product security at their organization.

Learning Outcomes:
  • Participants will come away with the knowledge of why and how to improve the culture of product security at their organization.


Speakers
avatar for Molly Crowther

Molly Crowther

Senior Technical Program Manager, Pivotal
Molly Crowther is a Senior Technical Program Manager at Pivotal, working on security strategy and vulnerability management for Cloud Foundry. She also helps lead security workshops for open- and closed-source Cloud Foundry teams in North America and Europe.


Monday April 30, 2018 16:15 - 17:00 CDT
Lone Star D

16:15 CDT

Home DevOps - Doing all the right things on a small scale (Bryan Beecham)

Abstract:
You have an idea for an app. It’s going to be amazing! Of course you want to test drive it to build it right. But you have to get it out there fast. You need to use an Agile, lean startup approach, with all the benefits of DevOps. And it needs to grow quickly and iteratively. The big problem is that your full staff accounts to one person… you.
In this session, you will learn how to make your app dreams come true. Using python, git and Heroku, Bryan will demonstrate a simple way to quickly iterate on your ideas, moving code through tests and deploying right to production.

Learning Outcomes:
  • - Practice DevOps in a safe environment
  • - Create hobby projects using technical practices
  • - Mange projects with Heroku
  • - Setup an API project


Speakers
avatar for Bryan Beecham

Bryan Beecham

Sr. Agile Consultant, Iceberg Ideas Inc
Bryan Beecham is known for providing passionate and innovative software development guidance. As a consultant with companies ranging from small startups to large Fortune 500 companies, he matches his advice to their needs and capabilities. He has a particular interest in helping individuals... Read More →


Monday April 30, 2018 16:15 - 17:00 CDT
Lone Star B/C
 
Tuesday, May 1
 

10:20 CDT

Agile Schizophrenia: Consistent Agile is the Hobgoblin of Little Minds (Fred George)

Abstract:
Consistent Agile has one guarantee: Consistent failure, or mediocrity at best. Agile is no more a universal set of practices any more than Java (or Ruby or Fortran in my day) is a universal language, or Spring a universal framework, or Angular.js a universal UI tool.
In this talk, we will explore the behavioral purpose behind the practices, and assert that once the behavior is achieved, the practices serve as a barrier to success, or at a minimum, a barrier to further process innovation. Understand that these practices, radical in their time, were meant to break the chains of waterfall thinking. Unfortunately, these practices have too often become new, gilded chains.
We make two arguments for flexibility in team-to-team, project-to-project Agile practices. First, the type of problems we are solving today vary greatly. We will expound on that with Dave Snowden’s Cynefin framework.
Second, we will dissect several key Agile processes, making claims about the intended behavior for the practice. Once that behavior is achieved, the value of the process is largely gone, and sometimes even an inhibitor to further progress. As an Agile practitioner for nearly two decades, I will talk about my use and removal of these processes.
We briefly present several signs that your current Agile process is staid (ie, not Agile anymore!)
We wrap up by looking at a UK retailer, and how they have adopted different practices for different purposes.

Learning Outcomes:
  • The audience should understand rationale for various Agile practices, and the point at which the Agile practice becomes an inhibitor rather than facilitator. The material should also help justify new experiments in the processes in Agile teams in their companies.


Speakers
avatar for Fred George

Fred George

Founder, Fred George Consulting
Fred George is an industry consultant, and has been writing code for 50 years in (by his count) over 70 languages. He has delivered projects and products across his career, and in the last decade alone, has worked in the US, India, China, and the UK. He started ThoughtWorks University... Read More →


Tuesday May 1, 2018 10:20 - 11:05 CDT
Lone Star F/G

10:20 CDT

Communicating With Code: Writing Tests That Don't Suck (Chris Stead)

Abstract:
When we write tests around code, not only are we verifying that the underlying behaviors adhere to expected specifications, we are telling the next programmer about how our program works. In this talk we will examine the act and practice of writing tests and moving beyond verifying behavior to start communicating effectively about our program interface and how it is used.

Learning Outcomes:
  • - An understanding of why refactoring is appropriate for tests
  • - How to leverage patterns like dependency injection to simplify test setup
  • - How to construct useful domain models to enhance information embodied in their tests


Speakers

Tuesday May 1, 2018 10:20 - 11:05 CDT
Lone Star D

10:20 CDT

From Apollo 13 To Google SRE: When DevOps Met SRE (Sanjeev Sharma)

Abstract:
The complexity of managing and delivering the high level of reliability expected of web-based, cloud hosted systems today, and the expectation of Continuous Delivery of new features has led to the evolution of a totally new field of Service Reliability Engineering catered for such systems. Google, who has been a pioneer in this field, calls it Site Reliability Engineering (SRE). While it would be more aptly named Service Reliability Engineering, the name has caught on. The seminal work documenting Google approach and practices is in the book by Google by the same name (commonly referred to as the ‘SRE book’), and has become the defacto standard on how to adopt SRE in an organization. This session will cover adopting SRE as a practice in large enterprises.

Learning Outcomes:
  • - Understand SRE
  • - How does SRE align with Agile
  • - How does SRE align with DevOps
  • - Adopting SRE in an enterprise
  • - Use examples from the Apollo 13 incident as analogies to SRE in an Agile/DevOps environment


Speakers
avatar for Sanjeev Sharma

Sanjeev Sharma

Distinguished Engineer, IBM
Sanjeev Sharma is an internationally known DevOps and Cloud Transformation thought leader, technology executive, and author. Sanjeev's industry experience includes tenures as CTO, Technical Sales leader, and Cloud Architect leader. As an IBM Distinguished Engineer, Sanjeev is recognized... Read More →


Tuesday May 1, 2018 10:20 - 11:05 CDT
Lone Star E

11:15 CDT

Applying Agile Practices To Improve Infrastructure Automation and Network Segmentation (Jason Tice)

Abstract:
Have you ever considered how agile practices such as automated testing could provide benefit to infrastructure engineers & operations staff that design and maintain the environments that run your code? In this talk, we will highlight how modern infrastructure concepts including: infrastructure as code, automation / orchestration, and network segmentation impact agile development activities. Moreover, if your team has adopted solid agile testing & technical practices (such as continuous integration, automated integration tests, and automated regression tests), your tests could provide valuable data & insights to enable infrastructure & operations staff to design and maintain a highly reliable, scalable, and secure environment to run your code. Join us to learn how agile practices (that you are already supporting) can provide additional impact by confirming infrastructure and network configuration changes do not cause unintended consequences to your code.

Learning Outcomes:
  • Awareness for how modern infrastructure practices such as automation, orchestration, and network segmentation impact agile software development.
  • Opportunities to use existing practices for agile testing and software development to support modern infrastructure activities.
  • Suggestions on how agile software developers can partner better with Infrastructure and Operations staff to reduce risk of configuration and network changes.
  • Opportunities to learn insights from others in the session by creating impact maps of how to apply agile practices to reduce risk of infrastructure and/or network configuration changes.


Speakers
avatar for Jason Tice

Jason Tice

Vice President, Asyncrhony
Jason Tice has over 15 years of experience using collaborative activities and games to help organizations, their teams and their customers achieve clarity and alignment to enable high performance. More recently, Jason has led efforts to adapt collaboration frameworks familiar to agile... Read More →


Tuesday May 1, 2018 11:15 - 12:00 CDT
Lone Star E

11:15 CDT

Politics & Hierarchy: How We Create It & How to Stop (Katherine Kirk)

Abstract:
Ever had that heavy disappointment when you join an ‘empowered team’ and realise that politics and hierarchy are still driving behaviour.. and it won’t stop? Ever been frustrated that no matter what you do the political games just endlessly confuse and muddy any earnest attempt at doing work? Even in LeanAgile teams? What the hell is going on? Is it hopeless?
In this talk, drawing from her deep practical experience as a transformation specialist, Katherine challenges traditional thinking by using Eastern Philosophical models as lenses to explore new ways of thinking of how politics and hierarchy arise even in the most LeanAgile environments – and has a few suggestions on what we might do about it.

Learning Outcomes:
  • The forces behind what drives us to create politics
  • Ways we might unwind political difficulties
  • What you can do about it


Speakers
avatar for Katherine Kirk

Katherine Kirk

Agile/Lean Coach, Independent
Now an independent consultant and researcher, Katherine has solid experience contracting and freelancing in a variety of roles within the IT and Media industries: from blue chip investment banking to media conglomerates. She has spent time as an Agile Coach at Rally after a period... Read More →


Tuesday May 1, 2018 11:15 - 12:00 CDT
Lone Star D

11:15 CDT

Technology Agility: The Cloud.. The Cloud.. Fantasy Island? (Dave Cornelius)

Abstract:
What would you do if your customers loudly complained about application slowness, your data center did not allow you to scale, and your technology future was on another platform?
Let us share what we did to WIN within 6 months! We used Kanban, a lean / agile practice to support frequent delivery and minimize work in progress (WIP). We optimized by rewriting key areas using microservices to be Cloud native on Platform as as Services (PaaS). Retained older solutions that would run on a Cloud Infrastructure as a Service (IaaS). Integrated with systems hosted at our on-premise data center. Finally, use DevOps or CloudOps to ensure our IT team were able to maintain and support the application. The goal was Performance, Reliability, and Scalability.

Learning Outcomes:
  • At the conclusion of this presentation participants will be able to:
  • 1) Understand the need for a Digital Transformation Strategy
  • 2) Discover the difference between IaaS, PaaS, and Hybrid models and use each model appropriately
  • 3) Learn about Microsoft Azure good, bad, and ugly experiences

Attachments:

Speakers

Tuesday May 1, 2018 11:15 - 12:00 CDT
Lone Star B/C

15:20 CDT

Technical Practices in an Agile Transformation (Al Shalloway)

Abstract:
Many developers have had the experience of learning new development methods such as TDD and design patterns only to find they can’t readily use them in their current situation. These skills, however, are very critical to Agile improvements. But we seem caught in a ‘catch-22’ situation. The answer is by looking at the challenges present and solutions required and creating a road map for adoption.
The first step is to become aware of the need for safety, lowering risk while you pay down technical debt. We must also be aware of how the changes to our eco-systems (i.e., the way our teams work together) due to Agile improvements will cause problems. This is Conway’s corollary - when you change your team structure, Conway’s law will work against you.
This talk presents an approach to move out of this dilemma:
1) Create agreements among your team members on the objectives you are trying to achieve as well as your agreed to behavior – e.g., Hippocratic oath of coding (leave your code at least as good as it was before you touched it)
2) Wrap your system with tests for safety
3) Some practices that can be used to improve practices gradually, but across the board (e.g., programming by intention, encapsulation of constructors)

Learning Outcomes:
  • Attendees will understand the issues they must attend to while being provided a few simple practices that will move them forward.


Speakers
avatar for Al Shalloway

Al Shalloway

CEO, Net Objectives
Founder and CEO of Net Objectives.Co-founder of Lean-Kanban University (no longer affiliated). SPC Trainer. Co-author of 4 books on Lean, Scrum, Design Patterns and Agile Design. Happy to talk to anyone who wants a free consult. Also, are looking for folks who'd like to work with... Read More →


Tuesday May 1, 2018 15:20 - 16:50 CDT
Lone Star B/C
 
Wednesday, May 2
 

08:30 CDT

Back-end Developer's guide to UI and UX design: You have users too! (Burk Hufnagel)

Abstract:
You may not have thought about this but, as developers, we are all user experience designers. It's true. Whether we do it intentionally it or not, we create user experiences every time we write code that someone else interacts with. If you've ever used an API that behaved exactly the way you expected it to you, it's likely that someone took the time to think about who would be using that API and what their needs were. On the other hand, if you've ever tried to debug a 200 line method that did six different things, you can bet the person who wrote it wasn't thinking about maintainability, or how difficult it would be for someone trying to understand that code.
In this session we'll look at the three most common types of users we serve, what their user interface looks like, and ways to improve those interfaces and their user experience.

Learning Outcomes:
  • You will "meet" three types of users you probably didn't know you have, and understand how to design a better user experience for them.
  • You will understand the fundamentals of good User Interface and User Experience Design, and how to apply them to writing code.
  • You will walk away with a deeper appreciation of the user experiences all around you.


Speakers
avatar for Burk Hufnagel

Burk Hufnagel

Technical Architect, Daugherty Business Solutions
UI/UX Design, Behavior Driven Development, Test Driven Development, Building better software in less time


Wednesday May 2, 2018 08:30 - 09:15 CDT
Lone Star E

08:30 CDT

Test Driven Development with Cucumber (Ken Pugh)

Abstract:
Cucumber is usually considered a customer acceptance test automation tool. However in many situations, it can be used as a unit testing framework as an alternative to JUnit. Cucumber tests separate the test structure in feature files from the implementation in step definition files. This separation can increase maintainability. You can create customer readable tests for business rules and domain terms, rather than using less customer-readable code. Having alternative tools allows you to use the one that best defines the test specification.

Learning Outcomes:
  • Applying an alternative way of expressing unit tests
  • Using a common test representation for both ATDD/BDD and TDD
  • Separating test structure from test implementation for maintainability
  • Representing customer domain terms and business rules as customer readable tests


Speakers
avatar for Ken Pugh

Ken Pugh

Chief Consultant, Ken Pugh, Inc.
Ken Pugh helps companies evolve into lean-agile organizations through training and coaching. His special interests are in collaborating on requirements, delivering business value, and using lean principles to deliver high quality quickly. Ken trains, mentors, and testifies on technology... Read More →


Wednesday May 2, 2018 08:30 - 09:15 CDT
Lone Star B/C

08:30 CDT

Underestimated costs of microservice architectures (Colin Jones)

Abstract:
With many business success stories, our beautiful software systems can degrade into monolithic Big Balls of Mud. And to fix these kinds of monstrosities, we as developers and architects have begun to reach for microservices as our solution. Beautifully-designed architecture diagrams and org charts clearly show the benefits in terms of coordination, batch size, and codebase understandability, but is it really all unicorns and rainbows?
As folks who have been down this road can tell you, microservice architectures don’t solve all our problems. Tradeoffs abound, and in this talk we’ll see the costs we need to be prepared to pay when we introduce microservices, including team dynamics as well as technical tradeoffs around consistency, failure handling, and observability.

Learning Outcomes:
  • Deeper familiarity with microservice architectures
  • Ability to make more informed decisions about microservices based on tradeoffs in the form of costs and benefits.


Speakers
avatar for Colin Jones

Colin Jones

CTO, 8th Light
Colin Jones is CTO at 8th Light, where he works with teams to craft reliable, maintainable software. He's into application performance, security, DevOps, architecture, and functional programming. He is the author of Mastering Clojure Macros (Pragmatic Press, 2014).


Wednesday May 2, 2018 08:30 - 09:15 CDT
Lone Star D

09:25 CDT

Applying Agile to Big Data and Machine Learning (Ade Miller)

Abstract:
It might seem like a Big Data or Machine Learning project wouldn't lend itself to an agile software development approach. The "Big" in Big Data implies lots of infrastructure and up front work in order to get things moving before a single piece of useful user functionality can be delivered. In fact the very experimental nature and huge unknowns implicit in almost all of these projects makes an agile approach very well suited.
Ade Miller has spent the last four years working on Big Data and Machine Learning projects, first and CenturyLink Cloud and more recently at Conga. He will be presenting the results of his experiences successfully delivering with agile. In addition to talking about his experiences, what worked and what didn't, he will also be discussing how to adjust your agile approach to take into account the unique constrains of these types of project.

Learning Outcomes:
  • Attendees will have a clear understanding of the constraints that big data and machine learning focused projects place on the agile software development lifecycle. In addition they will understand opportunities presented by taking an agile approach to such projects.


Speakers
avatar for Ade Miller

Ade Miller

Technical Fellow, Conga
Ade Miller currently leads the Machine Learning Engineering Team at Conga, building the ML infrastructure behind their Contract Life-cycle Management products. Before joining Conga Ade led team responsible for CenturyLink Cloud's analytics platform. A highly distributed system providing... Read More →


Wednesday May 2, 2018 09:25 - 10:10 CDT
Lone Star B/C

09:25 CDT

Building Your Team to Last (Sarah Withee)

Abstract:
Hiring and onboarding new team members is an expensive and risky process. It's crucial to hire people who mesh well with the existing team and get them up to speed in a timely manner. Balancing this while minimizing the initial impact on productivity is often a challenge for even the most experienced lead developer.
This talk will cover some tips on building your successful team. We'll discuss:
  • How to choose the right types of people to add to your team.
  • How to onboard and mentor your new team members, including patterns of ineffective mentoring and why they're harmful to the team.
  • How everyone can benefit from bringing on junior developers and interns the right way.
By the end, you'll see how your whole team will benefit from these strategies.

Learning Outcomes:
  • Strategies for choosing good teammates to hire to optimize successful team
  • Ways to onboard new team members to optimize both the team and new person's time


Speakers
avatar for Sarah Withee

Sarah Withee

Polyglot software engineer
Sarah Withee is a polyglot software engineer, public speaker, teacher and mentor, and hardware and robot tinkerer located in Pittsburgh, PA. She has a passion for technology, and has ever since she wrote her first computer programs in elementary school. She captivates audiences with... Read More →


Wednesday May 2, 2018 09:25 - 10:10 CDT
Lone Star D

09:25 CDT

Need for Speed: Accelerate Automation Tests From 3 Hours to 3 Minutes (Emanuil Slavov)

Abstract:
All automated tests except unit are slow for today’s fast paced, first-to-marked environment. This is the elephant in the room that every Agile practitioner ignores. With slow automated tests you’re just shipping problems to production faster.
At Komfo, we had automated tests running for more than 3 hours every night. The execution time just kept growing unrestricted, and the tests were getting more unstable and unusable as a feedback loop. At one point the continuous integration build for the tests was red for more than 20 days in a row. Regression bugs started to appear undetected in production. We decided to stop this madness and after considerable effort and dedication, currently the same tests run for 3 minutes. This is the story of how we achieved nearly 60x faster tests.
This was accomplished by using Docker containers, hermetic servers, improved architecture, faster provisioning of test environments.
Running all your tests after every code change, in less than 5 minutes will be key differentiator from now on. In 5 years it will be a standard development practice, much like unit tests and CI are considered these days. Start your journey today.
Learn how to do this by applying four steps strategy:
Tests should create the data they need.
Use dedicated automation testing environment.
Simulate dependencies you don’t control.
Run in parallel and optimize.

Learning Outcomes:
  • Being able to execute all your tests after every code change, in less than 5 minutes will very soon be your competitive advantage.
  • Apply our proven four step strategy.
  • Avoid the common pitfalls we've identified on this journey.


Speakers

Wednesday May 2, 2018 09:25 - 10:10 CDT
Lone Star F/G

09:25 CDT

What's next in UX: An introduction to Chatbot Design (Sydney Bee)

Abstract:
Conversational user interfaces have a wide appeal for both consumers users and business enterprises. More than half of the consumers today are interested in interacting with a business using messaging apps to solve a problem. As the number of bots on various platform has grown exponentially over the past year, many B2C and B2B companies have incorporated bots in their mobile strategies, and the tools to build chatbots are now readily accessible. This presentation will include an introduction of what chatbots are, their design components and UX best practices.

Learning Outcomes:
  • Chatbot’s strengths and weaknesses as a type of interface
  • Essential design components for various use cases of bots
  • Build a conversation script or create a user story


Speakers
avatar for Sydney Bee

Sydney Bee

Mobile Product Owner, Liberty Mutual
Product manager & design strategist passionate about marrying quantitative and human-centered approaches to extract insights, drive innovation, and measure outcomes.


Wednesday May 2, 2018 09:25 - 10:10 CDT
Lone Star E

13:30 CDT

Agility for Data? (Elisabeth Hendrickson)

Abstract:
Here’s the thing about data: it’s sticky, often rigid, and rarely feels agile. Yes, there are patterns that help increase the agility of data. Ruby on Rails, for example, has data migrations that not just allow but actively encourage incremental schema design. However all too often we hear about relational databases becoming a defacto API between subsystems, and thus resistant to change. It’s not just relational databases. Even supposedly unstructured data stored as key value pairs can be difficult to change if every piece of code that uses the data has duplicated logic to manage the semantic meaning of the data. Further, in-database logic such as rules, stored procedures, or user defined functions can be remarkably difficult to unit test. Finally, there are the often strict data governance requirements that necessitate keeping tight authorization control. Application developers have a wealth of tools and practices available to support incremental delivery. System administrators have DevOps tools and practices to support repeatable, automated operations. Where are the equivalents for data-centric work? Bringing agility to your data strategy may feel like an impossible goal, but it is possible. In this talk we consider the various ways in which data can impede agility, and how to make data strategies more agile-friendly.

Learning Outcomes:
  • * The myriad ways in which data can make change difficult and expensive
  • * How to think about breaking apart the monolith in the context of data
  • * How to lower the cost of change curve for data schemas by applying agile / devops principles to data-related practices



Wednesday May 2, 2018 13:30 - 14:15 CDT
Lone Star E
  Session, Talk - 45 minutes

13:30 CDT

Patterns of Iterative Architecture (Chris Gow, Declan Whelan)

Abstract:
In Agile you should start with the simplest thing that will give you value, and iteratively build on top of that. But how does that work with a Legacy Enterprise Application that everyone is terrified to touch? Or what if we need to build an application that handles millions of transactions a day? How can we make sure that our architecture will meet our needs two years from now, when we don’t know what the application will look like? And how does the process of architecture work in an Agile environment?
Join Chris and Declan in this interactive session, as they explore these topics. Learn architectural patterns that allow you to evolve your architecture. Examine techniques to help you work with legacy apps and dependencies. Learn how good architecture allows us to manage technical risk. See how business and technical people can work together to build an iterative plan for your product, both functionally and architecturally.

Learning Outcomes:
  • What is Evolutionary Architecture and why it is essential
  • How to balance evolvability with the other capabilities architecture provides
  • The factors that enable or limit the evolvability of an architecture
  • Patterns (and anti-patterns) for evolutionary architecture, in green-field and legacy systems


Speakers
avatar for Declan Whelan

Declan Whelan

Leanintuit
Helping organizations improve value steams and their organizational structure.


Wednesday May 2, 2018 13:30 - 14:15 CDT
Lone Star F/G

13:30 CDT

Sufficient Design: Quality Tuned To Context (Joshua Kerievsky)

Abstract:
How could a big glob of complicated Greasemonkey script be considered beautiful? What if it saved a company millions of dollars, let them rocket past their competitors and only cost $40 dollars to produce?
Our notion of beautiful code is incomplete when it ignores the business context of code. An elegant software solution to a problem must handle many competing forces, only one of which is technical beauty.
Genuine professionals must work in sync with business, not foolishly produce poorly-designed working code or blindly following rigid rules about “clean code”. A Sufficient Design is one that fits the business context perfectly. It may be technically elegant, good, mediocre or even poor. We set quality levels to be in sync with business context and adjust quality in response to changing business conditions.
In this talk I’ll share real-world stories and lessons learned about Sufficient Design.

Learning Outcomes:
  • Understand what Sufficient Design is, when it's useful and learn about real-world examples of it.


Speakers
avatar for Joshua Kerievsky

Joshua Kerievsky

Joshua is the CEO of Industrial Logic.  Since the late 1990s, he has been actively practicing and improving Agile methods, from Extreme Programming to Lean Development  and Lean Startup. Joshua is an international speaker and author of the best-selling, Jolt Cola-award winning book... Read More →


Wednesday May 2, 2018 13:30 - 14:15 CDT
Lone Star D