Introduction to Software Craftsmanship

roman-clock-new

In my observations, I’ve noticed two different kinds of professional developers: Those for whom software is a job, a thing they do between nine and five, a skill they know how to perform, and that they perform in order to get paid.

The other group doesn’t seem to think of software development as a job at all, more of a calling, an obsession, a passion, a drive. Most of the time they’re doing software development all the time – when they’re not actually programming they’re reading about it, thinking about it, learning about it.

A number of individuals in this second group not only have a passion, but a drive to excellence, and a high level of dedication and professionalism. I believe these individuals are software craftsmen (and craftswomen, as quite a few of them were not men at all, but I’ll stick with the one term to include both). Continue reading

Matrix Method of Decision Analysis

modularity

The matrix method can help take subjective opinions and turn them into objective criteria when choosing among several competing alternatives. Continue reading

The Origin of Fire: Monitoring and CQRS

fire

How Monitoring and CQRS helped my team detect a problem before anyone else noticed and fix it before anyone else was bothered. Continue reading

Be A Horrible Warning: The Ergonomics Factor

After neglecting many ergonomics factors in my own development career, I get to serve as a horrible warning on the effects of this neglect. In this post, I describe a bit of what I’ve done wrong, and how you might want to avoid the pitfalls yourself. Continue reading

How it’s Made: Matrix Decider

haba-logic-building-blocks-750

I’ve recently had an opportunity to build a small project from start to finish, and I thought it would be interesting to document the whole process, from laying the plans to initial release. Also, as much of my work is commercial development, my opportunity to document and share the whole process is limited. In this case, Matrix Decider is open source, so I can tell all :) Continue reading

Emacs for Scala

ca5551a7d9278e3c30faff5dd8edc883

In followup to my previous post, I’ve published a project with my full .emacs.d directory, as well as a “cheat sheet” of Key bindings, for anyone who is having a go at using Ensime and Emacs for Scala development. There are still many things I… Continue reading