May 20, 2006 | John Rusk | 1 Comment Principled Negotiation also applies to defining your software development process. You can’t choose Agile just because you like it. You have to understand what your customers’ interests are, and you have to seek a process which meets their interests and yours. For instance: if the customer says they want a detailed Gantt chart, that’s a position. (It’s a position which is not very compatible with most agile processes). But their interest is in understanding the status of the project. A chart like this might meet their interest equally well, while simultaneously meeting your interest in agility. Customers also have a legitimate interest in protecting themselves from large cost increases and from large scope cuts. Many agile teams unnecessarily adopt an incompatible position. This is why its so important to understand that Agile is not just XP. You have a much wider toolbox to draw on than just the practices in Extreme Programming. Be prepared to draw on the whole toolbox, and your own creativity, to find the process that best suits your customer. And be prepared to not use certain tools on certain projects. For instance, this XP team (pdf) did not use pair programming; they replaced it with an alternative. As agile developers, we know that good software is about customer-valued features. So is good process.