Jay Bazuzi's coding blog

Sunday, November 19, 2017

Mega Mobbing

›
This week we ran a #mobprogramming session with 35 people. Here are some notes about how that went: READ MORE

Port And Transport And Port

›
Port And Transport And Port I use Ports-and-Adapters to abstract away my application’s interactions with external systems. I bend the de...

New Blog

›
I'm experimenting with a new blog. I hope it will be easier to right better technical posts if I can use Markdown. Check it out: http:...
Sunday, October 1, 2017

Fast tests for integration points

›
Ports-and-Adapters is a good design approach for separating business logic from external dependencies, aka Mine vs. Thine. Like all good ...
Friday, August 18, 2017

Refactor a lot, but only when it's appropriate

›
Don't just refactor for fun. Refactor in service of delivering business value. If there's some terrible code that you never need to ...
Wednesday, August 16, 2017

1* Agile is not nothing

›
Sometimes when people learn about the  Agile Fluency Model  they think of the first zone as "not very good". We should of course b...
Wednesday, August 2, 2017

You really should get rid of those strings.

›
If you're looking for something to improve in your code, the #1 thing is not in this blog post. It's Naming is a Process . The #2 ...
Saturday, July 29, 2017

Prevent infinitely many bugs with this one simple trick

›
Here's a way to quickly find a bug in any legacy code: Step 1: Find a case-insensitive string comparison. boost::remove_erase_if(...
11 comments:
Saturday, May 6, 2017

Releases per bug

›
Traditional teams count "# of active bugs" and "# of bugs fixed per week" and the like. These drive the wrong behavi...

Slightly better every day

›
If you have legacy code, you should strive to make things slightly better every day. (Sometimes referred to as the scout rule). There...
Friday, March 10, 2017

Three kinds of code

›
I propose a refactoring "Extract Open Source Project". We build software systems to some purpose. But when I read code, I see th...
Monday, February 20, 2017

Test-as-spec and assertion syntax

›
I like to say that tests should, first and foremost, be a human-readable spec . Let's look at what that can mean for how we write asse...
1 comment:
Saturday, February 18, 2017

Micro-ATDD

›
I strive to make all my tests be both microtests and acceptance tests, an idea I learned from Arlo Belshee. When I say this to people, the...
2 comments:
Friday, February 17, 2017

AONW2017: Amazing Distributed Teams

›
My new job involves teams that are distributed over a bunch of locations, mostly on the West Coast of the USA. Each team has people at multi...
Thursday, February 9, 2017

Safely extract a method in any C++ code

›
Moved here for better formatting:  http://jay.bazuzi.com/Safely-extract-a-method-in-any-C++-code/
2 comments:
Tuesday, October 18, 2016

Pinning Tests

›
I wrote this on the C2 Wiki, with the hopes that other people would help improve it. But now that site is down, so I'm posting it here: ...
1 comment:
Tuesday, September 6, 2016

Proposed Refactoring: Introduce Parameter in Lambda

›
Given a lambda with a captured local variable, Add a new parameter to the lambda Inside the lambda, replace uses of the local with uses o...
1 comment:
Sunday, September 4, 2016

Proposed refactoring: extract and execute lambda

›
Given a statement block, wrap it in a lambda assigned to an Action variable, and execute it immediately. Loading Gist 21a92bc8770caf19bf...
Tuesday, July 5, 2016

"pure unit test" vs. "FIRSTness"

›
Sometimes we categorize tests into groups like "pure unit test", "focused integration test", "end-to-end-test"...
Thursday, June 23, 2016

How to document your build process for an open source C# project

›
As an Open Source contributor... I find an interesting open source project that I want to contribute to. I fork/clone the repository to...
Saturday, June 11, 2016

An example of good engineering

›
I often advocate for good engineering practices and the path to Zero Bugs . Talking about these things is great and all, but concrete exampl...

ValueTypeAssertions

