I’m not much for coding methodologies: XP, TDD, Agile Programming, whatever. As a developer, you either know what the hell you’re doing or you don’t.
It’s real simple. You approach a project by not over-selling what you say you’re going to deliver, and you deliver what you’re selling. The deliverables are documented before work proceeds in a simple yet sufficiently complete outline format that serves as the spec. You get paid to do the work you do, no more and no less, for an agreed-upon rate (never a fixed total amount for the project), and you deliver each and every item in the spec in as short a time as humanly possible.
As my client, you’ll get the documentation you need, but what you’re paying me for is the working software, not the documentation. Because I respect you and value our relationship, please feel free to email me (don’t call, its too intrusive and limits my productivity) any time day or night with any questions or change requests you might have, but if you ask me to do something stupid I’ll tell you that its stupid and I may not do it. But it’s your money.
Why do you want me to do the job for you? Basic reasons, I guess. Honesty, accountability, experience. Most of all, I think, because I’m what you’d call a “generalizing specialist” who has chops in all areas of the project. You don’t want a database specialist designing your UI for you, or a User Case Specialist designing your database schema. And anyone I work with is also going to be a generalizing specialist so we can understand all of the project artifacts and business rules, and are able to converse on all aspects of the project life cycle.
I wasn’t planning on writing the above, but after listening to this excellent podcast on Agile Programming by Scott Amber I discovered that I’ve been adhering to most basic Agile Programming principles without knowing it. I’m certain a lot of other developers do, too. At least I hope they do, because the more I learn about Agile, the more sense it makes in every way. So even if you’re an innate Agile Programmer from way back, you should still check out the IT Conversations podcast from the SDForum Distinguished Speaker Series. (Whoa! I just noticed that it was recorded 2003-03-27. Oh heck, it’s STILL worth listening to.) If you want a quick summary of what Agile Programming is all about, here’s the Agile Software manifesto at http://agilemanifesto.org/.