|
|
|
|
|
|
| In response to Welcome published by Admin on 2005-12-06 21:11:09: |
Modality shifts aid developer-manager relations |
by Guido on 2006-04-06 21:23:32 |
Developers and managers who talk to each other need to be aware of an important principle of communication that will ultimately solve a lot of problems. I call it the modality shift. In his craft, a developer has to make numerous assumptions about the system that he is creating. If he begins to let those assumptions be called into question arbitrarily, then the entire project becomes a chaotic, meaningless void. On the other hand, managers have to make decisions based on knowledge of the project, and if they interpret a developer's word as empirical fact without seeing through the test phase, then their business will get sucked into a bottomless pit of untold folly.
Here is a simple set of rules to apply when interpreting developer's explanations of their fledgling systems:
"will" means "should",
"should" means "might",
"might" means "won't",
and "won't" means "will".
Example:
Manager: What happens if I provide a start date later than the end date?
Developer: It will return no results.
Manager: OK, I'll go write that up for the sales folks right now.
How sure can the developer really be about this? If he is allowed time to go and test it, then his answer can be considered authoritative. But if asking candidly, the manager should be sure to shift the modality. In other words, what the manager should interpret is, "It should return no results," adding an implication like, "if we are to believe the date arithmetic module documentation to be inerrant", or "as long as the dates are something like March 1, 2006 to March 31, 2005 or some understandable error like that, and not something wildly out of range that only frenzied keyboard mashing could produce and that our date arithmetic module would be forced to interpret as March 1, -2039 to March 31, 2005, in which case you would get several million results, but I can't foresee that because I need to test it first along with the many other requisite test cases that I'm only now being alotted time to consider... sir."
If a developer deigns to use the word "might," the manager should realize that he has stumbled upon a facet of the project which has not receive due attention in design, and must consider anything the developer says to be completely unwarranted. This is not meant to disparage the developer's expertise or awareness of the project, but rather to protect his consciousness from the unfathomable mysteries of multiple complex components' multivariate interactions.
If a developer is permitted to meditate upon such mysteries, the project will begin to regress into infinite alpha. This is characterized by the version number retreating from the decimal point by an increasing number of zeroes. They won't want to advance beyond version 0.000000001a until they have reviewed the code, benchmarks, and all documentation of the libraries, operating systems, and compilers with which the application is built.
REPLIES add
None.