Loading…
deliver:Agile 2018 has ended

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

Practicing [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

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

13:30 CDT

Mob Programming Mini-Workshop (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

Independent Agile Guide, Independent Agile Guide
I've been a software developer for 36+ years, and I'm an Agile enthusiast. I work as an Independent Agile Guide. I worked with the original "Mob Programming" team at Hunter Industries, and have been instrumental highlighting "No Estimates" concepts. I've enjoy sharing my Agile experiences... Read More →


Monday April 30, 2018 13:30 - 15:00 CDT
Lone Star B/C

15:20 CDT

Design Primer for Agile Teams (Basia Coulter)

Abstract:
Tech companies are increasingly investing in design. To stay relevant and competitive in a digital age, in which new technologies come and go faster than we fully learn how to use them, prioritizing design and user experience (UX) is simply good business.
While many development teams customize their Agile processes to make room for design and UX, design continues to be the first on a chopping block if cuts are made to a project. “We could make it look nicer, but it’s working,” continues to be an all too common rationale. And it’s hard to argue with such statements in the context, in which “working software is the primary measure of progress.”
Design, including visual, user interface (UI), and UX design, is not, however, about making things look nicer. Design is a tool we employ to plan and modify systems in order to make them work better. It is also a language, a means of communication. In the case of software development, UX design is about planning and modifying the system to best fit user mental models, while visual and UI design are tools used to communicate the resulting functionality to the user through an interface. Design improves experience by reducing cognitive load and facilitating decision-making processes, and it helps make software usable. After all, the value of “working software” is limited if that software does not work for the end user.
This talk is meant for all members of Agile development teams, from developers (including embedded user experience designers) to product owners, and for designers working with Agile teams, who are interested in understanding how design harnesses the properties of human perception and cognition to communicate meaning and support comprehension.
Basia will discuss selected elements of human perception and cognition, including pattern recognition, Gestalt principles, mental models, and decision-making, demonstrate how they are leveraged in visual and UI design, and what implications they have for user experience.

Learning Outcomes:
  • Participants will walk away with a deeper understanding of and appreciation for design, a greater design awareness, an ability to identify design principles critical for delivering interfaces that works for end users, and the underlying properties of human cognition.

Attachments:

Speakers
avatar for Basia Coulter

Basia Coulter

UX Designer, Caktus Group
Neuroscientist turned UX designer, Basia is passionate about UX research, UX strategy, and leveraging properties of human cognition to build experiences that address user needs.


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

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

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

Ship It or It Never Happened: The Power of Docker, Heroku & CircleCI (Doguhan Uluca)

Abstract:
Shipping code is hard and it is rough! It doesn't have to be. Using Docker, Heroku and CircleCI you can set up a world-class Continuous Integration and Continuous Deployment pipeline in an hour with advanced functionality like Heroku preview apps, provisioning servers on-demand for to scale and containers that leverage layering to enforce Enterprise requirements, while giving developers access, flexibility and speed to get their work done. With duluca/minimal-node-web-server docker image and how you can tailor it to build your micro-services or web servers in a matter of minutes using Docker and deploy your web app on the cloud.

Learning Outcomes:
  • Why a robust CI & CD pipeline is critical to Agile development
  • How to containerize a web app with its own web server using Docker and Node
  • How to build and publish a container using npm scripts
  • How to set up a Continuous Integration pipeline with Circle CI
  • How to set up a Continuous Deployment pipeline with Heroku
  • How to use on demand server instances with Heroku Preview Apps

Attachments:

Speakers
avatar for Doguhan Uluca

Doguhan Uluca

Technical Fellow, Excella
Doguhan is a Technical Fellow at Excella, based out of Washington, DC. He is the author of books Angular 6 for Enterprise-Ready Web Applications and Building Large-Scale Web Applications with Angular. He is a speaker at international conferences like Ng-Conf, Angular Mix, CodeStock... Read More →


Tuesday May 1, 2018 10:20 - 11:05 CDT
Lone Star B/C

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

11:15 CDT

Refactoring with Cognitive Complexity (G. Ann Campbell)

Abstract:
For 40 years, cyclomatic complexity has been the de facto standard for measuring testability and maintainability. While it's absolutely accurate for testability, the same can't be said for maintainability. Cognitive complexity solves the problem and returns "fair" relative measurements of control flow complexity. In this session, you'll learn what the cognitive complexity methodology is and why you should add it to your metric suite. You’ll see how it applies to a number of code samples from open-source projects on SonarCloud.io. And you’ll learn how to use a method's cognitive complexity score as a guide to designing better code and refactoring existing code to be simpler and more maintainable. Because there's no "cost of entry" with Cognitive Complexity, a high cognitive complexity at the class level is a reliable indicator that a class contains a lot of logic, not just a lot of methods. That is, you can use cognitive complexity to sift POJOs from the logic-intense classes that impose a higher maintenance burden. Cognitive Complexity is available in most of the SonarQube ecosystem, but is an open standard, implementable by all.

Learning Outcomes:
  • Learn what Cognitive Complexity is (and why it's needed in addition to Cyclomatic Complexity)
  • Understand how Cognitive Complexity is assessed
  • See how Cognitive Complexity can be used as a guide to refactoring for simpler, more maintainable code

Attachments:

Speakers
avatar for G. Ann Campbell

G. Ann Campbell

Product Manager, SonarSource SA
G. Ann Campbell is a Product Manager at SonarSource SA, the company behind SonarQube, SonarLint, and SonarCloud. She has coded in Perl, C, and Java as well as the usual assortment of web development technologies. In the process, Ann has seen some good code and a lot of bad code. As... Read More →


Tuesday May 1, 2018 11:15 - 12:00 CDT
Lone Star F/G

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

13:30 CDT

Bryan & Bill’s Three-Ring Design Circus (Bill Wake, Bryan Beecham)

Abstract:
Come one, come all - the circus is in town! Join us for the Greatest Software Show on Earth!
Witness our three experts in refactoring and test-driven development, working in three rings simultaneously. They will juggle various refactoring and test-driven development challenges, explaining what they do and taking questions as they perform.
Attendees: Stay with one ring, move between rings, or watch the main screen and get glimpses of all of them. Sit back, ask questions, or jump in and pair with the experts! The perfect show for kids of all ages!
We’ll challenge all three performers with the same problem, and pause to review their breathtaking feats of keyboard acrobatics.
No animals will be harmed in this session.

Learning Outcomes:
  • Participate in small mob or pairing sessions
  • Learn how to refactor in small, safe steps, and discover new refactorings along the way
  • Identify multiple ways to break down a problem when doing TDD
  • Compare the designs that result from various decisions

Attachments:

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 →
avatar for Bill Wake

Bill Wake

Sr. Consultant, Industrial Logic, Inc.
Bill Wake (www.xp123.com) is a consultant with Industrial Logic, Inc. (http://industriallogic.com). Before that, he was an independent consultant from 2001 to 2007, then spent two years managing software development at Gene Codes Forensics. Bill has worked with teams in a variety... Read More →


Tuesday May 1, 2018 13:30 - 15:00 CDT
Lone Star E

13:30 CDT

Rehearsal Series: choreographic coding (Joana Chicau)

Abstract:
“We might think of choreography in terms of ‘rehearsal’; that is, as the working out and working through of utopian, nevertheless ‘real’, social relations.” Andrew Hewitt
A cross-disciplinary exploration of choreography & (web)code. By ‘rehearsal’ it is meant a sort of temporary stage for experimenting with web design tools which follow choreographic methods and thematic concerns. This format is very similar to a open workshop, open to any participants curious to explore the use of choreographic techniques to generate newness in design, new modes of thinking composition matters, participation, relations and articulations between bodies and technologies. Traditionally, a rehearsal is a built in process, a space and time for developing ideas and work acknowledging unexpected and unpredictable results. Another important point about the ‘rehearsal series’ is to break the distancing between mind/body, self/other, subject/object, discovery/invention. Enhancing the idea of process over product: processes of becoming, becoming structures, becoming codes and scripts.
This project focus on the use of Free/Libre Open Source (Floss) models/ philosophies technologies, questioning how may creative coding practices interfere deeper with interface design and information displays — when considering new (choreographic) vocabularies, embodiment and new movement perception possibilities.
The flexibility of code allows for a combination of possibilities, not only for the live performance setting, but also for the use of the code itself by other designers, just as in any choreography that can be re-interpreted, re-created and adapted. The code serves as a generative tool for new possible outcomes in the creation of graphics for interfaces and a way of playing with the choreographic logic. Therefore, this method promotes disciplinary openness, by sharing ideologies and methodologies and questioning structures of collaboration and of intellectual property.
Choreographic thinking and methodologies address questions of unpredictability, indeterminacy, immateriality, spatial and temporal paradoxes that can inform design on how to respond to the digital logic. As in as considering the indeterminate interactions between scripts, machines and users, and the complex inter-relations, dependencies and contingencies of design. In short, its performative stance.

Learning Outcomes:
  • Building process: small groups are created for sharing knowledge, mind mapping and nurturing collective discussion on the topics, references and experiences during the day.
  • The outcome is a piece of ‘choreographic code' — all participants are invited to contribute to the choreographic code by translating the ideas discussed in the session into html/css/javascript functions or as prototypes developed in other formats.


Speakers
avatar for Joana Chicau

Joana Chicau

Designer CEO, Joana Chicau
I am a designer, creative coder, researcher with a background in dance! I run a trans-disciplinary research project which interweaves media design and web environments with performance and choreographic practices. The project focus on the use of Free/Libre Open Source (Floss) models... Read More →


Tuesday May 1, 2018 13:30 - 15:00 CDT
Lone Star B/C

15:20 CDT

Enable your Agile Team with Continuous Delivery Pipelines (Esteban Garcia)

Abstract:
As your Agile team looks to shorten the cycle time from idea to production, it is important to give them the tools that will enable continuous feedback, collaboration with stakeholders, and most importantly, a way to get the product in front of the customer and enable a feedback loop.

This session will teach you how to create an effective release pipeline that incorporates Continuous Integration, automated testing, cloud deployment with Infrastructure as Code, Instrumentation, load testing, and more.

We will go from zero to Production in less than an hour and you will go back to work on Monday ready to deploy!

Learning Outcomes:
  • Continuous Integration
  • Continuous Deployment
  • Automation

Attachments:

Speakers

Tuesday May 1, 2018 15:20 - 16:50 CDT
Lone Star F/G

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

15:20 CDT

Unblocking Blockchain Adoption – Unchain Your Company’s Brain! (Jason Bowers, Rahul Gulati)

Abstract:
ALERT! You have just been sued and you have 40 minutes to prove your innocence! We will lead you through 2 interactive activities that will allow you and your organizations to utilize the power of blockchain and agile to avoid costly and sometimes fatal mistakes that could be solved by using blockchain solutions.
So why are people not adopting blockchain technology? The Four Pillars of the Agile Manifesto enable adoption of blockchain technology more efficiently and removes barriers to implementation by assisting organizations to share data securely (individuals and interactions over processes and tools), start small (working software over comprehensive documentation), building trust through consensus (customer collaboration over contract negotiation), and creating solutions through iterative and incremental change (responding to change over following a plan).
The first activity (Building an Agile Blockchain) will simulate the creation of a blockchain to solve a riddle that will identify shortcomings of current technologies. The second activity (Bringing Blockchain Home) will walk through the approach to identifying areas where blockchain is a viable technology and have participants identify a business problem in their company that can be solved using blockchain.
Why are we talking about blockchain? Over $500 billion dollars has been invested in blockchain-based startups and platforms since the advent of the technology, outweighing the market capitalization of long-standing stock exchanges like the Dow Jones. The appetite for blockchain solutions in both private and public sector is growing at an increasingly fast rate. However, adoption is stymied by fear of the unknown; clients are often afraid of implementing blockchain and exposing themselves to undue risk.
Why Agile? Well, since this is the premiere Agile conference, I am assuming you already know – but don’t worry, we will have 2 minutes on what “Agile” means in the context of this session to dispel rumors, innuendoes, and assumptions.

Learning Outcomes:
  • Be able to understand what blockchain is and its applicability to potential business problems
  • How to leverage the Agile Manifesto’s 4 Pillars to increase efficiency in implementing blockchain and reduce the fear of failure or breach of data which leads to limited adoption
  • How to drive adoption of blockchain solutions and identify low-risk starting points to build upon (both technically and business-focused user-stories)
  • How to scope blockchain solutions to both prepare for the future and mitigate risk of changing requirements
  • What potential business issues you can solve at your company using blockchain technology using Agile principles



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

08:30 CDT

Continuous Delivery Patterns for Contemporary Architecture (Daniel Bryant)

Abstract:
Modern software has almost completed its evolution toward component-based architectures—seen in the mainstream embrace of self-contained systems (SCS), microservices, and serverless architecture. We all know the benefits of component-based architectures, but there are also many challenges to delivering such applications in a continuous, safe, and rapid fashion. Daniel Bryant shares a series of patterns to help you identify and implement solutions for continuous delivery of contemporary service-based architectures.

Learning Outcomes:
  • - Identify core stages in the component delivery lifecycle: Develop, test, deploy, operate, and observe
  • - How contemporary architectures impact continuous delivery and how to ensure that this is factored into the design
  • - Modifying the build pipeline to support testability and deployability of components (with a hat tip to Jez Humble’s and Dave Farley’s seminal work)
  • - Commonality between delivery of SCS, microservices, and serverless components
  • - Continuous delivery, service contracts, and end-to-end validation: The good, the bad, and the ugly
  • - Validating NFRs within a service pipeline
  • - Lessons learned in the trenches

Attachments:

Speakers
avatar for Daniel Bryant

Daniel Bryant

Product Architect, Ambassador Labs
Daniel Bryant works as a Product Architect at Ambassador Labs (previously Datawire). His technical expertise focuses on ‘DevOps’ tooling, cloud/container platforms, and microservice implementations. Daniel is a Java Champion, and contributes to several open source projects. He... Read More →


Wednesday May 2, 2018 08:30 - 09:15 CDT
Lone Star F/G

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

10:30 CDT

Beyond Waste: Exploratory Charters in Action (Claire Moss)

Abstract:
Think manual testing is waste? Think again! If you're not learning when you're testing, you're doing it wrong! People exploring systems can be your best defense against unknown problems and your greatest way of finding unexpected opportunities.
While automation is well adapted for repeating the same thing over and over again, human beings are great at doing things differently.
Doing is not enough! We need to think during our review and examination processes to improve outcomes. How do we design manual exploration to provide value in today's fast-moving development culture?
Come to this workshop for hands-on experience with the full lifecycle of exploratory testing charters.

Learning Outcomes:
  • Structuring manual exploratory testing for transparency
  • Charter guidance during test execution
  • Outcomes of exploratory testing
  • Value delivery through debrief of testing session

Attachments:

Speakers
avatar for Claire Moss

Claire Moss

Developer, Agilist, Tester, ScrumMaster, Product Owner, Agile coach, aclairefication
Agilist working as part of product development teams to support and accelerate development through fast feedback. I help teams to craft more executable user stories. Product backlog creator and groomer with emphasis on progressive elaboration. Front-end Javascript development, back-end... Read More →


Wednesday May 2, 2018 10:30 - 12:00 CDT
Lone Star F/G

10:30 CDT

Testing Without Mocks: A Practical Guide (James Shore)

Abstract:
Are your tests slow or brittle? Do you get a sinking feeling when you need to refactor? Do you worry your unit tests aren't actually testing anything important? If so, you could benefit from exploring a mock-free approach to TDD.
This session is a comprehensive and practical guide to testing without mocks and other test doubles. We'll talk about real-world code, not dogma, and discuss solutions for tough problems—such as testing infrastructure code, disentangling logic and infrastructure, testing units in isolation, dealing with side effects, approaches to design, and more.

Learning Outcomes:
  • Learn to test-drive code without using mocks
  • Learn to test code in isolation when not using mocks
  • Learn mock-free solutions to problems that seem to require mocks (such as infrastructure code)
  • Learn to use mock-free TDD to improve designs
  • Learn to create fast, safe test suites that have minimal integration tests

Attachments:

Speakers
avatar for James Shore

James Shore

Consultant, Titanium I.T. LLC
James Shore teaches, writes, and consults on Agile development processes. He is a recipient of the Agile Alliance's Gordon Pask Award for Contributions to Agile Practice, co-author of /The Art of Agile Development/, and co-creator of the Agile Fluency™ Model. You can find his essays... Read More →


Wednesday May 2, 2018 10:30 - 12:00 CDT
Lone Star B/C

10:30 CDT

How to fit threat modelling into agile development: slice it up (Irene Michlin)

Abstract:
Agile is focused on the creation and building of great software, we all agree on that. Can you claim a great software if this software is not secure? Would customers accept a feature, no matter how attractive and useful, if they suspect it puts their data at risk?
Security is therefore essential to all the software we build. As with many other software properties, security cannot be "bolted on". The earlier in the lifecycle you pay attention to security, the better are the outcomes.
Threat modelling is one of the best techniques for improving the security of your software. It is a structured method for identifying weaknesses on design level.
However, people who want to introduce it into their work on existing codebase often face time pressure and very rarely can a company afford “security push”, where all new development stops for a while in order to focus on security.
Incremental threat modelling that concentrates on current additions and modifications can be time-boxed to fit the tightest of agile life-cycles and still deliver security benefits.
Full disclosure is necessary at this point – threat modelling is not the same as adding tests to the ball of mud codebase and eventually getting decent test coverage. You will not be able to get away with doing just incremental modelling, without tackling the whole picture at some point.
But the good news are you will approach this point with more mature skills from getting the practice, and you will get a better overall model with less time spent than if you tried to build it upfront.
We will cover the technique of incremental threat modelling, and then the workshop will split into several teams, each one modelling an addition of a new feature to a realistic architecture. The participants will learn how to find the threats relevant to the feature while keeping the activity focused (i.e. not trying to boil an ocean).
This session targets mainly developers, qa engineers, and architects, but will be also beneficial for scrum masters and product owners.

Learning Outcomes:
  • Learn the technique for applying threat modelling in time-boxed sessions within each iteration. You will increase your confidence in delivering secure software to your customers.

Attachments:

Speakers
avatar for Irene Michlin

Irene Michlin

Senior Managing Consultant & Europe Appsec Lead, IBM
Introducing security into software development lifecycle, threat modelling, security for Agile and Lean. @IreneMichlin


Wednesday May 2, 2018 10:30 - 12:00 CDT
Lone Star D

10:30 CDT

Removing Duplication (Llewellyn Falco)

Abstract:
Emergent design is a cornerstone of eXtreme programming, TDD and Refactoring. Yet, most teams struggle with large amounts of duplication and copy & paste code instead of elegantly designed architure.
In this workshop we will pair up to work on small practice exercises that help us to see the duplication in the code. Then quickly and easily refactor to remove it and allow the hidden architecture inherent in the code to emerge.
We will do 5 exercises is one 5 languages ( python, c#, c++, javascript or java ) so bring a laptop with an IDE and get ready to code!
Suggested IDE's: Pycharm, CLION, Visual Studio with Resharper, Webstorm, IntelliJ, Eclipse.

Learning Outcomes:
  • Seeing duplication
  • Extracting duplication
  • Refactoring to create extractable duplication
  • Higher Order Functions


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


Wednesday May 2, 2018 10:30 - 12:00 CDT
Lone Star E

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