I am an independent software development consultant based in Herefordshire. I specialise in web application development on the Java platform and have become a huge fan of agile software development. I believe there are two key ingredients to building great software and am starting to realise that neither of them are trivial.
- A group of skilled software developers
- A user-centered approach to building software
It seems obvious to me that the first of these conditions can be helped by the idea of software craftsmanship. I have started exploring the idea that software craftsmen should understand and champion the goals of their users.
To me, software craftsmanship is about the skills that allow us to write valuable software. These skills range from writing simple elegant code that is easy to understand and modify, to using automated tests that prove the validity of our code, to learning a common language that allows us to communicate with other software craftsmen, to understanding the goals of the people who will use our software.