Bible design. Part two. Crutches, expulsion from paradise, Cain, Abel, and again from scratch

    image

    Here is the first torn deadline. Still a little bell big problems.
    Time passes, no one remembers about air strike, and along with a layer of dust on the ping-pong table, tension rises.
    The breakdown of the last coffee machine on the floor caused an emergency meeting, and there is only one person who can find a solution.

    With all your strength and discarding the beat, you begin your story.



    And the programmer saw that the crutch is good for preserving nerves, and that once is not scary


    Any team of programmers will sooner or later begin to deviate from the specification. And the more redundant the specification in relation to today's needs, the earlier this process will begin. Just imagine, you didn’t define an exception class, threw the nameless one, it was too lazy to go into the ORM documentation, and the complex request was written in plain text, and instead of false it returned null - the branch will work. It seems that there is nothing to worry about, in vain the architect was so dramatic.

    But these actions create uncertainty. Uncertainty increases entropy. Entropy increases complexity. There is nothing worse than software that works “somehow wrong”. And with increasing complexity, the likelihood that problems will be in the release increases.

    And you know that the worst is that none of you assholes will repent that he made a mistake, you will defend your code until the last, blaming the blame on everyone who is unlucky to be around.

    Therefore. From today, you are driven out of paradise.

    And with this I set the
    Programmers in agony to provide 100% coverage of the code with unit tests,
    And the team leaders, sparing no time and effort, conduct a review of each commit.

    There was Abel, he wrote models, and Cain designed the interfaces ... Cain rose on Abel ... The deadline was thwarted by both.


    You always find excuse for your idleness. Especially if you are waiting for someone to do something for you that is not in your competence. As a result, instead of maintaining the vector, team leaders are engaged in redistributing and rewriting tasks.

    I'm tired of writing in 3 different TK, and now there will be one TK. Please organize your working hours yourself. Timlids should be engaged in quality control of directions and the development of tools, and not throwing tasks.

    Therefore. From today, you are divided into groups in which there will be enough people to perform the full range of work that is required.

    If you are going to fill up the deadline, prepare explanatory notes. Those who cannot work in a team, we will fire.

    When people began to multiply on the earth and business processes were born ... And the architect saw that there were a great number of demands of people on the earth, and that all thoughts and thoughts of their hearts were changeable at all times


    Now most of the time is spent on developing additional modules specific to specific clients and supporting parts of the system that are not developing. In the pursuit of quick profit, we are losing strategic advantages. During the time that we developed the system, technology has gone ahead and we are on the verge of lag. Continuing to refine the system in the form in which it is now is a dead end branch of development.

    Therefore. Today we start from scratch. Welcome aboard the ark.




    PS: I was surprised how favorably the habrahabr accepted the first part . It inspired me to get my old laptop and find some more old essays there. Including a draft draft of the speech, which became the basis of this article. If you do not mind, we digress a little from the chronology, and the third part will be about Babylon. There, it’s about the second version of the system - we managed to sell the license of one German company, and she also invested a huge amount in us. But we still managed to fail :)

    Also popular now: