Loading…
deliver:Agile 2019 has ended
Monday, April 29 • 11:15am - 12:00pm
Deep Stack - Tracer Bullets from ADC to Browser (James Grenning)

Sign up or log in to save this to your schedule and see who's attending!

Feedback form is now closed.

Abstract:
A blank page can be very intimidating, even for a Test-driven developer. Where do we start? Write a test, right? Not always.
I've heard TDD learners say: "I don't know what my code needs to do, how can I write a test? I need to write some code first." I used to make a flippant reply to that, like: "You don't know what your code needs to do! How could you possibly start with the code! Tests describe what the code must do. How can you write the code if you don't know what the code is supposed to do?"
Sometimes, it's simply a matter of software with interface, boundaries and constraints understood or under your control. When it's simply a matter of software, take some guidance from ZOMBIES! Start with the simplest cases (Zero an One) to get the Interface in place, generalize (to Many) and then make sure the anticipated Exceptional and Boundary cases are all covered with Simple test scenarios. ZOMBIES can really help, except when they can't.
With my most recent green-field side-project, interacting with Commercial Off The Shelf hardware and software (COTS),I found that unknowns prevented me from writing tests. I totally get that helpless feeling (again) of not knowing what test to write! In Hexagonal Architecture (a.k.a. Ports and Adapters), we strive to separate the land where ZOMBIES rule and where we need something else. In the core of the hexagonal architecture, ZOMBIES rule, in the Adapters we need to discover what works.
In this session we'll look at how ZOMBIES help sneak up on the solution. In the adapters we need a DIRECT approach to Determine, discover and Isolate Risk, and Encapsulate Current Technology. DIRECT helps isolate and understand things out of our control.
In this talk we'll explore the challenges and risks developing a real-time water pressure measuring system. We'll look at how to get to a walking skeleton of the product together by discovering what is needed to get this stack of technologies elements working together:
  • Analog to digital converter (ADC)
  • Serial peripheral interface (SPI)
  • Micro-controller
  • IoT radio
  • IoT mesh network
  • Little Linux box
  • Web-server
  • JSON and javascript driven browser.
In a multi-layered system like this there are unknowns hide at every boundary. We'll look at how we address the unknowns DIRECTly, striving to get to where ZOMBIES can guide. Integration is considered from the beginning because that is where the risk is.
There are more risks than strictly technical risks. Business risk assessment will impact technical choices. If we can build it, will it be affordable and profitable? How do we track progress in the face of significant risk. We'll look at both the technical approach and how to keep progress and risk mitigation visible.

Learning Outcomes:
  • How ZOMBIES can guide TDD
  • When the DIRECT approach is needed (Determine, discover and Isolate Risk; Encapsulate Current Technology)
  • Procrastination, when to, when not to.
  • The role of spike stories during prototyping
  • Using cause and effect
  • Design for test
  • Dependency management
  • Integration first
  • Tracer bullets, spikes, walking skeletons


Speakers
avatar for James Grenning

James Grenning

President, Engineer, Coach, ..., Wingman Software Consulting
James Grenning’s trains, coaches and consults worldwide. With decades of software development experience, both technical and managerial, James brings knowledge, skill, and creativity to software development teams and their management.  As his professional roots are in embedded... Read More →


Monday April 29, 2019 11:15am - 12:00pm
Hermitage Ballroom F

Attendees (29)