📜 ⬆️ ⬇️

The reason for the misunderstanding between us and the misuse of technology. Based on the article "Five Worlds" (software)



Almost never in all the literature devoted to programming and software development, something important is not mentioned, which is why 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 emerged: Mobile applications and Clouds, but the salt of the article has remained unchanged.

The same technology in different conditions will give different effectiveness.
')
When we discuss the experience of applying 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 potatoes in our World. The technology will use the same “landing in the ground”, and the results will be different because the influence of factors / variables is different for each of the Worlds. This seems obvious, but the facts of life suggest the opposite.

This is mark


Context Ignore Facts


Fact # 1 about Consultants


Every year we underwent an audit of the maturity of development processes using the CMMI model, and from the guys of consultants we often had to listen to what was “extra” and what we “needed” to do to make it better. In this case, the guys do not rely on the context, but on a list of practices that can be generally used to increase the “power” of the development processes.
Guys, you have a long release release cycle, one of the reasons is that you write TK before starting development. Issue the system documentation either in the process or after the completion of the work; this will shorten the release period by two weeks.

Looks like a sensible suggestion. Now we impose a context.

Corporate IP digests transactions at 60 billion rubles a year, 170 million rubles pass through it per day. The system employs over 2,000 people. Similar to our business is the Moscow Exchange and the trading operations it supports.

The peculiarity of our KIS 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 of 170 million rubles needs to be done and to catch up with “idle”.
In the stock, currency and derivatives markets of the Moscow Stock Exchange, an abnormal situation ... Last time the exchange suspended trading on September 1, but this affected only the “Main Market” section. This failure was the fourth in the last four months. - Lenta.ru

Now the context makes it possible to compare which is better:
or

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

And, in conceptual terms, start moving toward pulling out each functional unit from an ICD into an independent application, making the ICC a platform for them. This will allow you to simultaneously make at least 10 releases by the number of applications.

It's mars


Fact # 2 about Management


Sometimes you hear from the new high leaders such a message:
Guys, in my place the processes were arranged like this, there were no problems, so we will move on to them.

There is not here ... Do not rush to speak the captain of the obvious 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 in “strangers”, in the coordinate system “your | stranger. "

Wait for the leader of the specific actions and already face them with reality.
Over 6 years of work in the company, the Head of the Project Office has changed three times, once together with the entire Office team.

I’m saddened by indiscriminately trying to pull all projects to create, implement and develop 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 corporate software implementation projects.
  • RUP and MSF as a methodology for creating large IT solutions.
  • Agile: Scrum as a methodology for creating "small" forms and the development of existing ones.

And each of the software worlds makes their own adjustments.

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

Mark is planting potatoes


Fact â„–3 about Habravchan


Slips this in discussions on Habré. From the recent "On slaves, heroes and slave heroes"
I saw “cattle” in your classification, and did not read further. If there is such a concept in your analysis of people, it 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 did not understand the context of the use of the “term”, but determined that the Author lacked an understanding of people and the world.

Following is a meaningful comment from another Reader:
The author seems to have chosen the term badly. I did not immediately understand this term, too specific meanings are invested in it, including offensive ones.
On the other hand, it may be difficult to find a more accurate word of importance “people performing hard work and occupying low social status, spiritually undeveloped, wordlessly submissive people submitting to someone else’s will and allowing themselves to be exploited”.

This is Mars Babe = fak up


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


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

  • that in the described solution a lot of excess;
  • what do you know how to do better

It may be so, but definitely not in a hurry to declare it right that it is better.
You can run into the fact that the community in a tough form will indicate that we are discussing the "soft" here, and you about the "hot."

It is worth starting with sobering yourself and asking yourself 4 questions:
Sobering up from the passion of thoughts arising from the understanding of the technical details and nuances.

  1. From what World of software knowledge and experience presented in the article?
  2. Why and why did the author do this?
  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?

Perhaps, not everything will be able to be answered by yourself and the Author’s help will be needed in answering them. By asking clarifying questions to the Author, you will also help him better understand what he has done.
And after that, plunging into the context, try on your own variants for the task and the solutions made.

Have a good "potato harvest" in your World and informative 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 film Martian .

More examples


  1. You are not google

Source: https://habr.com/ru/post/315450/


All Articles