Клуб разработчиков программных систем

Темы | Статьи | Рейтинги |

 буллет Статьи

Программы на заказ: мысли вслух

Сергей Трофимов

14.04.2004

Разработка программ - дело непростое и довольно ресурсоемкое. Правда, главным ресурсом является время разработки, поскольку можно сказать, что программы появляются практически из воздуха. Нет ни запчастей, которые нужно покупать, ни складских помещений, в которых хранится готовая продукция, поэтому главная затратная часть при создании программ – это заработная плата программистов. И чем дольше идет разработка, тем больше она забирает денежных средств.

Время зависит не только от требований, которые предъявляются к будущей системе, но и от опыта программистов, проектировщиков, руководителей, в общем, всех тех, кто создает программный продукт.

Заказная разработка значительно отличается от создания коробочного софта. Главное отличие в том, что в такой разработке реализуются функции, которые требуются конкретному заказчику. Пока заказчику не требуется та или иная функциональность, создавать ее не имеет большого смысла, поскольку она может и не понадобится,  это во-первых, а во-вторых  никогда не угадаешь на сто процентов, что понадобится сделать, и все равно придется переделывать.

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

Недавно я слышал такую фразу от представителя разработчика: «Вам нужна программа? Пишите техническое задание, мы все сделаем». Вот таких разработчиков нужно очень сильно опасаться, поскольку так может работать отдельный программист, но не компания

Заказчику не нужна программа – ему нужно решение, а определить, как это будет реализовано, уже задача разработчика. Если бы заказчик мог написать техническое задание, то нанять программиста для его реализации не составило бы большого труда (правда, если не обращать внимание на создание дополнительной инфраструктуры, такой как тестеры, технические писатели и другие участники программного проекта).

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

Если вы наняли штатного программиста, то количество проблем часто не только не уменьшается, но со временем может даже увеличиться. Мифическое спокойствие руководителя мол «Вася всегда рядом и может сделать программу как нужно», может обернуться плачевными результатами. Вася может в любой момент заболеть, запить или просто уволится, когда вы нагрузите на него слишком большой, по его мнению, объем работы. А что останется в компании? Хорошо, если не потеряются исходные коды программ, но даже если они есть, как в них разобраться. Ведь программист Вася писал их для себя, без комментариев и  оглядки на то, что кто-то еще когда-нибудь заглянет в исходный код.

Штатные программисты в непрофильной (например, торговой) компании  могут быстро облениться и перенять манеру общения у системных администраторов со стажем (это отсутствующий взгляд и отношение к пользователям, как к низшей расе). Естественно, при общении с компанией-разработчиком такого не может быть в принципе. Ведь заказчик – это главный человек в разработке, тот, ради кого и работает компания. Заказчик знает свой бизнес, а разработчик знает свой, и только вместе можно создать что-нибудь стоящее, о чем в дальнейшем программисты будут с гордостью рассказывать в телеконференциях и упоминать в своих резюме.

Не будем забывать, что для создания программного продукта требуется не только знание языка программирования, но и достаточный опыт в решении проблем. При этом найти опытного программиста, платить ему хорошую зарплату не всем по карману, дешевле сделать заказ у тех же опытных программистов, которые работают в компании по разработке ПО, которых не нужно отдельно стимулировать для хорошего выполнения своей работы и беспокоиться, чтобы хороший программист не ушел туда, где больше платят.

Можно сказать, что заказать программу дешевле у компании, которая профессионально занимается разработкой ПО, несмотря на то что разовая плата за программу кажется большей, чем зарплата собственного программиста. Но за счет лучшей организации труда, более профессиональной разработки и ответственности разработчиков за конечный результат, а также меньших сроков разработки, заказные программные продукты окупают себя с лихвой.


Список статей:

 

    Еще статьи >>>

© Trofimov Sergey   http://www.caseclub.ru при цитировании ссылка обязательна.