Estimates are a fundamental part of our business. We rely on them to schedule our workflow and to communicate honestly and openly with clients. We...more.
When I start a new feature I need to learn what the customer wants, what the code currently does, and how to write new code...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.
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.
Software apprenticeship programs are popping up all over the place in software. They are a response to the common notion that contemporary academia is...more.
This blog is for non-technical people looking to purchase custom software. Purchasing software is very difficult and very expensive. It is a decision that...more.
It is unrealistic to think of even the most master craftsmen as isolated geniuses. Craftsmen do not exist in bubbles, and their interests vary...more.
Time and materials vs. fixed bid is the classic duo of billing models in software services business. Time and materials puts all the pressure...more.
In the beginning of using rails it was amazing at how fast everything was compared to my previous java web experiences. I could finally...more.
This February 13th will mark a decade since the creation and signing of the original Agile Manifesto. The lean development thought leaders who came...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.
8th Light has always had an open door policy towards developers. When anyone has asked to come hang out at 8th Light offices, we...more.
Michael Feathers recently wrote about boutique software shops. He drew a parallel between master chefs and software shops and made a few...more.
Good design sense is a skill that comes only from many years of coding experience. Sometimes it can be very difficult to make those...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.
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.
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.
Welcome to a Limelight production. I am going to go through a step by step introduction to limelight development using a tic tac toe...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.
8th Light has an apprenticeship program whereby an 8th Light craftsman will mentor an individual for three months.
During that time, the...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.
We had a new developer join our project recently, and he needed his computer to be setup so he could run the application....more.
When I first started writing code in Ruby, it was a breath of fresh air after writing C# code for a year. Ruby had...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.
Often times while writing meta programming code, I am using the
eval function and doing manipulation on method/class/variable names.
Today I needed...more.
I am a better pair than solo developer. For me, software is a collaborative art from the start of a project to the end....more.
This is intended to be a tutorial to get you started using FitNesse with ruby on Rails. There is some explanation needed about FitNesse,...more.
In rails, migrations are generated in such a way that they create a numbered migration with an up and a down schema direction. This...more.
In Paul Graham’s Book, Hackers and Painters, he talks about patterns and Human Compilers. I started to think about how some traditional Object-Oriented patterns...more.
The self-shunt method of testing has been conflicting for me. Self-shunt is a good testing pattern to test observers/views. A colleague of mine has...more.
Pre–factoring is when you see a piece of code which the story you are working on which has a re–factorings which would make your...more.
I’ve noticed using more mocks lately. Instead of using them sparingly for controlling services which are not instrumental to what I am testing, I’m...more.
Sometimes I sit down to write a test on something I haven’t worked on before or don’t know intimately, and I just can’t write...more.