How can we do better?
—So we did two releases in quick succession. Why?
—The second release was to fix a typo in the first release.
—How can we do better?
—The release shouldn't have gone out until it had been tested in a QA environment and signed off.
—But couldn't we have caught the error sooner than that?
—We need a build server, that builds and tests everything. A unit test should've picked it up.
—Surely we could've caught it sooner than that?
—The code should never have been pushed to the build server. A code review should be required prior to check in. A second pair of eyes, looking at the diff would've caught this.
—But couldn't we have caught it sooner than that?
—If we were writing tests first, then the faulty code would've been detected before the engineer considered asking for a review.
—But couldn't we have caught it sooner than that?
—If the language we were using had a more expressive type system, it would've been impossible for such a typographic error to compile.
—Hmmm. But isn't compile time too late anyway?
—If the engineer had thought more carefully before pressing each key, been more intentional in her work, this would never had happened!
—Is that really the best we can do!?
—If we selectively bred perfect humans, incapable of incorrect thoughts, then our releases would always be perfect.
—No, selective breeding takes too long. We need to do better!
—We need to manipulate the genes before the zygote is allowed to split and multiply, and perfectly engineer the perfect engineer.
—Ah yes, project Ultra-Mega. Do we have a status report on that project?
—Yes. There were two releases this week, in quick succession. The second release was to fix a typo in the first release.
—How can we do better?
(The meeting took *forever*)
My book "Choose Your First Product" is available now.
It gives you 4 easy steps to find and validate a humble product idea.