TDD – That Was Easy
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 1 year ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Paul Boos - Agile Leadership 201: Enriching Management
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. -
keyboard_arrow_down
Nicole Spence-Goon - Peaks or Valleys? The power of Scaling Agility in the alphabet soup of Government agencies
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.
-
keyboard_arrow_down
RICARDO ABELLA - 7 tricks to improve your USER STORIES
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.”
-
keyboard_arrow_down
Paul Boos - Overcoming Your Biases: Putting the GROW and Satir Interaction Models to Work
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.
-
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.
-
keyboard_arrow_down
Fadi Stephan - We Do Scrum But...
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.
-
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.