Small Chunk Delivery!
Recently a very real and important example of why working in small cycles and focusing on delivering the simplest possible afforded me an opportunity to write some. I was tasked with changing a web submission form from using Eventbrite to Stripe. The client was only really using Eventbrite for payment processing and tracked the event registration on their backend. The overall philosophy was very XP. What’s the simplest dumbest thing that we can do to get feedback.
Day 1: Task: what are we being asked to do? Was really a half day, spent the day pulling down the code and getting some information about how the site was laid out and a rough
overview of how things were working and what the new ask was. Day 2: Task: pull down code, compile, and be able to check things in. Started playing with the website code and finding out where exactly the change was going to be made. Wrapping my head around Jekyl and components. I also pulled down the backend and got familiar with it as well as permissions (a little lag on that). Going through Stripe documentation and finding out how they work and what would need to be set up. Day 3: Task: Get the hidden page up and test some Stripe calls. GitHub backend Stripe library that handles everything that was needed was found and played around with. There was also a discovery that Stripe has their own Link service that can trigger a webhook backend. The initial ask was to change out the web component. External link is easier and faster to get feedback on, so I went with that. I made a hidden copy of the payment page added the Stripe Link and asked for feedback. Feedback was delayed by an hour, but initial feedback was, leaving the website was suboptimal but good enough and the default layout sucked. I spent 10 minutes snagging site colors/art and updating the Stripe Link template and got more feedback, which was a thumbs up.
Day 4: Task: Get Stripe to send events to the backend API and consume them. I started diving into the eventing that Stripe offers and how their webhook system works. Created a quick AWS Lambda endpoint and started
sending Stripe events. I tried a number of events and was chasing my tail to find the right one that gave complete payment data. Time for lunch, before the company meeting. Come back from lunch to find pink slip waiting.
So my day and project work was cut short, but because I was working in small cycles anyone could come in and pick up where I left off pretty easily. There wasn’t a lot of “in-flight” work that someone would have to ramp up on. All they’d really need to do is figure out the right Stripe event to send, parse some JSON, and forward it to the backend event processing.
In the past, before I went in and really understood what delivering in small chunks this would have been a hodgepodge of things. The website and backend code would be a patchwork of bits that would really have been easier for someone to just revert and write from scratch. It’s a challenge to think this way effectively. I am continually refining, practicing, and working on doing this better. Now we could debate was I really delivering value all the way through the system and I could argue that once payment was received, folks could manually enter the event data into the system. So ya, I think that was the smallest chunk that I could have done.