schedule Sep 23rd 03:15 - 04:00 PM place Tiered Classroom people 2 Interested

Have you tried TDD? Do you hate it? Do you have a hard time applying it in practice? Do you find it promoting bad design decisions because you must write micro tests instead of looking at the big picture? Are your tests tightly coupled to the implementation due to a lot of mocking making refactoring a pain? Do tons of tests break when a simple change is made? Do you have a hard time justifying all the time spent on writing tests vs. just focusing on development?

You are not alone. Every organization or team that I run into is supposedly Agile. Some are also applying agile engineering practices such as automated unit, integration and acceptance testing, etc… However, many struggle with TDD. TDD is hard, seems counter-intuitive and requires a lot of investment. Come to this session for a TDD reboot. We will look at the benefits of TDD, discuss the resistance to TDD and uncover some common difficulties along with misconceptions. We will then address these misunderstandings and explore different approaches to making TDD easier. Leave with a fresh perspective and new insights on how to become better at TDD and apply it with ease.

 
 

Outline/Structure of the Talk

The material for this talk is based on my experience coaching teams on TDD as well as from teaching TDD as part of the Certified Scrum Developer class. The main points of the talk are:
1. TDD is not about testing; It’s about emergent design
2. TDD is not just done using unit testing. It involves all levels including unit, integration, acceptance, etc…
3. Write tests based on behaviors (BDD) of the requirements not the detail technical implementation
4. Understanding the unit of isolation and when to drive outside-in vs. inside-out
5. Use a classical testing approach and minimize the use of mocking

Agenda:

  • Intro (2 min)
  • Unit Testing – The basics (5 min)
  • TDD – The basics (5 min)
  • Misconceptions and pushback (8 min)
    • Too much time is spent on writing tests vs. developing code
    • Writing tests before the code is counter-intuitive
    • TDD is good for junior devs but senior/more experienced devs don’t need it
    • TDD ignores the big picture and focuses on micro-design
    • Not everything is testable
    • Mocking leads to tightly coupled test/implementation
    • I can always write the tests later
    • Refactoring is a pain because many tests fail when a simple change is made
    • Test suites are difficult to maintain
  • Benefits of TDD (7 min)
    • Avoid over engineering/architecting
    • Develop APIs and clean SOLID code
    • Quick feedback loop
    • Catch silly mistakes
    • Have safety net for refactoring
    • Write testable code
    • Free regression test suite
    • Provide code documentation
  • TDD Time Fallacy (3 min)
  • TDD and BDD (2 min)
  • Test Doubles (5 min)
  • Classical vs. Mockist Testing (5 min)
  • Summary (3 min)

Learning Outcome

  • • List TDD benefits
  • • Explain TDD misconceptions
  • • Give examples of using TDD at different levels of unit, integration, and acceptance
  • • Identify situations when Mocks are appropriate and when they are not
  • • Recognize TDD pitfalls to avoid

Target Audience

Developers with a couple of years of experience

schedule Submitted 4 weeks ago

Public Feedback

