Archives
182 posts total. See Filtering and Navigation for tips on how to find the bits in which you're interested.
- 9 posts
- 1 post
- »
I've published another EngFlow blog post, but not about Bzlmod this time. I will, however, be talking live on the Internet about Bzlmod tomorrow.
- 1 post
- »
I've published my fourth EngFlow blog post, about accessing canonical repository names under Bzlmod in a portable way using macros or custom Make variables.
- 2 posts
- »
I've published my third EngFlow blog post, about the proper use of Bazel's rules_pkg and avoiding silent breakages.
- »
I've published my second EngFlow blog post, explaining the necessity of using runfiles libraries with Bzlmod. It also tries to fill a lot of runfiles documentation gaps in general.
- 1 post
- »
I ended my post-Apple sabbatical by joining EngFlow in March, which is at once a new start and a bit of a homecoming. I also just published my first EngFlow blog post, Migrating to Bazel Modules (a.k.a. Bzlmod).
- 3 posts
- »
It's up to you to lead meaningful change using the ideas from this Making Software Quality Visible series. Here are some final resources, insights, and calls to action to improve your own software quality culture.
- »
Software quality doesn't come from forcing people to use specific tools, techniques, or processes. It happens when making high software quality becomes part of their lifestyle. Here are a few hints to make that happen.
- »
It's easy to forget that technologists are people, too. You can't fix all your bugs with moar code. Here are some of my own nontechnical, human struggles, in case others find comfort in seeing reflections of their own.
- 1 post
- »
The "Making Software Quality Visible" series will resume shortly. Before that, I'm excited to share a new training project I've developed. I'm also about ready to start a business or find another job soon.
- 24 posts
- 3 posts
- »
Accepting unnecessary complexity, risk, waste, and suffering as part of Business as Usual produces cultural failures that have actually taken lives. It also encourages an Arms Race mindset that makes problems worse.
- »
We need to understand, if software quality is so important, why it's so often unappreciated and sacrificed. The next few posts will examine several psychological and cultural factors that are detrimental to software quality.
- »
To advocate effectively for an investment in software quality, we need to define clearly what it is and why it's so important. We'll consider the economic and social impacts of both internal and external quality.
- 5 posts
- »
Vital Signs are a collection of signals designed by a team to monitor project and process health and to resolve problems quickly. This is as opposed to so-called, performative "data-driven decision making."
- »
Many projects have too many large, slow, flaky tests and few smaller ones. Retrying failed tests and marking known failures introduce risk and waste. Examining the root causes is essential to breaking the cycle.
- »
Unit testing existed before the World Wide Web, and the Test Pyramid has existed for years. Lack of awareness and belief hinders adoption of the Quality Mindset, not a lack of tools or code being "too hard to test."
- »
Contract and Collaboration tests are medium sized tests that validate how one's own code interacts with an external dependency. Internal APIs are adapters that insulate most of your code from changes in such dependencies.
- »
Test Doubles are lightweight, controllable objects that replace production dependencies in smaller tests. Adding seams in your logic to accommodate them enables much faster, more reliable, more thorough testing.
- 11 posts
- »
The Test Pyramid model and the concept of test sizes are powerful tools for introducing the principles underlying a sound testing strategy. When applied well, they create a positive Chain Reaction of high software quality.
- »
Software Quality must be visible to promote a Quality Mindset that improves everyone's individual choices, ultimately minimizing complexity, risk, waste, and suffering. This visibility also reveals our common humanity.
- »
Team and organizational alignment is essential to making software quality a priority for everyone. Roadmap programs like Test Certified and Quality Quest help provide focus, shape conversations, and show results.
- »
Michael Feathers's definition of "legacy code," his concept of "seams," and Scott Meyers's "most important design guideline" are profound insights. Perhaps my "electrical outlet" example will also prove useful.
- »
Developers (and those who work with them) are often misguided regarding the tradeoffs between quality, risk, and productivity. Here I take aim at two common bad habits and one common bad attitude.
- »
Improving one's skills helps improve one's choices. Helping developers learn to catch bugs early or prevent them altogether is critical to achieving and maintaining high software quality.
- »
I left the industry after Google, but not for long. At Apple, the Quality Culture Initiative embraced the power of "Focus and Simplify."
- »
This is how I figured out how to import Keynote images into my blog as SVG images that scale to any size and are stylable.
- »
My Laggard encounter eventually inspired me to organize the Revolution Fixit in January 2008, launching new tools that drastically reduced suffering all across Google.
- »
Normally I advise steering clear of those who directly resist change, but in this case, honesty and an open mind created a profound opportunity.
- »
I learned much more about software quality and automated testing at Google—but more importantly, I began learning how to change culture.
- 2 posts
- »
My first exposure to software quality issues and automated testing happened by accident while working on navigation systems for US Coast Guard and Navy vessels.
- »
This is the first post in a long upcoming series to discuss and refine the Making Software Quality Visible presentation.
- 2 posts
- »
A serendipitous find demonstrates that, at a high level, systems are systems, and the Quality Mindset applies to them all.
- »
The unsubscribe link is at the very end of the email, if that's how you're reading this. I'll also explain what's going on, and what I've been up to.
- 1 post
- »
I've completed the full script for my first post-Apple presentation on testing, culture change, and leadership.
- 3 posts
- 2 posts
- »
A conversation with Utsav Shah about automated testing adoption, culture change, and leadership.
- »
We're more alike than different—but it can be easier to convince the rest of the world of that than our own teammates.
- 1 post
- »
I learned to focus, simplify, and know my own value.
- 1 post
- 1 post
- »
I've had a great year at Apple so far, and now I'm looking for people to join my Test Paratroopers internal consulting team.
- 2 posts
- 1 post
- »
In a bizarre twist of fate, after a great run at Cvent, I've taken the unexpected opportunity to join Apple.
- 1 post
- »
A lot of my work at Cvent is reminiscent of my past, but my colleagues and I are discovering how to do it faster and better than we did at Google.
- 21 posts
- 1 post
- »
It's not that I haven't had enough to say these past few months, but rather that I've had too much—including a significant career announcement.
- 1 post
- »
I've released go-script-bash v1.7.0, which contains powerful new test helpers and file system modules, as well as project management improvements.
- 1 post
- »
I attended my first beCamp in Charlottesville, delivered a few talks, and generally had a wonderful time—with one especially hilarious glitch
- 4 posts
- »
I've released go-script-bash v1.6.0, a small release featuring its first user-contributed feature!
- »
At this point, I don't think I'm making an unreasonable request for a very specific birthday gift that would delight us all.
- »
Some wheels were meant for reinventing—if sometimes only because we need to teach ourselves how they work!
- »
Despite the silence, I've had a few things going on since returning from Europe—and there's still so much to do!
- 2 posts
- »
The first Schibsted Testing Fixit on June 22, 2017 was a success! And it inspired some people in ways I couldn't have imagined.
- »
For most of this time, I've been working in Barcelona with my first paying client, started a new project, wrote a new talk, and have been touring across Europe.
- 1 post
- »
I've released go-script-bash v1.5.0, a relatively small release introducing the lib/prompt and lib/existence modules.
- 6 posts
- »
Review comments on The Rainbow of Death have inspired a genuine research topic, but I need some help to implement it.
- »
Brothers John and Justin Hunter of Hexawise interviewed me for their "Testing Smarter with..." series, just posted to the Hexawise blog.
- »
I've released go-script-bash v1.4.0, another large update that includes massive test performance improvements, amongst other significant new features
- »
My presentation of "The Rainbow of Death" at DevOpsDays Baltimore 2017 went really, really well; the slides and full narrative are available here!
- »
The DevOpsDays Baltimore live stream details are posted, so tune in at 9:15am on March 8 to catch The Rainbow of Death!
- »
"The Rainbow of Death" talk I'm giving at DevOpsDays Baltimore this Wednesday, March 8 at 9:15am ET is promising to be the best talk I've yet given.
- 2 posts
- »
I'll be keynoting DevOpsDays Baltimore on March 8, I've made updates to my portfolio page, and I've some updates on go-script-bash v1.4.0 and more.
- »
This blog now features a Let's Encrypt certificate with HPKP, and I hope to share insights and tooling that may be of use to others.
- 3 posts
- »
Staying busy as a coping mechanism has given way to frustration and outrage that I'm struggling to put to good use.
- »
I've delivered an updated version of my "documentation and training" talk at Royall & Company at the invitation of Isaac Truett
- »
I've just released go-script-bash v1.3.0, which is a massive update, especially for logging and automated testing features
- 20 posts
- 3 posts
- »
I've just released go-script-bash v1.1.0, which adds some major new features, two new builtin commands, and multiple bug fixes and internal improvements.
- »
I was forcefully reminded of the wages of complacency last night, in a rather intense, personal fashion. I'm ready to act.
- »
Some background on the .about.yml project metadata format prompted by an unexpected inquiry from the TODO Group.
- 4 posts
- »
The video of the Surge 2016 version of "The Convergence of Wills", probably my favorite iteration of the talk so far, is now available. Plus a bonus go-script-bash lightning talk!
- »
I believe Donald Trump embodies the worst of everything that is wrong about the United States of America, about men, and about humanity in general. We must not elect him.
- »
Just posted a "Hello, World!" example for the new
ReactionMessage
type I added to thehubot-slack
npm.
- »
James Comey's George Washington Leadership Lecture was one of the most outstanding speeches I've ever heard in my life.
- 3 posts
- »
Gene Kim posted about the appearance of "The Birth of Automated Testing at Google in 2005" in the upcoming DevOps Handbook.
- »
I'll be delivering "The Convergence of Wills" one more time at Surge 2016 this Friday at 11am.
- »
I've been obsessed with writing a framework for ./go scripts in Bash, and have just released v1.0.0.
- 1 post
- »
One more iteration on the Google Testing Grouplet story, this time tailored to Netflix's culture of "Freedom and Responsibility".
- 4 posts
- »
I delivered a talk on the importance of documentation and training to the culture change mission during the Chadevs weekly lunch Meetup.
- »
I delivered a talk Monday, am halfway through the automated testing workshops, and will be live streaming another talk Thursday at noon.
- »
Links to the video and slides of my "The Convergence of Wills (abridged)" talk, as well as an extra surprise.
- »
A last minute announcement of my DevOpsDays DC talk and upcoming unit testing workshop in Chattanooga.
- 1 post
- »
Here are the slides to my Beyond20'16 presentation, "The Convergence of Wills".
- 1 post
- »
I've resigned from 18F, am taking some time off, and am speaking at the Beyond20'16 conference next week.
- 3 posts
- »
I've written a Slack bot in Node.js that files GitHub issues, and a unit testing tutorial in Node.js based on the bot.
- »
The third and final post of my "Turning learning up to eleven" trilogy, focusing on knowledge sharing, is now on the 18F blog.
- »
The second post of my "Turning learning up to eleven" trilogy, focusing on transparent internal operations, is now on the 18F blog.
- 16 posts
- 3 posts
- »
The first post of my "Turning learning up to eleven" trilogy is now on the 18F blog.
- »
Sometimes, when inspiration strikes, it isn't pretty; in fact, it can be downright painful and horrid. Please don't read this post.
- »
My work to improve knowledge sharing at 18F is paying off, and I aim to make thieving bastards of us all.
- 1 post
- »
The video for my talk at the 2015 DevOps Enterprise conference, in which I talk about Google and 18F, is now available on YouTube
- 1 post
- »
I seemed to pop up all over the place this week: at the Consumer Financial Protection Bureau; in online government press; and at Christopher Newport University.
- 5 posts
- »
My latest 18F blog post about our ever-evolving onboarding process, "Building a better welcome wagon" is now posted.
- »
After a bit of hunting and poking around, I got my Plan 9 virtual machine on the net, installed the Go programming language, and made good on a promise.
- »
I've finally gotten Plan 9 and its rio windowing system running successfully under VMware Fusion 7.1.1 on OS X 10.10.3 and feel like shouting about it.
- »
I've written a new 18F blog post describing my experience using Bitly's oauth2_proxy for the 18F Hub and contributing code changes back to it.
- »
Billy Mitchell from FedScoop covered 18F Guides in a brief article late yesterday, providing a little more context around the vision.
- 3 posts
- »
My post announcing 18F Guides has been published on the 18F blog, describing our goals and ambitions for this collection of documents.
- »
I delivered a talk to the Arlington Ruby Meetup describing my work on the Jekyll-based 18F Hub and 18F Pages web sites.
- »
I posted an announcement of 18F Pages, our government-approved reimplementation of GitHub Pages.
- 1 post
- »
A number of initiatives that I've started within 18F have been taking off, with more to come.
- 2 posts
- »
The White House just launched its U.S. Digital Service recruiting website, in which I play a small but proud role.
- »
I've been awarded a January 2015 "Flushy" award for being the first Xoogler (ex-Googler) to write Google Testing on the Toilet episodes.
- 31 posts
- 4 posts
- »
I finally reveal the 18F Hub, the reason I've been in Fixit Mode since joining 18F two months ago.
- »
I've posted another 18F blog entry introducing the 18F-flavored version of snippets to the world.
- »
My first-ever blog post for 18F is now live, announcing my "Large Scale Development Culture Change" webinar.
- »
The webinar video from my December 2, 2014 delivery of "Large Scale Development Culture Change" at the GSA via DigitalGov
- 1 post
- »
Quick updates on my progress as part of 18F, and "Large Scale Culture Change: Google and the US Government" at the GSA on Dec 2
- 1 post
- »
I'm moving to Washington, D.C. to join the 18F team, to help change how development is done throughout the Federal government.
- 1 post
- »
I've produced a report on the early, promising results of my OpenSSL makefile refactoring experiment, in which I was successful using GNU make.
- 1 post
- »
I paid a visit to Washington, D.C. this past week, gave a tech talk on unit testing and culture change, and was amazed at the positive energy there.
- 6 posts
- »
My original "goto fail" article has been published online and in print by the Communications of the ACM, the flagship journal of the ACM.
- »
I'm experimenting with refactoring OpenSSL's existing recursive Make structure into a top-Makefile-with-includes structure.
- »
I've dropped out of Berklee a second time, both to pace myself and pursue programming again for a little while.
- »
To launch the effort to add unit/automated tests to OpenSSL, I've created OpenSSL wiki pages and created the openssl-testing Google Group
- »
While writing the tests for the "goto fail" and Heartbleed bugs, I stumbled upon an xUnit-like pattern for writing tests without a framework.
- »
The OpenSSL team has accepted my offer to help improve its unit/automated testing, and now I'm recruiting people to help in the effort.
- 4 posts
- »
Thanks to Ben Laurie, my unit/regression test for the Heartbleed bug has been commited to the central OpenSSL source repository.
- »
My original "goto fail" article has been published online by ACM Queue.
- »
Martin Fowler invited me to contribute an article to his website making a case for unit testing in the wake of "goto fail" and Heartbleed.
- »
The Google Testing on the Toilet team has published my episode about the Heartbleed bug, and other fronts are showing signs of progress
- 6 posts
- »
A letter to cybersecurity expert Dan Geer regarding the role of unit testing in helping to avoid errors in security-critical software
- »
The Google Testing on the Toilet team has published my episode about the Apple SSL bug, and I explain why this is for the greater social good.
- »
A Testing on the Toilet-inspired article about the Heartbleed bug and how it could have been prevented
- »
I've written a complete proof-of-concept unit and regression test for the Heartbleed bug, and am pretty happy with it
- »
I wrote a rough skeleton of a proof-of-concept unit test for the Heartbleed bug that I hope to polish and complete over the weekend
- »
The Heartbleed bug has me seeing red just as much as Apple's SSL bug did, because it's another serious bug that could've been caught by a test
- 5 posts
- »
Turns out I couldn't let the Apple SSL bug go quite yet, as I've submitted an article to Communications of the ACM for consideration
- »
Hopefully the Apple SSL bug is out of my system, having given an AutoTest Boston lightning talk and written a Testing on the Toilet-esque article
- »
Wrote a new script to update the tags for the playingthechanges.com MP3 files before importing them into iTunes, and accepted a challenge from David Plass
- »
My programming skills still come into play at Berklee, as I wrote a Python script to download the MP3 files from the Playing the Changes website
- »
I've published a new article on AutoTest Central about the Testing Grouplet's Small, Medium, and Large test size schema, and more on the Apple bug.
- 2 posts
- »
Apple's recent SSL security bug compelled me to write a blog post for AutoTest Central illustrating how unit testing could've helped prevent it
- »
I spoke at the first Automated Testing Boston Meetup event, and have just posted on the AutoTest Central blog in the hopes of being useful
- 13 posts
- 1 post
- »
The recent Go 1.2 release contains genius test coverage features, but the announcement illustrating them contains an annoying flaw
- 2 posts
- »
Another Rob Galanakis-inspired post, a reflection on the nature and value of teamwork in the context of my Testing Grouplet and Fixit experiences
- »
Rob Galanakis, in one brief blog post, points exactly to what made my past Google Testing Grouplet experiences so special and powerful
- 1 post
- »
A call for advice and other forms of help regarding my nascent musical career at Berklee
- 1 post
- »
A reflection on my experiences at Berklee to date, including the realization that music and language are isomorphic human activities
- 1 post
- »
After the Boston Marathon bombings on April 15, 2013, I consider my good fortune and the suffering of others, and reaffirm my dedication to music
- 1 post
- »
Extracting the album artwork for Jimi Hendrix's "People, Hell & Angels" from iTunes 11, using vim to change the binary ITC file format to JPEG
- 1 post
- »
There are many better uses of my time than getting sucked into writing demented Python scripts for Mac OS X. That doesn't seem to matter, always.
- 5 posts
- »
It was five years ago today that the Build Tools team, Testing Technology, and Testing Grouplet taught the band to play with Blaze, Forge, and SrcFS
- »
Tuition is paid, new ID card is in-hand, and I'm all set to start classes at Berklee College of Music next week
- »
How to create a rechargeable 9V power supply for guitar effects pedals, based on advice from The Gear Page
- »
Tips on how this blog is organized and navigated so folks can tune into the signals they are interested in and filter out the rest
- »
Modifying the MXR Micro Amp for True Bypass switching, requiring tricky circuit board surgery due to its original surface-mount DPDT switch
- 26 posts
- 1 post
- »
The United Nations International Telecommunication Union is meeting to consider sanctioning Internet taxes and regulations, and I aim to misbehave
- 1 post
- »
A few things I'm thankful for this year, especially in the wake of the 2012 United States election
- 6 posts
- »
A thought experiment regarding potential criticisms of my blog, in light of a comment by Rob Galanakis on my Leaving Google post
- »
The reasons I decided to leave Google, why I decided to return to music and Berklee, and why I've written so much about Google in this blog
- »
The second Fixit I organized to promote widespread adoption of automated developer testing throughout Google development
- »
The first Fixit I organized to promote widespread adoption of automated developer testing throughout Google development
- »
Announcement of the licensing of all blog posts on Mike Bland's blog under the Creative Commons Attribution 3.0 License
- »
The specific tools the Testing Grouplet, Testing Tech, Build Tools and others developed to improve testing development and efficiency at Google
- 6 posts
- »
Comprehensive notes on maintaining a personal computer backup strategy, based on my Mac OS X experience
- »
A personal reflection on the 2012 United States Presidential election, the current United States political and social climate, and Jimi Hendrix
- »
The collection of processes Google uses for ensuring software quality, including automated developer testing as promoted by the Testing Grouplet
- »
The basics of how automated tests should--and should not--be written, as promoted by the Testing Grouplet at Google
- »
In the middle of moving to Boston, I find an old email to friends sent at the beginning of my adventures with the Testing Grouplet at Google.
- »
I learn that I'm still a programmer after writing tools in Ruby and Go to help publish my blog, which I've also now published on Google Code.
- 3 posts
- »
Fighting back against critics of automated developer testing in light of the Testing Grouplet et. al.'s impact on Google development
- »
The fundamental object-oriented programming issues which produced Google's testing challenges and the solutions promoted by the Testing Grouplet
- »
The high-level cultural challenges to the adoption of automated developer testing at Google which the Testing Grouplet worked to overcome
- 2 posts
- »
Everything I've been saying and will say in this blog about the Testing Grouplet, Test Certified, and Fixits at Google, compressed
- »
A team of developers within Google dedicated to helping development teams participate in the Testing Grouplet's Test Certified program
- 1 post
- »
The homegrown continuous integration and test system that powered the Testing Grouplet's Test Certified program at Google before TAP
- 1 post
- »
The Great American Road Trip is long since over, I've semi-retired from the tech industry, and I've decided to return to Berklee College of Music.
- 3 posts
- »
After driving through Montana and Wyoming during my Great American Road Trip, I better understand Dog Day Afternoon.
- »
Highlights of my Great American Road Trip from Memphis to Boise
- »
My pilgrimage to the birtplace of Rock 'N Roll during my Great American Road Trip
- 2 posts
- »
Back home in Virginia for the second day of my Great American Road Trip
- »
My Great American Road Trip begins, as I take the PATH to Hoboken and drive to Harrisburg, PA, then cave in and announce the trip on Google+.
- 13 posts
- 1 post
- »
The before-and-after picture of the Testing Grouplet et. al.'s impact on Google Engineering
- 2 posts
- »
Publicly-facing details about Google to which I contributed in a significant way
- »
The Testing Grouplet's terminology for getting Google engineers to think about the different scopes of automated tests
- 6 posts
- »
The Testing Grouplet's weekly publication for spreading testing news and views throughout Google, in the most opportune of places
- »
The New York Times reports on a Waldorf elementary school in which children of Googlers are enrolled.
- »
The Testing Grouplet's program for promoting good automated developer testing practices throughout Google Engineering
- »
This is where to go if you're wondering what's on my mind that I haven't written about yet.
- »
T-shirts: The worst schwag ever. Trust me. Just Say No!
- »
Fixits, when engineers throughout Google focus on back-burner issues for a day—and, more importantly, Fixit schwag
- 4 posts
- »
The grassroots volunteer team which made automated developer testing a core practice of Google engineering culture--and had fun doing it
- »
Google Engineering Grouplets, aka Intergroups, Intergrouplets: Volunteers using their 20% time to make Google Engineering better
- »
A good cause, despite the gag-inducing ego-tripping
- »
I give up. Resistance is futile. I signed up for Google+.
- 3 posts
- 1 post
- »
Nobody "un-likes" the Bastille! Nobody "un-friends" the Bastille! Nobody "un-follows" the Bastille!
- 2 posts
- »
Reflections on Apple's impact from a Linux-based programmer
- »
Impressions of the first Hacks and Hackers Meetup in NYC