четверг, 14 апреля 2011 г.

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

Бывает такое, что клиент не понимает, почему за разработку необходимо так дорого платить. Иногда это бывает из-за технической некомпетентности, как описано здесь: http://wiki4tech.ru/Проблема_понимания_клиентом_сложности_проекта. Но последнее время как правило бывают технически подготовленные клиенты, имеющие специальное профильное образование, но не ставшие на путь разработки и занимающиеся менеджментом. В этом случае сталкиваемся с непониманием другого рода. Будучи студентом решая различные лабораторные работы создается впечатление о том, что программирование - это достаточно легкое занятие. Довольно сложные задачи могут решаться быстро и впечатлять нас.
Дело в том, что лабораторная работа в сравнении со зрелым продуктом - это картонный автомобиль в сравнении с настоящим автомобилем. Смотрите, это же работает, какая красивая картинка. Но откуда берутся дополнительные часы и дни на разработку? Попробую перечислить, что же нам вставляет палки в колеса.
  • Программа должна быть легко сопровождаема, необходимо писать красивый понятный код
  • Программа должна быть протестирована самим программистом (а не только тестировщиком)
  • В вузах как правило не преподают как эффективно проектировать интерфейс взаимодействия с пользователем. Интерфейс пользователя - это та неуловимая для многих вещь, которая заставляет писать дифирамбы программе, а иногда отбивает желание пользоваться.
  • Программирование - это не спринт, а марафонский бег. Нужно достаточно хорошо подумать, чтобы что-то сделать.
  • Иногда бывает, что время днями тратится на решение какой-то технической проблемы. При этом проблема не имеет какого-то понятного пользователю описания.
  • Когда программисты работают в команде, необходимо тратить время на взаимодействие внутри команды.
  • Любой проект с первого дня разработки начинает меняться и дополняться новыми требованиями. Если вы не меняете проект, то готовьтесь выкинуть его на помойку.
Как же решить эти проблемы с обоих сторон? Думаю, нам поможет модель Agile разработки ПО, которая учитывает непостоянство окружающего мира и в том числе процесса разработки. Эта модель построена на взаимном доверии, когда бюджет заранее не фиксируется, либо имеет ограничение сверху с запасом, позволяющее развивать проект. При подходе Agile программный продукт выпускается очень часто. Может быть каждую неделю, а может быть каждый день. Для больших проектов - это единственный путь, способствующий созданию успешного продукта. Подход Agile может существенно сэкономить средства на разработку и в короткие сроки создать работающий продукт. Старый подход, когда сначала пишется огромное ТЗ, а потом долго-долго реализуется часто приводит к провалу. А иногда даже к провалу до начала работы программиста.

пятница, 1 апреля 2011 г.

Первого апреля британские ученые доказали

1) Климат весной страдает неопределенностью и стабилизируется только к лету.
2) Радиация помогает от мух и комаров
3) Земля страдает воспалением хитрости, а человечество от простодушия
4) Если Земля погибнет в 2012 году, то Бог есть. Если не погибнет, то Бог спит.
5) 100 грамм мяса способны заменить два яйца
6) Сторонники разнополых браков способны способны к размножению не меньше, чем сторонники однополых браков.
7) Хороший роман только неудачное продолжение хорошего анекдота
8) У хорошего политика всегда наблюдаются дефекты слуха. Слуховой аппарат способен превратить политика в обывателя
9) Если у женщины желания превышают возможности, это придает ей очарование в глазах мужчин
10) Превышение возможностей над желаниями у мужчин вызвано зрелостью или перезрелостью возраста.
11) Развитие общепонятных сокращений в Интернете позволит через три года избавить школьников от уроков родной речи и литературы
12) Демократия в России экономически невыгодна
13) Если часто говорить о Глобальном потеплении, то расходы на отопление можно снизить на 7,4%, но расходы на кондиционеры летом возрастут на 15,9%.
14) Смертность от СПИДа не столь опасна, как смертность от лечения СПИДа.
15) Люди давно жили бы в виртуальной реальности, если бы не необходимость ходить на работу. Поэтому безделье следует узаконить.
16) Регулярная влажная уборка помещения способна избавить от страха найти арабских террористов у себя под кроватью.