amarao (amarao_san) wrote,
amarao
amarao_san

Лиричное о программировании (2)

Меня отвлекли, я не дописал.

Итак, о чём речь?

1. В создании ПО единственной созидательной силой является программист.
2. Программист, работающий в существующем проекте может больше вредить, чем помогать. Причём не осознанно (например, добавив код, который не проверяет пермишшены, или ещё что-то подобное).
3. В процессе создания может получаться практически что угодно, вовсе не всегда соответствующее задумке проекта (и вовсе не потому, что программист нелогичен, хехе).

Все существующие методологии, кроме "обложиться тестами" (об этом чуть ниже) стремятся к тому, чтобы каждая строчка кода значила как можно больше для программиста. code review заставляет стараться писать "чисто", а быть может, даже и перечитывать написанное до коммита. Методологии планирования запрещают реализовывать "что попало" вместо нужного, ограничивая то, что программист может сделать.

Концепция "технического долга" предполагает, что программист не будет тратить "неурочное" время на вылизывание и без того работающего куска кода, и, даже приступив к реализации технического долга, будет делать ту часть, которую хотел сделать, а не вылиывать код "вообще".

Все скрамы, митинги, запрет на коммит в мастер, ведение issue, запрет на merge в master без issue и т.д. ставят своей целью усложнить появление кода в мастере.

Цель - контролируемое воздействие на существующий код. Ибо неконтролируемое приводит к массе неприятных последствий, причём иногда весьма неожиданного свойства (например, дедлоки из-за ожидания результатов работы другого программиста).

Любая методология должна обеспечивать двустороннюю связь "цели проекта" и каждого из программистов. "Цель проекта" взята в кавычки, потому что как субъекта действия её не существует, зато есть её представители - product owner, коллектив программистов (то есть множество мнений о цели проекта и том, насколько данное решение ей соответствует), начальник, архитектор.

Двустороннесть связи подразумевает, что каждый участник может влиять на оценку ситуации и через неё на дальнейшее планирование. Причём это может быть весьма пассивное влияние (тут чёрт ногу сломит, мне нужно много времени, чтобы разобраться), и, разумеется, подразумевает коррекцию действий программистов (см начало).

Причём потеря этой связи (например, перевод проекта в режим "поставили задачу" - "отчитались о выполнении") приводит к тому, что представители "цели проекта" и конкретный программист могут иметь совершенно разное видение проблемы. Это может быть ошибка интерпретации, а может быть и реальная проблема, которая приведёт к нарастающему кому проблем по мере игнорирования её.

Всё это касается, разумеется, проектов, в которых несколько участвующих лиц. Если речь идёт про одинокого программиста, пишущего для себя (или, даже, правящего axapt'у или конфигурацию 1С для директора торговой конторы), то все эти методологии - игра в шизофрению (оживлённая дискуссия левого и правого полушарий).
Tags: scrum
Subscribe

  • xrandr: cannot find crtc for output DP1

    Today I was able to fix issue with two-monitor configuration for my thinkpad x220 (i915). configuration: two monitors are connected to VGA and…

  • ну всё, пиздец леново

    Потребовалось довольно много лет, чтобы просрать наследие butterfly keyboard IBM'а.…

  • teh drama!

    Довёз я свой монитор. И что вы думаете? Вместо обещанных 2560х1440 я (через DP->DVI переходник) имею на своём x220: HDMI1 connected 1920x1200+0+0…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments

  • xrandr: cannot find crtc for output DP1

    Today I was able to fix issue with two-monitor configuration for my thinkpad x220 (i915). configuration: two monitors are connected to VGA and…

  • ну всё, пиздец леново

    Потребовалось довольно много лет, чтобы просрать наследие butterfly keyboard IBM'а.…

  • teh drama!

    Довёз я свой монитор. И что вы думаете? Вместо обещанных 2560х1440 я (через DP->DVI переходник) имею на своём x220: HDMI1 connected 1920x1200+0+0…