I was a bit angry about it at first, but even as I was looking through the emails I realized there was nothing to be done to go backward and change what happened (not without throwing good time after bad to paraphrase).
It really very quickly became about debriefing. That is, determining how to best adjust practices so that it would minimize time lost on this going forward. I usually include my own library grade functions and other elements, which I license on a per application basis, but always as a deliverable within the formal contract.
What I find very interesting about yours and Chip's suggestion is to do something up-front, early on in the relationship that insures I get paid for the design work. What might work here is some short, easy-to-follow contract (perhaps a page or two and combined with a mutual NDA) that could be faxed and signed quickly.
Not the entire specification agreement but just something that states there is value associated with the consulting work that must be paid if the resulting development contract is not awarded to me. This would have to be a very discreetly written agreement. Don't know if I've got that in me.
At the risk of appearing to practice one-upmanship (the purest form of American culture don't you think?) I have to say I love all
aspects of programming. Each facet of the practice has its own rewards and challenges, and its own unique form of flow. Variety is the spice of life!
I'll agree with XPers that coding
has the most intense form of flow. Probably because it requires so much time to get into and is the most mentally consuming. Coding was the first time I ever experience flow (as I'm sure is true for most programmers) and its the closest thing to an Out Of Body (OOB) experience you can get. It is such an altered and incredible state, that if I didn't already have a religion, I'd probably end up joining with you in the XP "movement". (
cheap shot I know)
is different than coding. It is a shallower form of flow but makes up for it by being the only form you can experience interactively with other humans. It is probably what people once really meant by brainstorming, but the term brainstorming has been utterly diluted by corporate boardroom lackeys. M3 tries to make up for this by insisting on pair programming, but this is the worst of both worlds IMO. It's like mashed potatoes without the bones; never allowing the complete depth that comes from lone coding, while insisting on maintaining the same bland working consistency all ... day ... long ...
on the other hand can be just as intense as coding and can also be nearly an OOB. It is different than the flow you enter when coding though. It is more forgiving, allowing you to disperse your thoughts more at the expense of some detailed grasp of individual items, while letting you mentally travel back and forth between high and low levels of abstraction. Hacking, is an integral part of design work, but like the worksheets on your tax forms, the stuff you deliver should never include hacked code (IMO, I know you disagree).
User and Developer Doc
was the last and most difficult aspect of programming for me to develop a taste for. I've always known it was an essential part of programming but did it grudgingly. I now find the joy in it. In many ways, if programming is a symphony then Docs are still the dissonance, but a symphony isn't a symphony without dissonance.
Got off on a tangent there. My apologies to the topic police
I'm starting to formulate some good rules and suggestions. Thank you for your help.
1. Basic, non-threatening, low-intensity-commitment, starter-contract for quick fax when a phoned-in relationship shows signs of jelling (Wass..., Andi and Chip).
2. Prospects who reject any responsibility for the cost of design are NOT good
prospects (from Rich and an XPer!).
3. Save IM's as well as emails and hard-copy correspondence (me).
4. The crux: Trust must be earned. Once some mutual actions have ensued the formalisms can be relaxed, but if you don't know someone... Well, you just don't know them (Andi, and all).
5. One attribute noticed in hindsight about Polly: She always wrote to ask me to get on the phone. Some are just more comfortable speaking voice (I imagine there are differences between genders here). Should I get red flags when someone is constantly asking to "talk"?
Have I missed any actionable items?
he-HE said . . . "actionable"
(there's a term Dogbert would be proud of).