Яков Сироткин (yakov_sirotkin) wrote,
Яков Сироткин
yakov_sirotkin

Методология дворника

Часто большие софтверные проекты характеризуют как «сложные». На самом деле действительно сложные задачи в промышленном программировании встречаются крайне редко, а настоящая проблема состоит в том, что проекты просто гниют. Можно выделить три основных причины загнивания:
  1. Усилия разработчиков слабо связаны с интересами заказчика. В подавляющем большинстве случаев заказчик слабо представляет себе, что же он хочет, а программисты предпочитают заниматься только своими проблемами.
  2. Используются технологии не адекватные решаемым задачам. Например, разработчики пытаются сделать свою библиотеку для применения в следующих проектах или заказчик приобрёл страшную универсальную софтину.
  3. Низкое качество кода.
Наивный подход вроде внедрения RUP или получения сертификата CMM предполагает недопущения гнилости путём создания стерильной атмосферы на производстве. Joel Test и eXtreme Programming описывают практики, которые действительно позволяют предотвращать появление проблем в реальных условиях, а если нужно — то решать их.

Лично мне нравится находить плохо пахнущий кода и исправлять его. Свою миссию на работе я вижу в том, чтобы бороться с гниением, как превентивными мерами, так и в явном виде. Такой подход имеет ряд трудностей:
  1. Заказчики не готовы к тщательному обсуждению проекта и не любят идиотских вопросов, особенно когда не могут на них ответить.
  2. Задачи решаются слишком быстро и возникает недозагрузка, особенно в конце проекта.
  3. У стабильной системы очень маленький объём работ по сопровождению.
  4. Люди с низкой квалификацией плохо приживаются в проекте.
  5. Хроническое отсутствие пафоса, что мешает производить хорошее впечатление на потенциального заказчика.
Но есть один большой плюс: успешно завершённые в срок проекты.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    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.
  • 39 comments