YAT: Convention over Configuration (and Documentation)
Are you seeking for more efficiency in the software development process? is your target also to do more with less. Here's a YAT (Yet Another Technique), to reduce cost dumped in the process.Â
Let me take you in a short introductory trip before:
Recently I've started to learn German language. The basic concept of conjugation of the verbs is simple. Let's take the verb spielen (playing) as an example:
Du spielst (You're playing)
Er/sie/es spielt (He/She is playing)
So, you can draw the simple conclusion - you take the root of the verb (spiel) and you follow some sample rules, like: in 1st person you add the -e as termination, in the 2d person you need the -st termination, while in 3rd person you will add the -t termination.
Like this, you could continue with another verb: arbeiten (working). So:
Simple enough? see, we are one step closer to speak German :) But wait a minute... let's use our new knowledge and take the verb "dĂĽrfen" (may - to be free to do something):
Ich dürfe, Du dürfst, Er/sie/es dürft?!? - the answer is: no. Unfortunately this is an irregular verb, so the rule listed above doesn't apply here. Here how you are conjugating:
:( - nothing to do with the knowledge we collected before. So what rule applies to the irregular verbs... none: that's why they're called irregular (there's no common convention what to do with them).Â
So what I can do with the conjugation of irregular verbs as a beginner of German language? Nothing more, than learn all of them by hard.
So my learning process will be extended and longer that I expected? The answer is yes!
The same applies for software system which is reinventing its own rules for each and every module... one can not learn a rule and apply it in multiple places (multiple modules of the system), but needs to learn the specific aspects of all parts.
I'll give you a few open questions:
how much additional unit testing you need for non-standard components?
how much more you need to do documentation for non-standard components?
what is the additional operational work (configuration, training and issue handling) because of no convention and standardization is applied?