Agile Event Session

Deep Stack – Tracer Bullets and ZOMBIES in a Green Field IoT Product

This video content is for Agile Alliance members only

If you’re already an active member, please log in now.

To view this content, and gain access to many more valuable resources, conference discounts, and invitations to exclusive networking and learning events, please consider becoming an Agile Alliance member.

Abstract/Description

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.

—–

Additional Resources

Add to Bookmarks Remove Bookmark
Add to Bookmarks Remove from Bookmarks
Add to Bookmarks Remove from Bookmarks

Speaker(s) may be willing to present this session at local group meetings and other events.

Agile2019
Talk
Advancing

More Agile Event Session Videos

Strategic Domain-Driven Design
If you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of strategic domain-driven desig…
TDD – It’s About More Than Just the Tests
Test driven development is all the rage. But why do people choose to write their code in a test driven fashion? It's so their code will have tests, right? Ending up with tested code is a nice benefit of test driven development (TDD), but it's not the…
Strategic Domain-Driven Design
If you’re a software developer or architect who wants to play a more influential role in ensuring your software systems are optimised to support business goals, then you need to learn about the benefits and techniques of strategic domain-driven desig…
TDD – It’s About More Than Just the Tests
Test driven development is all the rage. But why do people choose to write their code in a test driven fashion? It's so their code will have tests, right? Ending up with tested code is a nice benefit of test driven development (TDD), but it's not the…

Have a comment? Join the conversation

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

Not yet a member? Sign up now