The reason for the misunderstanding between us and the misuse of technology. Based on the article “Five Worlds” (ON)



    Almost never in all literature on programming and software development, something important is mentioned, because of which we sometimes misunderstand each other ... Joel Spolsky

    Joel's article on the Five Worlds (software) was published in 2002. Over the past 14 years, new worlds have formed: Mobile applications and Clouds, but the salt of the article has remained unchanged.

    The same technology in different conditions will give different efficiencies.

    When we discuss the experience of using a technology, we often do not pay attention to the context of its application, because of this there is a misunderstanding, misinterpretation and application of technology.
     
    Imagine we are on Earth, our friend Mark on Mars. We have the same goal, to grow potato crops in our World. We will use the same technology "landing in the ground", and the results will be different since the influence of factors / variables is different for each of the Worlds. This seems obvious, but facts from life suggest otherwise.

    This is Mark


    Context-ignoring facts


    Fact # 1 about Consultants


    Every year we passed an audit of the maturity of the development processes according to the CMMI model and the guys from the consultants had to listen more than once to what was “extra” and what “we needed” to do to make it better. At the same time, the guys rely not on context, but on a list of practices that can be generally used to increase the “power” of development processes.
    Guys, you have a long release release cycle, one of the reasons is that you write TK before the development begins. Make documentation for the system either in the process or after completion of work, this will reduce the release period by two weeks.

    It looks like a sensible offer. Now let's put in a context.
     
    Corporate IP digests operations at 60 billion rubles per year, 170 million rubles pass through it per day. The system employs more than 2,000 people. Similar to our business is the Moscow Exchange and the trading operations it supports.

    The peculiarity of our CIS is that it is monolithic. If one of the functional blocks inside is updated, errors in it can disable the entire system or workflow. For the company, this means financial losses and subsequent overloads in the company’s work, since the missed work worth 170 million rubles needs to be done and catch up with “simple”.
    An abnormal situation exists on the stock, currency and derivatives markets of the Moscow Exchange ... The last time the exchange suspended trading on September 1, but this only affected the Main Market section. This failure was the fourth in four months. - Lenta.ru

    Now the context makes it possible to compare which is better:
    • Win 2 weeks out of a 3-month release cycle, but significantly increase the risk of downtime.
    or
    • for the time being, leave TK in the place where it is, minimizing risks, and look for other options for reducing the duration of the release cycle.

    In our case, there were 3 releases in parallel and a new one was released every month. For us, the question was not to shorten the release cycle, but whether it was worth further increasing the frequency of release of releases: releasing not once a month, but once every two weeks.

    And in conceptual terms, to begin moving towards pulling each functional unit out of the CIS into an independent application, making CIS the platform for them. This will allow you to do at least 10 releases at the same time by the number of applications.

    This is mars


    Fact No. 2 about the Guide


    Sometimes it is heard from new high leaders such a message:
    Guys, in my former place the processes were arranged like this, there were no problems, so we will switch to them.

    There it is not Here ... Do not rush to act as captain of evidence and try to open his eyes to it. My personal statistics show that you will be regarded as refusing to cooperate and will be recorded as “strangers”, in the coordinate system “your | stranger. "

    Wait for the leader of specific actions and already face them with reality.
    Over the 6 years of work in the company, the Head of the Project Office changed three times, once together with the entire Office team.
     
    I am saddened by the attempts to indiscriminately pull all the projects for the creation, implementation and development of software to meet the requirements of PMBoK or become fashionable Scrum or Kanban. There are methodologies tailored for IT projects, which are divided into methodologies of creation, implementation and development.

    • SureStep and ASAP for enterprise software implementation projects.
    • RUP and MSF as a methodology for creating large IT solutions.
    • Agile: Scrum as a methodology for creating “small” forms and developing existing ones.

    And each of the Software Worlds makes its own adjustments to them. 

    Exit: Use the desire and energy of the leader to implement improvements, starting with those areas where they are needed and / or where he wants to give a positive effect.

    Mark is planting potatoes


    Fact No. 3 about Khabravchan


    It slips in the discussions on the hub From the recent “On Slaves, Heroes, and Hero Slaves”
    I saw "cattle" in your classification, and did not begin to read further. If such a concept is present in your analysis of people, this means that you still do not have enough understanding of people and the world to draw any conclusions.

    The man did not read the article and in the context of the use of the "term" did not understand, but determined that the author lacks understanding of people and the world.

    Following is a meaningful comment from another Reader:
    The author seems to have unsuccessfully chosen the term. I also did not immediately understand this term, they put too specific meanings into it, including offensive ones.
    On the other hand, to find a more accurate word meaning “people who do hard work and have a low social position, are spiritually undeveloped, wordlessly submissive people who obey someone else’s will and allow themselves to be exploited” can be difficult.

    This is Mars Baby = Fak Up


    A way to determine if the context has not been taken into account and restore it


    The right way to determine that the context is not taken into account - The author of the article did not explicitly indicate it, but it seems:

    • that the described solution has a lot of unnecessary;
    • that you know a way to do better.

    It may be so, but definitely not in a hurry to declare it correct that it is better.
    You can run into the fact that the community in a tough form will indicate that we are discussing “soft” here, and you are talking about “hot”.
     
    It’s worth starting with sobering yourself and asking yourself 4 questions:
    Sobering up from a hobby for thoughts arising from an understanding of technical details and nuances.

    1. From what World of Software knowledge and experience set forth in the article?
    2. Why and why did the Author do just that?
    3. What alternatives did the author consider, between what did he choose?
    4. What are the input parameters for the problem solved by the author?

    It may not be possible to answer everything yourself and the author will need help in answering them. By asking clarifying questions to the Author, you will also help him better understand what He Created.
    And after that, immersed in the context, try on their options for the task and the solutions made.
     
    All the good “potato harvest” in your World and substantial discussions in the comments.



    " Joel's article in Russian
    " Joel's article in English

    Who is Joel Spolsky? - Wiki article in Russian and English .
    Illustrations from the movie Martian .

    More examples


    1. You are not google

    Also popular now: