Ok, I’ll admit it – “Test Driven Software” is actually just me – Martin Chilvers.
I have an Honours degree in Computer Science from the University of Kent at Canterbury (2.1) and over twenty years of software development experience in both research and commercial institutions. In that time I have worked on a diverse range of projects including scientific applications, factory automation software, the first Python CORBA ORB (Fnorb), a Python implementation of the Reference Model for Open Distributed Processing (RM-ODP), web applications, and even some plain old business applications. Lately I have been using Python to build a cross platform, open source framework for extensible scientific applications called Envisage.
Working on Fnorb and Envisage, has given me first hand experience of all aspects of guiding open source projects. I have designed the architectures (including being a major contributor to the initial CORBA IDL-Python language mapping via Fnorb), written the code, produced user guides, and presented papers and tutorials at various international conferences. I have also managed mailing lists etc, and on the Fnorb project it was especially exciting to see the user community grow to the point that we would get hundreds of downloads on the first day of a new release. These projects have also taught me a lot about how to structure delivery schedules, and how to pragmatically manage features sets and quality levels in order to drive adoption by the wider community.
I have extensive object-oriented design and development exerience in a variety of languages (Python, Java, C++, ECMAScript) and as a professional software developer I take great care to produce robust, readable (and hence maintainable) code with clean and coherent APIs. I am constantly trying to improve my personal development process, and I am a strong advocate of many modern software engineering techniques such as test driven development (TDD), refactoring, and iterative development etc. In fact, the latest version of Envisage was developed entirely using TDD and so far has a defect list of length zero! Now, that’s not to say there are no bugs in there (I’m sure there are somewhere), it just says that I’m confident in the ability of the code to live on and move forward!
I have built user interfaces using Python/wxPython, Java/Swing, Motif, OpenLook etc and browser based interfaces using DHTML and servlet technologies, and while I have no formal Human-Computer Interaction (HCI) training, I believe I have a strong appreciation of the factors that have to be considered in order to produce applications that allow end-users to not only perform their required tasks, but to do so in such a way that they enjoy doing them.
My professional interests include software engineering processes and practise (especially tools and methodologies for discovering the ‘intent’ of programs), distributed systems, and programming languages.