A few years ago, I was tasked with the migration of data across build, staging, and production environments. It was heavy with software...more.
A few years ago, I was tasked with the migration of data across build, staging, and production environments. It was heavy with software...more.
"Abstract" is a commonly used word in software. I hear it a few times every day.
"Can we make an abstraction around this?" "Let's move...more.
Pair programming always
To explain why, we will take a look at an important study which explains how people learn in social contexts.
Frameworks are powerful tools. We'd be lost without them. But there's a cost to using them.
Think of Rails, or Spring, or JSF, or Hibernate....more.
Lately I have been criticized, both directly and indirectly, for associating TDD with professionalism. Indeed, I believe much of the recent "true believer" rhetoric we...more.
I miss Jim Weirich. I miss his laugh. I miss his good nature. Most of all, I miss what he would have taught me next...more.
When a blog begins like this...
"Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming."...more.
Have you ever watched an episode of
Hoarders, or a documentary about a hoarder? Shows like this were popular a few years back. They showcased...more.
In the last few weeks there have been a spate of blogs, from various sources, that have suggested that TDD could be done better if...more.
Before I started working at 8th Light I spent two years at a boarding school teaching German, Economics, and coaching fencing. Although I didn’t study...more.
Five years ago, a handful of us nervously deployed a little application that held some pretty lofty ideals for the future of software development. We...more.
We show respect for our customers and fellow craftsmen.
We do not act unprofessionally or unethically. —from the 8th Light Principles of...more.
The foreman on a construction site is the guy who is responsible for making sure all the workers do things right. He's the guy with...more.
During the Second World War, both the Japanese and United States armies set up bases on remote islands in the Pacific Ocean. The islands’ inhabitants,...more.
In my hand I am holding a little white book that, fourteen years ago, changed the software world forever. The title of that book is:...more.
Is the software industry trying to write the script for Hamlet by hiring a million monkeys to bang on keyboards? Perhaps we should rethink that...more.
This is not a political blog. This is a blog about the Software Industry; and the profound effect that its failure is having upon our...more.
Two days ago my wife placed an on-line order at Walmart for a metal-frame bunk bed for our grandchildren to sleep on when they stay...more.
Saying “no” is hard, even if it’s to a close friend. In a professional environment, however, it can be important and often far more difficult....more.
In 1826 Marc Isambard Brunel and Isambard Kingdom Brunel, a father and son engineering team, sought to build a tunnel under the Thames river in...more.
I first heard the term "Test First" in 1998. Back then it was part of the phrase "Test First Design". We often shortened it to...more.
One of our core values at 8th Light is Community. We believe that no craftsman is an island. They engage with a team and the...more.
Back when I started grad school, one of my housemates asked me to help her with a project. For a Sociology class, she had been...more.
“We're behind, but it’s important to show that we can deliver these features.”
“Now is the time to show how good of a job...more.
For those new to Test Driven Development, understanding how to take small, incremental steps when writing your tests can be a confounding practice. Even the...more.
We partner with our customers to understand their business.
We do not propose solutions until we are sure we have found the...more.
Is your code
reallytelling you to use an if statement?
As a developer, it is really important to practice your craft. And a great...more.
“Well, why are you afraid to say that you are a craftsman to other people?”
A friend was recounting his discussion over...more.
We communicate our progress honestly and openly with our customers.
We do not conceal or embellish. —from the 8th Light Principles of...more.
Steadily Adding Value
We estimate with diligence.
We do not let fear or pressure make us promise what we can’t deliver.
We work at a sustainable pace.
We do not burn out. —from the 8th Light Principles of Steadily Adding Value
We take responsibility for the correctness of our code by testing it thoroughly.
We do not tolerate preventable defects. —from the 8th Light...more.
We teach anyone with a willingness to learn.
We do not hoard our knowledge or practices. —from the 8th Light Principles of...more.
Oh! I think I
I'm likely to take some heat for what I'm about to write; but I think I finally understand...more.
We embrace differences of opinion and personality.
We do not allow our current practice to impede improvement. —from the 8th Light Principles of...more.
We humbly demonstrate our expertise by delivering quality software.
We do not inflate our abilities or claim expertise where we have none. —from...more.
We always apply our best efforts to complete our work.
We do not make excuses. —from the 8th Light Principles of Steadily Adding...more.
I awoke this morning to see a twitter conversation about the Open-Closed Principle. The tweeter was complaining that it didn't make a lot of sense....more.
We continually master a variety of technologies and techniques.
We do not let unfamiliarity dissuade us from using the best tools. —from...more.
Our jobs as creators and maintainers of software systems are heavily wrapped up in our ability to learn. Generally we need a base level of...more.
As developers our workspaces are important to us. As software craftspeople, our tools are part of who we are. How many times do we settle...more.
It should come as no surprise to anyone that I think 8th Light Inc. is a remarkable company. The company was founded, and is run,...more.
Have you ever watched an interview with a successful product creator?
I have, and lots. Typically the interviewer will ask what mistakes...more.
In a recent blog Ted Neward made this remarkable statement:
I'm criticizing because this is what "software craftsmanship" gets us: an imposed segregation...more.
I have been reading on blogs and tweets the sentiment that
"software craftsmanship is elitism". This perception is formed around comments of code, process,...more.
It wasn’t that long ago, and I was relatively...more.
My first ever craftsman swap was with Relevance a little over a month ago. I went to Durham for a week and Relevence's Kevin...more.
In the year 627 AD, a Buddhist monk was concerned with the translation quality of Chinese Buddhist scriptures; he decided to take a trip...more.
Frameworks are about efficiency and effectiveness. They save you time. By forcing common conventions, a framework helps solve common issues like view rendering, asset...more.
“So, what did you think of
that?” I asked as we sat down at our regular table in the cafeteria. As I scanned the other...more.
Over the last several years we’ve seen a whole range of ideas regarding the architecture of systems. These include:
When the Single Responsibility Principle is taught among developers, one aspect - the responsibility - is harped on the most. But what counts as a...more.
Being wrong sucks. Unfortunately, being wrong is a fact of life for developers. Personally I have chosen the wrong technology for the task at hand,...more.
Being a professional developer means that you are responsible for delivering software on time that works. It's a satisfying job - you solve the...more.
Scenario: We are sitting in a planning meeting and a business stakeholder asks one simple question. “How hard would that be?”
“Education comes from within; you get it by struggle and effort and thought.”
— Napoleon Hill
We all know...more.
In the United States, in 1920, the manufacture, sale, and importation of alcoholic beverages was prohibited by a constitutional amendment. That amendment was repealed thirteen...more.
Have you ever had a question you wanted to ask, but didn't?
Have you ever asked a question then immediately regretted asking it?
I interviewed a bright young woman today who is graduating from high school this spring among the top of her class. Despite having several...more.
Consider the Gettysburg Address:
“Four score and seven years ago our fathers brought forth upon this continent a new nation, conceived in liberty and dedicated...more.
There’s a disaster coming. I don’t know when. I don’t know what. But it’s coming, and there’s nothing we can do to stop it; but...more.
What does it take to be a professional?
This week, we held series of events to kick off the launch of the 8th Light Florida...more.
We're already a quarter into the year. Have you learned a new language yet?
Lately I've been fascinated with the idea of logical fallacies, and especially problems in arguments that may at first glance seem reasonable.
There is a certain type of bug that, when it appears as a result of my code, causes me deep embarrassment.
There's an old adage, don't reinvent the wheel. In other words, don't fix what isn't broken. But sometimes that's precisely what we need to...more.
Many of us admire other professionals, such as musicians and athletes. We even emulate them in our own profession by practicing. What about that...more.
Once there was an emperor who wanted to make a temple in his capital holier and more elegant. His servants looked far and wide...more.
I can’t stand bad audio. It makes me want to chew off the end of my big toe.
I started my career...more.
I sat down with a group of developers today to do a retrospective on a project. They told me that project management has been complaining...more.
I got an interesting email yesterday. It contained the following paragraph describing an email he had sent to his co-workers about a refactoring he had...more.
“The one absolutely solid place to store your capital today — if you know how to do it – is in software developers’ wallets.”
We need to become a self-regulating and self-policing profession. The stakes are simply too high to allow software to remain in the current ad-hoc limbo...more.
There’s a bit you need to flip in your head. It’s just one bit. In this blog we’ll call it “THE BIT”. Some...more.
What is our job, and how can we do it better?
For a while, I've wanted to write a blog about what it means...more.
"The Manifest for Software Craftsmanship is obvious!" "How could you not agree with it?" "Duh!"
The 2011 SCNA (Software Craftsmanship North America) conference concluded just a few days ago, and there was a large audience...more.
A good name is more desirable than great riches; to be esteemed is better than silver or gold. Proverbs 22:1
I remember in my times as a restaurant worker that the management would always give us these rhyming platitudes that were after-school-special cheesy. One...more.
I have a confession to make.
For the first five years of my professional career, I was a .NET programmer. The first...more.
At 8th Light, we brew coffee like we brew code - with passion, enthusiasm and dedication.
You could call it a daily...more.
At 8th Light, the value of practice is undisputed. Effort devoted to honing your craft pays dividends time and time again.
One of the habits that’s valued highly at 8th Light, and should be valued by professional developers everywhere, is the habit of practice....more.
My third and final day began with another breakfast graciously provided by Ken’s wife and a walk around Ken’s land. The house and studio...more.
Some time ago, I was stumped by a spec failure. Having decided that I’d spent enough time on it, I asked a colleague over...more.
Hi, my name is Doug and I don’t own an iPhone and I don’t plan on buying one anytime soon. Don’t get me wrong,...more.
After 3 long years of searching, and several rejections (you know who you are), I finally have an apprentice. I’ve asked him to blog...more.
Many small software contracting companies (boutiques) have been popping up in the last few years with our company, 8th Light, featuring among them....more.
The lovely wall you see before you is the wall of my son’s bedroom, freshly stripped of wallpaper. Note the beautiful drywall exposed in...more.
Today was my last day at Relevance, pairing again with Stuart Sierra. Along with Alan Dipert, we arrived at a solution for our data...more.
Day 3 at Relevance began, as the previous days, with the company standup. Stuart Sierra, of clojure.test and Practical Clojure fame, was my pair...more.
Oh how fast a week goes, especially when it's short. Did you know that Midsummer is arguably the biggest holiday in Sweden? And did...more.
After attending tonights got:ruby I became obsessed with and started installing rvm. It worked swimmingly.
I’m looking forward to getting my development...more.
Before I get into some of the details of day #2 at eLabs, let me dispell a few myths about Sweden that my American...more.
Today was day one of my Craftsmanswap with eLabs developer Anders Tornqvist, and so far they have treated me with the hospitality and graciousness...more.
“It's kind of a Frankenstein.” We’ve used this phrase more than a few times to describe the architecture and technology used to design a...more.
Today (March 15th, 2010) is my Grandfather’s 90th birthday. We celebrated with him this weekend in Pike County, IL. I spent quite a bit...more.
Our secret is out. A recently published photo revealed it hanging lazily in the corner of our office: a hammock. Why would an office...more.
Hi my name is Eric, and I have made a mess. There I said it. I’m not proud of it, but I believe a...more.
There is so much to learn in this field, and the many new languages, frameworks, and APIs that are developed every day only add...more.
Michael Feathers recently wrote about boutique software shops. He drew a parallel between master chefs and software shops and made a few...more.
Craftsmanship has been used as a metaphor for software development. Pete McBreen argues in his book “Software Craftsmanship” that craft is a better metaphor...more.
I will not charge a client for a bug fix. Not a penny. If I make a mistake, it is my professional obligation to...more.
Today turned out to be little coding and quite a bit of retrospective. I was able to pair with Nate Jackson for a little...more.
Every week, Obtiva sets aside time for what they call Hackfest. Everyone is encouraged to take some time over lunch to work on some...more.
My initial impression of the Obtiva office is the relaxed atmosphere. It consists of a big, open work area with lots of pairing stations....more.
Software bugs are errors or omissions in the work we create. They are our mistakes as software developers. I would like to take a...more.
Software is not made with designs and ideas, but with code. Code is the raw material. Code is the only means we have to...more.
8th Light and Obtiva have partnered up to provide a journeyman program. Traditionally, a journeyman program is when a master craftsman hires a journeyman...more.
I would like to prelude this with an assurance that this is not the history of the software craftsmanship. Rather, this is just a...more.
We recently had an interesting requirement surface. In anticipation of the release of a number of demo environments, our customer requested that system configuration...more.
My path in becoming a craftsman was not through conventional academics. I did get a Bachelor degree in Computer Science. During those years of...more.
I was looking for a new major after deciding chemistry (and lab work in particular) probably wasn't for me. So I decided to try...more.
As craftsmen, we're proud of our work. Yet it's rare that we get the opportunity to show off what we do for clients. Fortunately...more.
At 8th Light, they follow a practice of training people through an apprenticeship period. As it is nearing the end of my apprenticeship, my...more.
Craftsman Clarification: There has been some discrepancy in the use of the term “Software Craftsman”. Rather than going into details about various uses of...more.
I spent a lot of time with my grandpa growing up. He has spent much of his retirement ‘fooling around’ in a workshop he...more.
Whenever I would visit my grandmother growing up, one of the highlights was she had space invaders on her computer. Once, my Uncle Don...more.
When I was about 11 or so I bought a Color Computer III at a garage sale. I started typing in some basic programs...more.
I find while writing web applications that I end up redefining what it means to go “back.” This means where I want the user...more.
Software defects are a part of software. This is a negative subject, but I don’t want to seem like the software I write is...more.
I have three step-children and I rarely promise them anything. It’s not because I’m a horrible father, but because a promise is a fundamentally...more.
The other day, I was with my team at an interview for an internship. After we had asked the candidate some questions, he started...more.
There is no perfect software. At least I have never seen it. Bugs and minor feature changes are indications people are using your software....more.
After all the cards are written and estimated, it is time for the customers to pick the first iteration, for which they need a...more.
Recently I wrote the beginnings of a blackjack game in Java, and I found myself making a common error. The Java gameplay mechanic uses...more.
The most widespread and common greeting in the American culture is the handshake. Handshakes are shared between anyone meeting for the first time, and...more.
I’m a bit overdue on blogging, so in lieu of the normally brilliant and insightful commentary on the state of…er something…I usually put here...more.
Show me a software craftsmen and I’ll show you someone who can program in any language if they had to. From time to time...more.
Once upon a time there live a young girl named Jill and her next door neighbor Jack. Perhaps you’ve heard of them. When Jack...more.
What is building software like? The common belief is that software is like engineering. Most people seem to think that building a software system...more.
It is unavoidable. Every story must go through these milestones of life in order. A story cannot be estimated if it has not been...more.