Ivan Mitev In The Software Trenches

Technology weblog on .NET development and other things that make the world go round

April 11, 2005

Pragmatic Programmers Interviews ar Artima.com

I can't resist to point out a series of great discussion on software development by Pragmatic Programmers Andy Hunt and Dave Thomas:
Part I. Don't Live with Broken Windows -- the importance of software craftsmanship and the importance of staying on top of the small problems in your projects.
Part II. Orthogonality and the DRY Principle -- the importance of keeping your system orthogonal, and the real meaning the DRY, or Don't Repeat Yourself, principle.
Part III. Good Enough Software -- the myth of bug-free software, the importance of specifying level of quality as a system requirement, and the need for every team member to inject quality throughout the development cycle.
Part IV. Abstraction and Detail -- an approach to design in which details are pulled out of the code and stored as metadata.
Part V. Building Adaptable Systems -- reversible design decisions, the cost of change curve, going beyond the requirements, and making systems configurable.
Part VI. Programming Close to the Domain -- the benefit of programming in a language close to the business domain.
Part VII. Programming is Gardening, not Engineering -- a gardening metaphor for software development, the reasons coding is not mechanical, and the stratification of development jobs.
Part VIII. Tracer Bullets and Prototypes -- the importance of getting feedback during development by firing tracer bullets and building prototypes.
Part IX. Programming Defensively -- the importance of programming defensively against your own and other's mistakes, of crashing near the cause, and understanding the proper use assertions.
Part X. Plain Text and XML -- the value of storing persistent data in plain text and the ways they feel XML is being misused.

I can't say which one of those I liked best. Each of the interviews is a great reading. And if all of the stuff those guys produce is so good, I would seriously consider taking a look at some of their books, like The Pragmatic Programmer: From Journeyman to Master and Pragmatic Unit Testing in C# with NUnit.