Andrey Lapin: все записи

4

Из чего складывается работа профессионального программиста

Andrey Lapin
14 апреля 2011 года

Бывает такое, что клиент не понимает, почему за разработку необходимо так дорого платить. Иногда это бывает из-за технической некомпетентности, как описано здесь: http://wiki4tech.ru/Проблема_понимания_клиентом_сложности_проекта. Но последнее время как правило бывают технически подготовленные клиенты, имеющие специальное профильное образование, но не ставшие на путь разработки и занимающиеся менеджментом. В этом случае сталкиваемся с непониманием другого рода. Будучи студентом решая различные лабораторные работы создается впечатление о том, что программирование — это достаточно легкое занятие. Довольно сложные задачи могут решаться быстро и впечатлять нас.

Дело в том, что лабораторная работа в сравнении со зрелым продуктом — это картонный автомобиль в сравнении с настоящим автомобилем. Смотрите, это же работает, какая красивая картинка. Но откуда берутся дополнительные часы и дни на разработку? Попробую перечислить, что же нам вставляет палки в колеса.

  • Программа должна быть легко сопровождаема, необходимо писать красивый понятный код
  • Программа должна быть протестирована самим программистом (а не только тестировщиком)
  • В вузах как правило не преподают как эффективно проектировать интерфейс взаимодействия с пользователем. Интерфейс пользователя — это та неуловимая для многих вещь, которая заставляет писать дифирамбы программе, а иногда отбивает желание пользоваться.
  • Программирование — это не спринт, а марафонский бег. Нужно достаточно хорошо подумать, чтобы что-то сделать.
  • Иногда бывает, что время днями тратится на решение какой-то технической проблемы. При этом проблема не имеет какого-то понятного пользователю описания.
  • Когда программисты работают в команде, необходимо тратить время на взаимодействие внутри команды.
  • Любой проект с первого дня разработки начинает меняться и дополняться новыми требованиями. Если вы не меняете проект, то готовьтесь выкинуть его на помойку.

Как же решить эти проблемы с обоих сторон? Думаю, нам поможет модель Agile разработки ПО, которая учитывает непостоянство окружающего мира и в том числе процесса разработки. Эта модель построена на взаимном доверии, когда бюджет заранее не фиксируется, либо имеет ограничение сверху с запасом, позволяющее развивать проект. При подходе Agile программный продукт выпускается очень часто. Может быть каждую неделю, а может быть каждый день. Для больших проектов — это единственный путь, способствующий созданию успешного продукта. Подход Agile может существенно сэкономить средства на разработку и в короткие сроки создать работающий продукт. Старый подход, когда сначала пишется огромное ТЗ, а потом долго-долго реализуется часто приводит к провалу. А иногда даже к провалу до начала работы программиста. 

Метки:

Оставить комментарий
1

Спасите Internet Explorer 6.0!

Andrey Lapin
1 апреля 2011 года

 

В последнее время все меньше людей пользуются Internet Explorer версии 6.0. Центр Высоких Технологий страшно обеспокоен этим фактом и объявляет сегодняшний день днем защиты IE6.

Наши задачи:

  • Агитировать всех пользоваться IE6
  • Портировать IE6 на linux, android и iPhone.
  • Написать петицию в W3C по поводу изменения стандартов в соответствии с IE6

Вот что пишут нам возмущенные пользователи:

  • Когда я перешел на IE6, я больше никогда не буду пользоваться Lynx!!
  • В IE6 единственно правильная разметка блоков!!
  • IE6 — это единственный браузер, которым я пользовался и буду пользоваться всегда!
  • Кодирование для IE6 — это путь терпения и настойчивости. Только с IE6 вы станете настоящим верстальщиком!
  • IE6 отучит вас баловаться с фоновыми картинками и альфа-каналами. Будьте проще!

Все, кто хочет поддержать нас, разместите на своем сайте логотип поддержки IE6:

 

Save IE6

 

Официальный сайт поддержки IE6:  http://www.saveie6.com/

Метки:

Оставить комментарий
1

Как нанимать программистов?

Andrey Lapin
30 марта 2011 года

Вышла поучительная статья http://devinterviews.pen.io/ про неудачный опыт набора кадров.
Многие компании любят давать зубодробительные задачки для программистов,
задавать вопросы по тонкостям языка программирования, которые бывают
нужны в 0.01 % случаев.

В результате автор статьи пришел к выводу, что все это туфта и нанимать
нужно по-другому. Вот основные вопросы, которые рекомендует автор
задавать:

  • Над каким последним проектом вы работали?
  • Какие ваши любимые проекты?
  • Над какими проектами вы работаете в свободное от работы время?
  • В каких онлайн-сообществах вы состоите?
  • Какие программные техники вам нравятся?

Лично я считаю, что спрашивать про кодирование имеет смысл только
насчет базовых вещей и то только новичков. Полностью согласен с автором и
придерживался аналогичного подхода, когда занимался подбором людей в
Быстробанке. Не могу рассказать про ЦВТ, поскольку мне только несколько раз пришлось поучаствовать в наборе кадров, но на сколько я понял, проекты являются наиболее веским аргументом при приеме на работу.

Метки: ,

Оставить комментарий
0

Полезные ресурсы по Linux

Andrey Lapin
25 марта 2011 года

Если вам есть, что добавить, можете править здесь: http://wiki4tech.ru/Полезные_ресурсы_по_Linux

Метки:

Оставить комментарий
0

Правила оформления программного кода

Andrey Lapin
23 марта 2011 года

Существуют различные книги по оформлению кода. Например, книга Алена Голуба "Правила программирования на С и С++".

Некоторые правила устарели, некоторые могут показаться спорными. Я решил собрать наиболее актуальные в настоящий момент правила, которые можно отнести к большому количеству языков программирования.

Для неискушенных в программировании, необходимо сказать, что единые правила оформления очень важны. Правила оформления:

  • Повышают читаемость кода
  • Легче находить ошибки
  • Легче отлаживать код
  • Повышают общее качество кода

Ну и наконец ссылка на правила: http://wiki4tech.ru/Правила_оформления_кода 

Интересно услышать комментарии и предложения.

 

Метки:

Оставить комментарий