comment Suggest improvements to the Speaker

  • Liked Paul Boos
    keyboard_arrow_down

    Paul Boos - Agile Leadership 201: Enriching Management

    Paul Boos
    Paul Boos
    IT Executive Coach
    Excella
    schedule 2 months ago
    Sold Out!
    45 Mins
    Tutorial
    Executive

    The Agile Manifesto doesn't explicitly talk about what changes in management should happen and neither do the approaches. In fact, sometimes we hear the exact opposite from teams - "What do we need managers for..?" or perhaps "Can't they just get rid of all the impediments we have?"

    As a former manager and now as a coach, I find the words Servant Leadership sometimes doesn't resonate. It actually only paints part of the picture anyway. What we want are ways to enrich management so that they can do more for the organization and its teams. Let's discover what some of this enrichment might be.

  • Liked Nicole Spence Goon
    keyboard_arrow_down

    Nicole Spence Goon - Peaks or Valleys? The power of Scaling Agility in the alphabet soup of Government agencies

    Nicole Spence Goon
    Nicole Spence Goon
    Agile Coach
    Excella
    schedule 4 weeks ago
    Sold Out!
    45 Mins
    Experience Report
    Beginner

    Do you feel like Agile Scaling has become a goal rather than the means to an end for your organization? To determine where you stand on the Scaling spectrum, ask yourself a few soul-searching questions: Why do we need to scale? Is this the right time for us to scale? If you’ve checked these boxes, you may wonder “where do I go from here?”

    This talk will focus on 3 areas that emerged as common themes throughout my experience working on government Agile Scaling projects and ultimately influenced the trajectory of each agency's scaling journey:

    • Communicate vision consistently
    • Focus on your people genuinely
    • Create your own path intentionally

    I've seen successes and some struggles with Agile Scaling efforts in government agencies. Regardless of the agency acronym or the frameworks used, these key elements shaped their scaling outcomes.

  • Liked Ricardo Abella
    keyboard_arrow_down

    Ricardo Abella - 7 tricks to improve your USER STORIES

    Ricardo Abella
    Ricardo Abella
    Agile Coach
    KW - Previs
    schedule 1 month ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    We have heard several definitions of user stories. We have used the INVEST formula countless times, and most likely used 1,000+ sticky notes.

    Books, essays and the Internet are good sources for the basics. After some failures and a lot of practice, we might be able to write acceptable stories and deliver decent products.

    However, delivering valuable, remarkable software requires much more. To make sure the right stuff is delivered, the right conversations between development teams and business stakeholders need to take place. This is where the ability to write user stories like a pro comes into play.

    In this talk, I will propose 7 ideas to improve your user stories. You will learn concepts such as “prioritize according to stages of growth,” rules like “budget instead of estimate,” and techniques such as “best by” and “narrow segments.”

  • Liked Paul Boos
    keyboard_arrow_down

    Paul Boos - Overcoming Your Biases: Putting the GROW and Satir Interaction Models to Work

    Paul Boos
    Paul Boos
    IT Executive Coach
    Excella
    schedule 1 month ago
    Sold Out!
    45 Mins
    Workshop/Game
    Intermediate

    If you hold any form of leadership position, whether as a manager, scrum master, or coach, you will find that you will be at times offering guidance or advice. What unfortunately happens though is that your observation of the need and conversation to help fill that need can get tangled with your biases. Want to improve your coaching conversations? Then this workshop is for you.

    To help you work through the arc of your conversation and understand how these biases come into play, we're going to discuss the GROW conversation model and the Satir interaction model. This workshop will open with an anchoring activity. We'll then use an exercise and focused discussion to review each model and see how these played into the coaching received.

  • Liked Paul Boos
    keyboard_arrow_down

    Paul Boos / George Paci - DevOps Your Organizational Change

    45 Mins
    Workshop/Game
    Intermediate

    DevOps has become all the rage from a technical change perspective; it really has changed the game. And while it provides numerous benefits, only after you also embrace the human side of change within the organization, can you really get to full Agility.

    What if we could take advantage of a continuous delivery of change just like we do in our development pipelines? As executives, managers, Scrum masters, coaches, or anyone else in a leadership role, we should desire to make each change focused, easy, and small to contain risk. Once this is done, changes can mimic a development pipeline that delivers towards a business outcome. This workshop will help you learn how to keep the number and size of changes in check and consider how to manage the risks of deploying change.

  • 45 Mins
    Talk
    Intermediate

    Scrum is easy to understand but hard to implement. Many team members think of Scrum as a framework with roles, meetings and artifacts. They take a training class and come back to work and take on new roles, setup Sprint planning, standups, reviews, and retrospectives. They start working in Sprints using product backlogs, user stories, task boards, and burn down charts. Things start out well, however, soon difficulties arise and anti-patterns and smells emerge as teams start moving from Scrum to ScrumBut. You’ll often hear “We do Scrum but we don’t have an engaged Product Owner” or “We do Scrum but we don’t test within the Sprint”. In this interactive session we will tie elements of the Scrum Framework to the values and principles of the Agile manifesto to better understand the purpose behind the framework and it’s roles, meetings and artifacts. Come to this session to understand the reasons things are setup in a certain way so that you can assess the implications, risks and impacts of deviating from the basic framework.

  • Liked Fadi Stephan
    keyboard_arrow_down

    Fadi Stephan - 5 Steps to a Successful Agile Transformation

    45 Mins
    Talk
    Intermediate

    A lot of organizations today are going through an agile transformation. They’ve sent everyone to training. They’ve introduced product owners and scrum masters. They’ve created product backlogs and are working in iterations. The teams have planning meetings, standups, reviews and retros. The result? Teams are just going through the motions and organizations have yet to see the benefits. Sounds familiar? Why is that? What role does leadership have to play? How about the team? You? Come to this session to uncover some of the most common impediments that derail an agile transformation. Learn a five step approach to overcome these obstacles at both the team level as well as the leadership level. Leave with a new tool for your toolbox that you can use with your organization to get them moving faster towards greater agility and better business outcomes.