steve
steve
tyler
tyler
tyler
Definition: you make an action, observe the effect, and repeat.
steve
The canonical example of a feedback loop is a thermostat.
steve
The thermostat checks the room temperature.
If it is below the desired temperature, it tells the furnace/boiler to...
steve
And the furnace says "I'm about to"
steve
The thermostat checks the temperature again, and the loop continues
Until the temperature is a perfect 67 degrees, when it tells the furnace/boiler to stop
steve
And the furnace says "Collaborate and listen".
steve
And so this cycle continues until April
...
But not all feedback loops are equal.
steve
I am a bike guy.
When your bike starts clicking when you pedal, it often means you need to adjust your derailleurs.
steve
And this is a derailleur.
Maybe you don't recognize it by name, but you probably recognize it as the mechanical thingy
that changes the gears on your bike when you click a button on the handlebars.
steve
To tune the derailleurs on your bike, there is a feedback loop.
You turn a screw a quarter turn, and then you ride the bike 20 feet to see if everything is lined up.
steve
Bad
Here's a way to make that feedback loop awful.
The problem is, I don't see the results of this for days.
And if I get it back and find that it still doesn't shift well, I have to take it back to the shop again.
This is a loose, slow feedback loop.
steve
Better
We can make this a little better.
It turns out my neighbor knows bikes, and he knows which screw to turn 1/4 turn.
Here, I see the results of each tuning in a much shorter time.
But I still have to take my bike over to my neighbors house each cycle through the loop.
steve
Best!
But we can make this even better!
I can learn a new skill - in this case, bike repair
And now, I get to see the results of each tuning almost instantly!
steve
The tighter the loop, the quicker the feedback/your ability to react
There are a couple of ways to do this.
steve
One way is to make the arrows in the loop shorter.
steve
In my bike example, it meant eliminating trips to the bike shop or neighbors house.
Tyler
So let's take a look at a feedback loop we experience daily.
This is the loop between developers and QA.
There are a lot of stops along that loop.
A lot of opportunities for that loop to get bigger, and slower.
Tyler and I want to help you make that loop smaller, instead.
...
Here's our first suggestion.
What if we told you there was a shortcut on this loop?
Tyler
What if we told you there was a way to get changes to the developer,
without having to go through half of this loop?
Our good friend Rob has some advice for us
steve
And Tyler and i have a great way for that to happen.
steve
Tyler
Tyler
Alright we're gonna build a calculator!!! Pull up VS, take turns driving keyboard, have test and code alongside each other
Test cases/implementation direction Division has weird edge cases Tester writes the test name at the beginning Later on QE writes the test themselves Run with NCrunch or VS2017, show Code Coverage for 'slower' feedback Go for 3-5 iterations, have QE suggest edges, have dev suggest edges
Tyler
Tyler
Developers will be happy that their code is simpler
Tyler
I don't have to re-launch the app every time I make a change,
and step through 7 steps to get to the issue I'm fixing.
steve
Grocery list
steve
steve
It is a great opportunity for collaboration amongst team members
steve
All of the small, granular test cases serve as documentation of the system
steve
Because you are thinking about edge cases
as you build it
Tyler
Tyler
Any time you make a change, you are looking at it from the perspective of the user of your system.
Tyler
Which leads to better quality
And fewer regression bugs
...
You can still write bad code with TDD
But it leads you toward writing better code
(you make it harder on yourself by not writing clean code)
Tyler
Tyler
Tyler
Tyler
Tyler
Collaboration Faster feedback Better business decisions
steve
steve They are instead done in small batches, easy to handle, less change shocking the system. Also forces you to do them routinely, which forces you to streamline the process, which in turns means not doing them at midnight on Christmas.
steve Example: turbotax running experiments during tax season. Throw a thousand good/bad/ugly ideas and scientifically find the million-dollar ones.
steve
The users are the ones who actually buy our products, so they get to truly say what is high-quality. Prove that by getting feedback from them, not just from others in our company.
tyler
How is this different from before? We've taken away the shortcuts, and added customers
steve
How do I get started?
steve
steve
steve
tyler
tyler
make yourself highly approachable, encourage questions and dialogue
tyler
Even though we know it's wrong, it still hurts when our code isn't working.
Be gentle with the bug reports!
Also, TDD is hard - you can't just tell them to start doing it.
steve
steve
so the build server can actually do stuff
steve
steve
Bring this to your boss/PM/PO
talk about the potential gains in investing someone's time
steve
steve
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |