during: 2002


API design · academia · agile · agile adoption · analysis patterns · application architecture · application integration · bad things · big data · board games · build scripting · certification · clean code · collaboration · computer history · conference panels · conferences · continuous delivery · database · design · dictionary · distributed computing magazine · diversions · diversity · documentation · domain driven design · domain specific language · domestic · encapsulation · enterprise architecture · estimation · event architectures · evolutionary design · expositional architectures · extreme programming · gadgets · ieeeSoftware · infodecks · internet culture · interviews · language feature · language workbench · lean · legacy rehab · legal · metrics · microservices · microsoft · mobile · model-view-controller · noSQL · object collaboration design · parser generators · photography · podcast · popular · presentations · privacy · process theory · productivity · programming platforms · project planning · projects · recruiting · refactoring · refactoring boundary · requirements analysis · retrospective · ruby · scrum · security · software craftsmanship · talk videos · team environment · team organization · technical debt · technical leadership · test categories · testing · thoughtworks · tools · travel · uml · version control · web development · web services · website · writing

2019 · 2018 · 2017 · 2016 · 2015 · 2014 · 2013 · 2012 · 2011 · 2010 · 2009 · 2008 · 2007 · 2006 · 2005 · 2004 · 2003 · 2002 · 2001 · 2000 · 1999 · 1998 · 1997 · 1996

All Content

Interview with Artima.com

I was interviewed by Bill Venners for his artima.com web site. In the interview I touch upon refactoring, evolutionary design, flexibility, and test driven development. Bill even manages to make me sound coherent.

9 December 2002

How .NET's Custom Attributes Affect Design

by James Newkirk and Alexei Vorontsov

Jim and Alexei took a leading role in developing a new version of NUnit. From this they reflected on how design is affected by the new .NET language feature of attributes.

September 2002


Enterprise Transforming Projects That Don't Kill the Enterprise

This article is based on a talk I gave at LOMA, an insurance industry conference, in 2001. In it I examine a few software development projects that ThoughtWorks has done which are, to some degree "enterprise transforming". The talk (and paper) are aimed at a non-technical audience. From the projects I draw out some common lessons learned. In essence these are: Deliver Frequently, Expect Surprises, Get High Level Executive Support, Treat Business and Software Development as Partners, Choose Technology for the Future, People are The Critical Success Factor, and Keep Learning. A version of this article was recently published in Resource magazine.

2 July 2002


Yet Another Optimization Article

It always surprises me that many well-established principles about performance optimization aren't very well known. This article is yet another attempt to cover these.

May 2002


Modeling with a Sense of Purpose

John Daniels

The kinds of model you draw depends on the purpose that you want to put them to. John describes a useful distinction between conceptual, specification, and implementation models.

January 2002


Using Metadata

You can use metadata based approaches to remove the pain from tedious data oriented tasks.

November 2002


The XP 2002 Conference

At the end of May 2002, the XP community once again descended on the Mediterranean island of Sardinia. In this article I look at the plenary speeches from Ken Schwaber, David Parnas, Enrico Zaninotto, Bill Wake, and the Standish Group's Jim Johnson. They lead me into some thoughts on the essence of agile development, the role of mathematical specifications, the complexity of irreversibility, metaphor, and the best way to drastically cut software costs.

2 July 2002


Continuous Integration with Visual C++ and COM

by William E. Caputo and Oren Miller

The Continuous Integration principles are applicable in many different development environments. While the principles remain largely unchanged from project to project, the implementation of this practice can vary considerably. Variables such as language, platform, team size & team location provide unique implementation challenges. Here we will outline how we've implemented CI in a COM/Windows environment for a project developing primarily in Visual C++.

July 2002

Public versus Published Interfaces

Many modern languages make a distinction between public and private features in a module. A distinction that doesn't get made so often is between public and published features: and that may be a more important distinction.

March 2002