Найти тему
programmer's notes (python and more)

Психология программиста и философия программирования. Из цикла "Философия программирования"

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

А это подборки моих материалов на канале

Психология программиста и философия программирования

ОРВИ и сегодня не позволяет мне записать видео. Так что сегодня опять текст. Но такой, философско-программистский. В науке о разработке программного обеспечения есть такая тема: жизненный цикл программного обеспечения. Жизненный цикл это период времени, начиная с момента принятия решения о разработки программного обеспечения (ПО) и заканчивая, когда программа перестаёт эксплуатироваться.

В этой связи расскажу байку из программистской жизни. Одного моего товарища, с которым когда-то очень давно занимались некоторыми программными проектами, в одной организации попросили для бухгалтерии написать программу. Простую кстати программу: простой ввод и распечатка каких-то бланков. Но в то время (конец 80-х) такими программами баловались многие. Он написал, передал и забыл про программу. Спустя лет 15 он оказался в той-же организации. И каково было его изумление, когда он обнаружил, что его программу по-прежнему использовали. На компьютерах уже стояла Windows, но его программа исправно печатала бланки. Удивительный пример долгожительства очень непритязательной программы. За это время появлялись мощные программы, разработанные крупными корпорациями. Появлялись, а потом умирали. А эта простенькая программа написанная на Паскале продолжала жить.

Ну вернусь к жизненному циклу ПО. Есть ещё такой термин, как модель жизненного цикла. Если по-простому, то модель это некий образ того, что вы собираетесь создавать, схема, описывающая будущий объект. Если говорить о жизненном цикле ПО, то мы с помощью модели описываем основные этапы жизненного цикла и как эти этапы следуют друг за другом.

Есть две базовые модели жизненного цикла программного обеспечения. Реальные жизненные циклы могут быть некоторым их симбиозом. Называется одна модель моделью водопада, а вторая спиральной моделью. Они представлены рисунками ниже. Первые три стадии связаны непосредственно с разработкой программы. Последняя стадия охватывает внедрение и эксплуатацию.

Жизненный цикл "водопад"
Жизненный цикл "водопад"

Жизненный цикл "спираль"
Жизненный цикл "спираль"

Особенность жизненного цикла "водопад". Полное планирование каждой стадии жизненного цикла. Каждый этап начинается только полном выполнении предыдущего. Жизненный цикл "спираль" основывается на несколько ином подходе. На один виток и отдельные части этого витка отводится конкретное время. Такой подход предполагает, что на следующих витках спирали программное обеспечение будет дорабатываться. Другими слова с каждым витком программное обеспечение доводится до определённого качественного уровня.

Я, конечно, очень кратко описал суть моделей жизненного цикла ПО. Цель моя несколько иная. Я хочу отметить, что эти модели жизненного цикла отражают два психологических типа программиста или, вообще, человека. Хотя я в первую очередь пишу о программистах, пишущих код. Один психологический тип предполагает очень тщательное предварительное планирование своей будущей разработки. Второй психологический тип стремится как можно раньше получить какую-то рабочую версию. И далее дорабатывать и совершенствовать её. Лично я отношу себя как раз ко второму случаю. Это касается и программ и вообще текстов.

Я уверен, что нельзя навязывать разработчику иной стиль разработки, чем стиль, заложенный в его натуре. Можно лишь подбирать разработчиков по их психологическому стилю вложенному в них Господом Богом.

Канал о программировании на Python

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Все ваши программы давно уже умерли, а вы ещё живы
Все ваши программы давно уже умерли, а вы ещё живы