schedule 11:00 AM - 11:45 AM place Room 4

Ideas similar to test-infected development or test-driven development have been around quite a while - at least since Alan Perlis wrote about interleaving small amounts of design with small amounts of testing in the 1968 Proceedings of the NATO Software Engineering Conference. Yet, even today, there are endless debates about whether such an approach is useful. Some consider it a baseline practice for any professional developer. Others consider it extra work that adds no value. 

There's certainly more than one way to achieve a goal. What are the goals, when we write and deliver software professionally? Let's identify the various stakeholders of a software system and enumerate the needs of each. Then, let's walk through several popular ways of building software - TDD and others - and see how we can meet those needs using each approach. 

 
6 favorite thumb_down thumb_up 1 comment visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

This is a combination of an interactive discussion and live demonstration. 

0. Intro - quick description of TDD and its history

1. Who are the stakeholders of a software system? (Interactive)

Fishing for at least the following answers:

  • developers or development team
  • testers or quality assurance team
  • project management
  • general management
  • operations
  • customers or users

2. What are the key characteristics of a software system that each stakeholder group needs? (Interactive)

Specific needs are identified for each stakeholder group. E.g., developers need to be able to learn what a system does quickly; general management needs a system to function and be maintainable throughout its planned production lifetime; operations needs a system to be stable in production; etc. Participants will think of many more examples.

3. What are some practical ways to approach software development? (Interactive)

Fishing for the following answers (at least):

  • sketch out code as comments, then replace comments with real code
  • lay out a fairly comprehensive object model and fill in the gaps from there
  • define interfaces and key functions and write code, possibly using Design By Contract or similar
  • define executable examples of desired functionality and then write code to make the examples work (generally, a TDD approach)

4. Map the activities and artifacts of each development approach to the needs identified for each stakeholder group. Discuss the effort, time, and potential issues associated with each development approach, when our goal is to satisfy the needs of all stakeholder groups rather than just to spew code as fast as possible.

Learning Outcome

  • understand the context in which TDD and other development approaches apply to software delivery
  • understand that a professional developer's job doesn't stop with a clean compile
  • see how much effort, how many separate artifacts, and how many opportunities for error exist when each of several development approaches is used
  • gain a basic sense of the cost of each approach, when all stakeholder needs are taken into consideration over the entire production lifetime of a system

Target Audience

