This is the story of a two-week Samman technical coaching engagement focused on AI-assisted development. Same team. Same room. Same code. Ten days. The transformation from fighting AI to collaborating with it. Twenty minutes into Day 10, the team had a customer meeting. By lunch, they'd pivoted the entire project. That doesn't happen by accident. Day 1 started messy. The team implemented a feature…
By Llewellyn Falco & Matt Plavcan I've been doing a lot python lately and context Manager has thrown me for a bit of a loop. Here's what happened Context First, A ContextManager is what python uses for the with statement. It is the python equivalent of: java's try with resources c#'s using It allows you to do the following: @contextmanager def printer(): print("enter") yield print("exit") if…
By Llewellyn Falco & Jacqueline Bilston In any sport, you have practice and you have competitions. Practice helps you to improve, but what about competition? Is it just about ranking yourself against others? Or is it also a mechanism to improve? We've done a lot of coderetreats, which are mainly about practice, but this February (2022), we did something different. We participated in a Lean Poker…
tl;dr: all method names that return a True/False setting should begin with the word is The Problem The readability of code is very important to me. Unfortunately English is a remarkably complex language. This leads to a lot of variations on how you can ask a True/False question. Here are a few: am I allowed to write to files are files writable can I write to this file is this file writable should…
By Llewellyn Falco & Jacqueline Bilston Over the past little while we've been exploring an alternative to the Game of Life with a hexagonal board. You can see the rules here . This led us to some super interesting discoveries that we'd like to share. 1. Verifying Sequences The interesting part of the Game of Life is how it evolves over time. We wanted to write tests that could help us verify how…
What is an Agile Technical Coach? By Llewellyn Falco & Jacqueline Bilston Note: We originally wrote this as an internal memo. It's not meant to be a complete definition, but we thought it might be helpful to others so we are sharing it here. TL;DR: An agile technical coach writes code with programmers for the purpose of improving how the team programs. Common areas include: Refactoring Test Driven…
By Llewellyn Falco & Jacqueline Bilston I’ve found that when I'm creating tests they provide 4 categories of benefits. Having these categories helps me to see how to write better tests and helps me see what to improve when I am feeling a particular pain. These benefits tend to occur in chronological order, which is how I’m going to lay out the explanations. Note: This article is about tests as…
The Point of 'No Return' Welcome to \n ew world I believe that life is important ... ...and way too much of it has been wasted on dealing with issues arising from inconsistencies between line endings. A modest proposal: In today's world most programs can handle the line ending \n correctly. The 'No Return' movement seeks to make inconsistent lines ends a thing of the past. There are 3 practices on…
By Llewellyn Falco and Clare Macrae . Here is what we learned about how to do effective online training, to help you run better courses yourselves, or to help you choose better courses to attend. TL;DR : Take advantage of being able to spread classes out over time. When meeting virtually, don’t pretend that you can replicate what you do at in-person training. You will need to scale back and make…
With the pandemic, I've been spending a lot more time in my house. One of the things I've been watching to entertain myself is the tiny house videos on youtube. While I don't think I would want to live in such a small space, it has gotten me thinking about the space I do live in, and how to make it better suited to me and less cluttered. And, of course, it's gotten me thinking about storage. In my…
Twice in my career I have realized that the code that was in production at a client did not match the code that was in source control. Of course if you have any type of automated deploy process this will not be the case, but if you have a manual deploy it can be. Yesterday, Simon Cropp told me of an amazing technique to recover from this. I am writing this in the hope that it will never be of any…
Last weekend I attended a Code retreat as part of global day of code retreat. I love code retreat. I’ve been attending since 2010. I’ve organized and even facilitated some. But I was rather disappointed in this one. I wanted to write down the issues I saw, not as a criticism of code retreat, but in the hopes of bringing back the original feel of the event and to hopefully grow more of them.…
Today I went to TestBowl 2019 - Software Testing Competition. I had some reservations going into it, but it was in my neighborhood and only 3 hours so I thought "why not". It was disappointing, but the thing is, I've been to 40-50 practice events for programming. I've hosted quite a few of them myself. So why was this different? This blog is an exploration into that question... The Event The event…
Normal 0 false false false EN-US X-NONE X-NONE By: Llewellyn Falco , Josh Widzer, Jay Bazuzi TL;DR: Bugs happen. While you could simply fix them, you could instead take an extra step to prevent similar mistakes from occurring again. This 25-minute process will do that. We will go in to the philosophies and reasons to do this in other articles. 1. When to do it Do safeguarding right after you’ve…
One common way I do a quick retrospective after exercises to "burn the fuel of experience" is a observation retro. I first learned to do these via post-it notes and then grouping them into clusters based on similarity. I still like and do this method a lot but find myself doing a mindmap version very often because of the ease and iterative nature of it. This is a short write up on how to do one.…
A while back I started really looking into the math of compound interest. I even made a video about it. All of this got me thinking about my own financial investments. While I've always been good at saving I've never been that good about investing so I did a little reading and then ran an experiment: I took my money, divided it into thirds and tried out 3 investment ideas. I also setup a calendar…
At European Testing Conference 2017 , we had a full session devoted to a speed meet. What is a speed meet? At its most basic it's talking to someone new for 5 minutes, then rotating and doing it again 9 times. Here's what it looked like: Mind Maps: What do you talk about? Of course this raises the question of what to talk about? To solve this, we took a suggestion from Jurgen Appelo and had…
Next week is the European Testing Conference . We do a lot of things to make this conference better European Testing Conference Feb 9 th & 10 th (Pre-conference Trainings on the 8 th ) Helsinki, Finland 25% off discount code: FRIENDSOFLLEW Here are some of the things we do to make a better conference for the attendees: 1) Facilitate meeting other people We all know that one of the best parts of…
Part I:The Problem I write a verification framework called ApprovalTests. It uses itself to test itself and is generally bug free. So when exploratory tester extraordinaire Maaret Pyhäjärvi wanted to use it as a test target we were both rather excited. I was excited to show off how good automated testing and TDD can be. She was excited to show off how much it still failed to cover. She won. To be…
At Agile2016 we spent the mornings doing Mob Programming working on the Tennis Refactoring Kata from Emily Bache . Thursday we ran accross this issue: #1. If Structure This is fairly easy to code as is, the trouble is it looks horrible: So we started to play around with alternative structures... #2. Pass in result One solution is to call all the methods but abort early if you've already found a…
I put a interview Maaret recorded with Bryan Beecham online yesterday. It's about the first time Bryan paired with me using Strong-Style Pairing . Here's the video: and the Transcript: So the first time i met llewellyn I was in a session at an agile conference. They were talking about a developer and tester pairing and the benefits of that and it was a great session and the really cool thing was…
A few days ago I created an open source project called EclipseTips with help from Aki Salmi It's a small jar that has classes without implementation that provide useful cheat sheet hints while you are working. Here's what it looks like The really interesting thing about this is it is a hack about using editor inline help solely for the purposes of help. This is something I have not seen done…
If you have team members working together on a project but separately on their own piece of the project then you need to coordinate that work. There are lots of interestingly different ideas on how much 'cost' there is to this coordination. Ranging from it's a very low overhead, to it requires a full time manager who is the highest paid person on the team. Often these drastically different…
One of the most common objections to Pair or Mob Programming is "How can more than one people working on the same thing be productive?" Let's put pairing that aside for a second though and look at common scenario: Duplication in the average code base You have a fairly big system, maybe 300,000 lines of code. How much of that is some form of duplication? Keep in mind that duplication is more than…
TL;DR: Technical can mean advanced, lingo and/or labs. I'll like to a moment to get technical about the concept of technical talks... It is often discussed before, during and after a conference about the 'right' amount of 'technical' talks. This is a very hard subject and in some of my recent discussion I started to get a glimpse into why: "Technical is a poorly defined umbrella term." As I…