Writing Detective Stories As the Anti-Pattern
A good software developer, in addition to studying correct approaches to the design and implementation of a program product, should also spend some time on the most common anti-patterns just to be sure that he avoids them in his practice. Making up intricate stories, although it is an important property of the modern cinema and literature, is not the skill which a developer should be encouraged for.
Writing detective stories is fundamentally different from writing works of any other genre. Obviously, it differs by the fact that the murderer must remain a mystery until the very end of the story (and yes, "Columbo" is an exception). Reading such stories, we sometimes admire the forethought of the plot and the foresight of the author. But the fact is that writers are cheaters, they came up with a very artful trick to get the effect of the entanglement and seem like such intricate schemers and tactics geniuses.
Everything is simple - until the last decisive moment authors themselves do not know who will be the intruder. The plot is written in such a way that each of the characters has alibis and motives, even a gardener. And, having finished the work until the cherished moment, when the protagonist is about to understand who is actually a murderer, writers stop and think deeply. Then it's very time to decide whom this role could belong to and why he really did this.
Of course, each participant by the moment may have too airtight alibi and his motives may be not sufficiently revealed. Still it would be nice to leave additional tips to the reader, so that the most inquisitive and attentive one could guess the right answer together with Poirot or Marple. And then writers slightly edit the story and or even rewrite some separate chapters. And as the result, Mr. Holmes reveals the cunning intentions of the criminal, and they seem to be too embarrassed to the reader to come up with them on his own. The killer looks genius, and with him, the author of the work seems to be a genius as well.
But we, of course, are not just about literature and detectives. The conclusion from this is quite simple. When you want intricacies and unobvious decisions, then writing an application should be similar to writing a detective. In other words, if you want to make the process confusing and unobvious, it's enough just not to think about the result during the whole work. Strictly speaking, the opposite is not entirely true. If you want transparency and evidence, then it is necessary, but it is not always enough just to have a goal. Except of the goal and preliminary planning, we require a lot of additional conditions and steps.
Riter development team