Картинка блога

Этой статьей, я можно сказать, начну цикл статей о которых думал написать еще в самом начале рождения этого блога. Так уж случилось, что тут так и не появилось ни одной строчки о том, как я организую разработку программного обеспечения. Всегда думал, что на этот философский вопрос есть много статей и книг, которых должно быть достаточно. Однако, этот аспект только добавляет интереса к этой теме. Ведь сколько людей, столько и мнений.

Конечно, можно отвергнуть философию и свободу самовыражения в этом вопросе.  Сравнивать программирование с другими — отработанными методами индустрии, например строительством или кино-индустрией. В последней, сейчас тоже присутствуют определенные «паттерны», по которым должен писать редактор. Сделано это прежде всего для того, чтобы, такой незаменимый с первого взгляда болтик можно было, все-же «держать в узде». Но, даже с соблюдением определенных рамок разворачивания сюжета, остается большое поле для собственных мыслей. А решение уже за человеком, писать сухой текст — набранный из кусков старых материалов, или постоянно совершенствоваться, и оставаться в вечном поиске совершенства.

Но хватит лирики. Попробую начать.

Для тех, кто еще не знает, я обычный ITшник, влюбленный в то что я делаю на протяжении уже восьми лет. За это время, проработав в конторах разного рода, я получил определенное представление о том, что и как происходит в этом бизнесе. В качестве кого я только не работал:

  • Ремонт и настройка компьютеров для обычных пользователей, и позже для дизайнеров конторы.
  • Обезьянкой, генерирующей код, конвертирующей что-либо во что-нибудь другое. А также по-фреймовая вставка картинок (матерые флешены меня поймут).
  • Разработчиком SAP, SOA, CRM и всей другой лапши, вылетавшей от архитекторов на бизнес.
  • Автоматизацией всевозможных процессов в Интеренте.
  • Тестированием всего этого «на-код-енного» добра.
  • Сбором требований, анализом и написанием спецификации.
  • Проектированием достаточно больших приложений
  • Как-то раз, даже специалистом по пользовательскому интерфейсу.
  • Да и много еще кем…

Накопленные знания неизбежно накладывают отпечаток на то, что и как я делаю сейчас и буду делать в будущем. Становится меньше ошибок на стадии проектирования (а в собственных проектах, еще решения целесообразности начала реализации той или иной идеи), которые определялись во время анализа после разработки.

Однако, IT это очень шустрый кролик, ослабив хватку, можно отстать на столько, что необходимость наращивания знаний дойдет до критичной отметки между ленью. Чтобы этого не произошло, программисту (как юристу) крайне необходимо много читать (или даже быть фанатом одной области или языка программирования).Читать, чаще всего, приходится не книги (в них описаны основы — а значит полезны они только в начале изучения чего-то нового), а различные описания к релизам, спецификации, Best-practice на языка первоисточника. Сделать что-то новое не использовав при этом Google стало просто невозможно (конечно, если у вас нет вечности в качестве свободного времени). Поиск решения в современно программировании занимает чуть-ли не половину самой разработки (в принципе, тоже самое происходит и на этапе проектирования — но, тогда ищется конкурент или ядро для реализации).

Обучаясь в колледже я не мог поверить, что 80% полученных знаний к текущему моменту устареют или так и останутся невостребованными (это правда, проверенная на себе!).  Как нельзя лучше об этом рассказывает отшумевший год назад, видео ролик «Знаете ли Вы, что»

Метки:, ,