Phil Cowans

Ultra-brief Bio

I work at Songkick.com Ltd. as CTO, where I'm responsible for overseeing the development process and managing the development team. We're primarily Ruby on Rails based, and practice TDD/BDD and agile/lean methods as much as possible.

Software Craftsmanship

Ultimately, software craftsmanship is about producing software which goes beyond the written specification, or the minimum required to keep QA happy, and excels in its performance in the real world. To achieve this developers need to anticipate and understand the needs of all who will be involved in the lifecycle of the product: not just end users but other developers, bug fixers and so on, and must aim to produce software which meets as many of those needs as possible. Specifically this includes (but is not limited to) writing software which is highly maintainable, and easily adapted as requirements change.

Practically, this invoves a deep understanding of software engineering practices well beyond knowledge of specific technologies and programming languages; developers must have experience of a wide variety of solutions and patterns and know how they have performed in real world applications. In order to spread ideas and best practices it seems essential that developers should participate actively in the wider community rather than focus solely on their own projects.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License