›
The Problem Primitive Obsession is one of the most pervasive code smells out there. You can address it by moving a primitive in to a simpl...
Wednesday, May 11, 2016

Extract Method introduces a bug in this corner case

›
I rely on automated Extract Method to do the right thing, regardless of test coverage. This is a key part of attacking legacy code that lack...
3 comments:
Saturday, May 7, 2016

Examples of tiny test-induced design damage

›
Imagine you are trying to write a unit test for some code, but you're finding it difficult. Maybe there's some complex detail in t...
Friday, May 6, 2016

Mob Programming conference 2016

›
Resources Mobbing time lapse – a full day in 3 minutes Woody Zuill keynote – how they found mobbing Some Helpful Observations for su...
Monday, April 11, 2016

Definitions of "Zero Bugs"

›
I am writing in response to this tweet: @arlobelshee @moshjeier @jaybazuzi @lisacrispin @dwhelan I agreed for some def'n of term...
Thursday, February 18, 2016

BugsZero @ Agile Open Northwest 2016

›
Neo: What are you trying to tell me? That I can catch all my bugs in testing?    Morpheus: No, Neo. I'm trying to tell you that when ...
Wednesday, December 23, 2015

My ideal edit/build/test/commit/deploy/etc. system

›
There's a ton of variation out there in how teams set up the pipeline from "edit code" to "live in production". I wa...
Sunday, December 6, 2015

Types of integration/integrated test

›
I've noticed that people often use these terms interchangeably. And when I look at the kinds of tests they're talking about, I see...
1 comment:

Every "Extract Method" starts with minus 1 points

›
Eric Gunnerson once wrote about the idea that, in programming language design, every potential language feature starts with "minus 100 ...
Sunday, September 13, 2015

Unit testing microskills

›
In response to my Why we Test posts , George Dinwiddie had this to say: Good collection of "whys." I'm also looking for ...
Saturday, September 12, 2015

Why we test, Part 8: Because we are competent professionals

›
#15 in my list of reasons why we (unit) test, which I learned from James Shore: Refactoring without tests is inherently unsafe, because of...
Sunday, August 23, 2015

My ideal backlog

›
Problem: There are two ways people seem to want to use a backlog: A) To sort by priority, so the next thing we do is the most important ...
Sunday, July 19, 2015

GetRouteData() in ASP.NET WebApi

›
I've been trying to get System.Web.Http.HttpRouteCollection.GetRouteData() to work in ASP.NET WebApi recently, and had a hard time of it...
Thursday, May 14, 2015

The relationship between DRY and Coupling

›
I think that the DRY principle is a subset of* "Low Coupling". DRY & Coupling: If one rule is expressed in two places in yo...

The Prime Refactoring

›
I used to believe that the two most important refactorings were Extract Method and Rename. The way they deliver value and the way they are u...
Monday, April 6, 2015

"good" names - a minbar

›
In code, naming things well is incredibly powerful. Names help with expressing intent, increasing cohesion, and identifying duplication. B...
1 comment:
Wednesday, March 18, 2015

The zeroth rule of software estimating

›
I realized that before even the first rule of software estimating  must come: Know why you are estimating. We take it for granted that sof...
Thursday, February 26, 2015

The second rule of software estimation

›
The more error there is in your estimates, the less precise you must be. That's based on my past experience with being wrong a lot, a...
Tuesday, February 24, 2015

The first rule of software estimating

›
Take a list of pieces of work you might do. Stories, features, products, I don't care. Find two that are the same size. Approximately. ...

How I write "contract tests"

›
This comes up in conversation often enough that I want to write it down.. Context: My code talks to an external dependency that is awk...
Tuesday, February 17, 2015

Bug metrics

›
Metrics are tricky. Plenty of ink has been spilled on that topic, so I'll leave it for now. Around bugs, I know of 4 interesting metri...
›
Home
View web version
Powered by Blogger.