Software developers and others involved with software delivery who want to understand how TDD may fit into the development process, and when it doesn't fit.

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • kelly snavely
    By kelly snavely  ~  1 year ago
    reply Reply

    Dave is a great and engaging speaker and he is extremely familiar with XP programming.


  • Liked George Paci
    keyboard_arrow_down

    George Paci - CardUnit: A Unit Testing Simulation

    45 mins
    Workshop
    Beginner

    It can be difficult for developers to find the motivation to write automated unit tests.  This workshop introduces a simulation that can demonstrate the value of automated unit tests to identify and localize defects.  In the simulation, participants will play the roles of programs and tests.  We will discuss barriers to creating and maintaining unit tests, and how this simulation addresses those barriers.

    Theme: Games for Learning, Code and Test

      (We have not published slides for this workshop.  "Slides" link below is to representative slides from other presentations.)

  • Liked Dan Neumann
    keyboard_arrow_down

    Dan Neumann - Improve Your Team: Explore Cognitive Bias

    Dan Neumann
    Dan Neumann
    Agile Coach
    AgileThought
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Many team challenges can be tracked back to cognitive biases: our judgement gets anchored, we think we're better than we are, and we are our own favorite reference point. And even though we're encouraged to "think outside the box," there are conditions where we have a bias against creativity. If that's not a recipe for a tough team environment, I don't know what is.

    Improve your game by learning about bias! You'll leave this session with strategies for identifying and mitigating bias on your team. 

  • Liked David Horowitz
    keyboard_arrow_down

    David Horowitz - The 7 Secrets of Highly Effective Retrospectives

    David Horowitz
    David Horowitz
    Cofounder and CEO
    Retrium
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Retrospectives are the core of agility. And yet they are the scrum ceremony that is most frequently skipped. Many teams like the idea of the retrospective but find them boring, or worse ineffective.

    This talk aims to re-energize retrospective facilitators and participants. Starting with the basics: "what's a retrospective and how do you run one?", this talk reveals 7 secrets that lead to more engaging, more effective retrospectives.

    You'll learn:

    * The best way to ensure your retrospectives lead to real change

    * The "pledge" everyone on your team should take before participating

    * How to know who to include in each retrospective

    * The single most important thing you can do to keep your team engaged during the retro

    * And much, much more!

  • Liked Shawn Faunce
    keyboard_arrow_down

    Shawn Faunce - The Awkward Teenager of Testing: Exploratory Testing

    45 mins
    Talk
    Beginner

    We think we understand that awkward teenager.

    Many experienced testers will claim exploratory testing expertise, but too few have ever written an exploratory testing charter, and even fewer have applied a heuristic in that charter. We think we understand exploratory testing just as we think we understand teenagers, because “we have been there”. However the reality is that many of the words currently used in exploratory testing are foreign to us and we feel awkward about our lack of knowledge. The goal of this talk is to give people experience writing and executing exploratory testing charters, creating mind maps, and applying exploratory testing heuristics.

    The talk is intended to introduce people to the exploratory testing techniques described by Elisabeth Hendrickson in her book Explore It! with some added material from the work of Cem Kaner and James Bach.

     

  • 45 mins
    Talk
    Intermediate

    You're a Certified Scrum Master. Perhaps you are an Agile Manger, Agile Coach or Facilitator.

    Maybe you are newly minted or maybe you've been doing it a while, but either way you've noticed that not everything seems to work according the way the training or certification class implied it should.

    In this session, Camille Bell will explore what you weren't told in training, but need to know. Such as:

    • What assumptions Scrum makes that may not apply to your company or organization
    • Why some types of teams should not use Scrum and what they should use instead
    • How soon Scrum of Scrum stops scaling and what to use when it doesn't scale
    • Why some teams don't improve despite holding retrospectives
    • How to recognize the hockey stick burn down and what to do about it
    • What's a WIP limit and when it can be helpful
    • When estimation most helpful, when it's a complete waste and what to do instead
    • Why simple prioritization of a Product Backlog won't generate a Minimal Viable Product
    • Why the As a.., I want.. So that.. user story isn't enough and what you need to add
    • What are the critical missing practices your development team needs

     

  • Liked Craeg K Strong
    keyboard_arrow_down

    Craeg K Strong - Behavior Driven Development Workshop

    45 mins
    Workshop
    Beginner

    Behavior Driven Development / Acceptance Test Driven Development (BDD/ATDD) is a new, exciting approach to developing software that has been shown to reduce rework and increase customer satisfaction. While other testing tools focus primarily on “are we building the thing right?”, BDD tools such as Cucumber and SpecFlow attack the problem of software directly at its source: “are we building the right thing?” By retaining all the benefits of automated unit testing, while extending them upstream to cover requirements, we cut the Gordian knot of risk and complexity to unleash hyper-productivity. 

    Why is BDD so effective?

    • As a form of Test driven design, BDD helps produce frugal, effective and testable software.
    • As a development tool, BDD frameworks like SpecFlow provide many convenience functions and are pre-integrated with powerful libraries like Nunit and selenium to make writing tests a snap.
    • As a collaboration tool, BDD helps ensure the “three amigos” (tester, analyst and developer) sync up – ahead of time.
    • As a facilitation technique, BDD enables product owners to efficiently provide the team with concrete examples that clarify the true intent of a user story and define the boundaries.
    • As a reporting tool, BDD captures functional coverage, mapping features to their acceptance criteria to their test results, in an attractive hierarchical presentation.

    Want functional documentation? How about documentation that is guaranteed to be correct, because every feature maps to its test results? Witness the holy grail of traceability – executable specifications.

    We will spend a few minutes talking about the context and pre-requisites, so attendees have an idea of where BDD fits in, and what type of investment they are signing their teams up for. We will see that in return for a modest amount of investment in tools and training, very significant benefits can be realized, and the benefits compound over time.

    This workshop then dives right in to Gherkin, the structured English language technique used to capture BDD specifications. We will spend the better part of the session learning the tricks and techniques that make for robust and maintainable gherkin specifications. We will review and critique lots of examples, both good and bad.

    We will review several examples of reports generated from BDD tools, to provide context and to immediately highlight the bottom line business value that makes an investment in BDD so worthwhile.

     

     

    Come and learn why Behavior driven design is taking the software world by storm!

  • Liked David W Kane
    keyboard_arrow_down

    David W Kane - "Hitting the Target" - Business Value in Mission-Focused Organizations

    45 mins
    Workshop
    Beginner

    In the simplest of terms, software development decisions for commercial organizations can be reduced to a calculation of whether the cost of developing the software will be outweighed by the estimated revenue generated or costs saved by the software.  However, as Mark Schwartz points out in his book, “The Art of Business Value Paperback” this simple explanation is insufficient for commercial organizations, and not applicable for government and other non-commercial organizations for whom the impact of software isn’t primarily measured in terms of revenue.  

    In this session participants will experience a simulation that has been created to explore these question of how to make decisions about investments to deliver mission and business value by examining the impact of these decisions on the performance of organizations in changing environments.

  • Liked Brian Sjoberg
    keyboard_arrow_down

    Brian Sjoberg - Let's Sharpen Your Agile Ax, It's Story Splitting Time

    Brian Sjoberg
    Brian Sjoberg
    Agile Coach
    Excella Consulting
    schedule 1 year ago
    Sold Out!
    45 mins
    Workshop
    Beginner

    Do you want to write great User Stories that provide the vehicle for conversation and confirmation that we build the right thing? Do you struggle with splitting stories so that they still provide business value but can be accomplished within a fraction of your iteration and be potentially shippable to production? We will do a quick refresher on User Story formatting to include Acceptance Criteria. Then we will dive into learning techniques for splitting stories in this interactive workshop. 

  • Liked Andy Bacon
    keyboard_arrow_down

    Andy Bacon - The Super Agile Satchel

    45 mins
    Experience Report
    Intermediate

     

    Are you a Scrum Master that has a strong affinity to sticky notes, dry erase markers, and other tools of Agile facilitation? Are you tired of seeing the same old blue painters tape on every kanban board? Want to learn some new facilitation techniques that you can use in retrospectives or to build awesome information radiators with your team?

    If so, join me for my session on the Super Agile Satchel.

    During the session, I’ll briefly talk about how the satchel came to be and its awesome contents.  Then we’ll jump right in to actual examples of information radiators that I created with the tools the satchel contains.  I'll discuss why choosing the right materials, colors, and sizes are critical to facilitation and creating information radiators that draw attention, are maintainable, and focus the team on what's truly important.

  • Liked Mathias Eifert
    keyboard_arrow_down

    Mathias Eifert - Don’t assume you’re creating value – prove it!

    45 mins
    Talk
    Beginner

    Does your organization find it hard to determine “the right thing” to build? You are not alone – studies show that even in very high performing organizations only 10-35% of initial ideas actually generate business value. Agile development should make it easier to obtain early customer feedback, but in most organizations Agile approaches are limited to software development teams with little connection to the rest of the business. In addition, Agile methods by themselves offer few guidelines on how to translate organizational goals and customer needs into the backlog’s content and relative priorities in the first place. As a result, there is a significant, but often underappreciated risk that Agile teams end up very efficiently building “the wrong thing right.”

    In this session, we explore how Lean Discovery and experimentation can expand the scope of Agile’s “inspect and adapt” feedback loops to systematically identify and validate critical assumptions about our product’s value proposition. Based on the Lean Startup and Lean UX approach to product development as a series of hypotheses about customers’ behaviors and value perceptions, we discuss ways to derive testable assumptions from organizational goals to enable validated learning. Finally, we explore the implications of this approach on project planning and budgeting to support increased business agility.

  • Liked Paul Boos
    keyboard_arrow_down

    Paul Boos - Mind Meld: Why Pair Programming Works

    Paul Boos
    Paul Boos
    IT Executive Coach
    Excella
    schedule 1 year ago
    Sold Out!
    45 mins
    Workshop
    Beginner

    So why does pair programming (or any form of pairing really) work? Well rather than tell you why, let's experience it! 

    This is a simple 3 round exercise that you can do with your teams and managers to demonstrate the benefits of pairing. It will show the linkage between having a shared mental model through collaboration and ease of integrating the resulting work.

  • Liked Matt Barcomb
    keyboard_arrow_down

    Matt Barcomb - Improve decisions using a value-focused prioritization framework

    Matt Barcomb
    Matt Barcomb
    Principal Consultant
    odbox
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Does prioritizing your development portfolio seem unclear or mired in politics? Ever feel like the decisions for what gets worked on when are somewhere between arbitrary and emotional? Ever get tired of providing cost estimates for work of uncertain value?

    If you answered yes to any of the above questions, this session is for you! Matt Barcomb will open with introductory concepts about shifting from a cost focus to a value focus for development work. Next, providing business value for user stories will be debunked. Then, a collaborative framework for prioritization, Benefit Mapping, will be discussed. Finally, Matt will end with ways to simplify the cost evaluation of work and risk.

  • Liked Trent Hone
    keyboard_arrow_down

    Trent Hone - DevOps Darwinism: Advancing our Art through Safe-to-Fail Experimentation

    45 mins
    Talk
    Beginner

    Static designs and monolithic structures are brittle and prone to failure. How can we progress beyond them? By understanding the nature of our challenges and applying the right tools at the right time. This talk will describe how to use evolutionary principles to foster changes in your architecture and infrastructure so that you can create antifragile systems.

    Nassim Nicholas Taleb spoke to these ideas in “Antifragile: Things That Gain from Disorder.” Join us as we describe how we can:

    • Move beyond planning for known failure modes and instead develop antifragile systems that are safe-to-fail in unanticipated ways.
    • Leverage the Cynefin framework and its 5 sense-making domains to better frame problems and drive action.
    • Employ microservice architectures to make the variability of our environments work for us, not against us.
    • Gain knowledge more rapidly through multiple parallel experiments.
  • Liked Amber King
    keyboard_arrow_down

    Amber King - Forming Self-Selected Teams: How to Create Happy, Empowered, and Effective Teams

    45 mins
    Talk
    Intermediate

    How do you create excited, engaged, happy, and effective teams? Start them off right by letting your engineers choose their own teams and projects! Through a proven technique called self-selection, Opower was able to turn a tribe of 40 engineers, many of whom were unexcited about continuing to work on the same old products, into six high-performing teams with engineers who were excited to embark on a new adventure, acquire new skills, and ship awesome code.

    In this session we will cover the self-selection process: what it is, generating buy-in & excitement, preparing your teams, running a self-selection event, dealing with concerns throughout the process, and measuring the success of your process. This talk is for anyone who wants to create better teams including Agile Coaches, Release Train Engineers, Program Managers, individual contributors, and other organizational change leaders.

  • Liked Brandon Carlson
    keyboard_arrow_down

    Brandon Carlson - Continuous Improvement: Seeing the Invisible

    Brandon Carlson
    Brandon Carlson
    IT Nerd
    Lean TECHniques
    schedule 1 year ago
    Sold Out!
    45 mins
    Talk
    Beginner

    You've probably heard that You can't improve what you can't measure and, over the years, teams have used various techniques to make the invisible visible. From value stream mapping to burndown charts, making things visible is a core component of the continuous improvement process. Brandon says that even with all this visibility, much of the data surrounding how your teams work is either not captured or not visible, and thus represents a great opportunity for improvement. Imagine your management team tells you that your velocity is too low. Why is it too low, and what can you do about it? Brandon shares one team’s surprising answer to that question when they analyzed previously invisible data. How do you know what the highest risk areas of the system are for enabling the most cost effective regression test strategy? You'll get that answer, too. It's all there, tucked away where no one can see.

  • Liked Tim Gifford
    keyboard_arrow_down

    Tim Gifford - "DevOps" on Day 1 with Operations First Delivery

    45 mins
    Talk
    Beginner

    DevOps lore tell legendary tales of “Unicorn” companies. We’re told these mythical companies continuously deliver software to production with nary a blemished aura or mussed mane. Can it be so? Is this but a fairytale?

    In this talk, we will dispel the fantasy and show you how to get similar results. Spawning the first unicorn is the most difficult, so I will show you the specific steps, tools, techniques and architectural patterns of Operations First Delivery to create your first “Unicorn” project.

  • Liked M. Scott Ford
    keyboard_arrow_down

    M. Scott Ford - Embracing the Red Bar: A Technique for Safely Refactoring Your Test Code

    45 mins
    Talk
    Intermediate

    Does your team treat test code differently than production code? Do you let your test code accumulate duplication and complexity that you'd normally attempt to squash in your production code? Have your tests become brittle? Are you worried that they aren't providing you the same value they used to? Have you strongly considered dumping your test suite and starting over? Are you afraid that if you refactor your test code, you'll introduce false positives?

    If you said yes to any of those questions, then this talk is for you.

    We'll explore the technique of "refactoring against the red bar" (http://butunclebob.com/ArticleS.MichaelFeathers.RefactoringAgainstTheRedBar), and how you can employ this technique to confidently refactor your test code. No longer do you need to let your test code have a lower standard of quality than your production code.

  • Liked Ken Furlong
    keyboard_arrow_down

    Ken Furlong - Upgrade Your Metrics – Cumulative Flow Diagrams and Beyond

    45 mins
    Talk
    Intermediate

    When dealing with metrics, most Agile or Lean teams begin with a Burndown Chart.  Unfortunately, that is also where most of them stop.  While a Burndown Chart is a great first step, it only provides a small sliver of the information the team has access to.

     

    In this talk, we’ll be starting at the beginning with what a Cumulative Flow Diagram is, how it relates to a Burndown Chart, its advantages, and where it too ultimately stops.  We’ll then look at additional information radiators that the team can easily use based on existing data to provide transparency to stakeholders and the raw material for continuous improvement.

  • Liked Atif Salam
    keyboard_arrow_down

    Atif Salam - Cracking the Code... Implementing SCRUM at Scale within Enterprise Data at Fannie Mae

    45 mins
    Case Study
    Intermediate

    Fannie Mae, a leading source of residential mortgage credit in the U.S. secondary market, provides reliable, large­scale access to affordable mortgage credit across the country so people can buy, refinance, or rent homes. In November 2014, Fannie Mae’s Enterprise Data Warehouse completed a multi­year project to implement several thousand data attributes across numerous interfaces which were then integrated with various development organizations working in parallel; the results were sub­optimal. In January 2015, Fannie Mae undertook a brownfield initiative to transform Fannie Mae’s Enterprise Data Warehouse, responsible for sourcing, vending and provisioning data attributes, which informed numerous interfaces, as part of a larger Federal compliance mandate, to SCRUM. Initially, starting with two teams using SCRUM, the initiative progressed to six-teams implementing SCRUM­OF­SCRUMS, within 6 months. Thereafter, the SAFe framework was adopted encompassing twelve­teams (130+ team members) on a single Agile Release Train. As a result of transforming from Waterfall to Agile, Fannie Mae experienced a significant boost in productivity and reduction in delivery risks through the relentless focus on innovation and automation to ship "production ready" code with high and higher frequency. The transformation to Agile has revolutionized how the firm plans for the delivery of large scale ($100 million plus investment/year) programs, has significantly mitigated risk inherent in complex in integration between legacy and new architectures/applications, as well as between internal and external systems. Within the larger context of the transformation to Enterprise Agility, this Experience Report will focus on the changes to the organization, architecture, and technical practices required to implement data attributes every two­-weeks and the corresponding benefits realized.

  • Liked Ben Morris
    keyboard_arrow_down

    Ben Morris - DevOps for the Rest of Us, Reprise

    45 mins
    Demonstration
    Beginner

    (This talk was well-received in 2015, so we can do an updated version for 2016)

    DevOps as a buzzword is gaining traction, but what does it really mean? Managers, non-techies, and developers-new-to-devops will get a guided demo of development automation. See all the cool tools in action - continuous integration, automated testing, cloud deployment, etc. More importantly, we'll walk through what they do, and why that adds value to a project. 

    This talk will...

    • Break down the buzzwords and define some key technical practices in plain english.
    • Uncover the pain that leads teams to seek greater automation.
    • Demonstrate a continuous integration pipeline working in practice via live demo.
    • Diminish the knowledge gap between technical practitioners and managers/analysts/coaches.
    • Level-up the vocabulary of non-technical attendees.
    • Introduce practices to developers who don't yet work in an automated environment.
    • Spark "ah-ha" moments to convert skeptics into DevOps believers!

    By the way, all of the tools in the demo are some combination of free and/or open source. DevOps doesn't have to cost a lot.