Технологии коллективной разработки массового ПО

Александр Прохоров

Фирма «1С»

Экономическое ПО

 

Считается, что у нас в стране прекрасные программисты, и это действительно так!

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

Разобраться в причинах данного явления весьма важно для дальнейшего развития отечественной индустрии ПО.

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

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

Фирма «1С»

«1С» — это чисто российская фирма со штатом более 160 человек, работающая в основном на отечественный рынок и опирающаяся исключительно на собственные профессиональные успехи. По данным многочисленных опросов, «1С» отличается рекордной отдачей от одного сотрудника. В связи с этим информация о том, как организован процесс производства на фирме, представляет особый интерес. Как известно, в «1С» существует два основных направления: первое (традиционное) связано с экономическими программами и второе — «1С:Мультимедиа» — посвящено производству игр. В силу того что оба направления имеют свою специфику, мы попросили рассказать о каждом из них отдельно.

в начало

в начало

 

Экономическое ПО

На вопросы об организации процесса создания программных продуктов делового назначения фирмы «1С» и прежде всего системы программ «1С:Предприятие» ответил Алексей Харитонов, руководитель отдела продвижения экономических программ фирмы «1С».

КП: Алексей, компания «1С» известна своими успехами в организации качественного массового продукта, могли бы вы поделиться некоторым опытом в этой области? И прежде всего рассказать, какова структура вашего производственного цикла. Как организован процесс коллективного создания программного продукта? Какие требования вы предъявляете к своим программистам?

Алексей Харитонов: Поскольку речь идет о разработке тиражного софта, требуются очень квалифицированные специалисты. Мы рассматриваем очень много кандидатур, но в штат берем относительно мало. По сравнению с фирмами, занимающимися разработкой и внедрением заказного ПО, мы считаем, что разработчики массового софта — это элитные войска (спецназ) по сравнению с регулярной армией. Они более высокооплачиваемые, но и гораздо более квалифицированные; каждый много чего умеет. У нас практически нет так называемых простых кодировщиков, которые занимаются программированием по подробно расписанной задаче — каждый разработчик отвечает за какой-либо проект или за его часть и должен профессионально выполнять очень разные работы, требующие и квалификации, и творческого подхода, и умения слаженно работать в команде. Разработчики системной части специализируются по различным технологиям, составляющим платформу «1С:Предприятие», разработчики прикладных решений в той или иной предметной области — (бухгалтерский учет, торговый, производственный и т.п.).

Стыковка модулей сильно различается в системной и прикладной части. В системной части используются специализированные технологии разработки больших проектов (частично стандартные, частично выработанные собственно в «1С»). В прикладной части отдельные проекты являются, с одной стороны, независимыми прикладными решениями, а с другой — частью единой методологической системы. Они и работать могут как вместе, так и по отдельности.

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

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

КП: Расскажите поподробнее, как организовано тестирование? Какое ПО для этого используется? Кто занимается тестированием?

А.Х.: Технология и порядок тестирования зависят от того, что именно тестируется. Отдельно выходят новые платформы, отдельно — конфигурации к ним. Платформа — это ядро, на нем пишутся типовые конфигурации, которые образуют прикладной уровень с определенными правилами учета, набором документов и взаимосвязями между документами, правилами заполнения реквизитов и пр. Конечно, они не полностью независимы друг от друга, но их делают разные группы, и выходят они в разные сроки, по-разному тестируются. Многое зависит от того, какой это продукт: абсолютно новый или модификация существующей конфигурации (новый релиз). В среднем новая версия тестируется самими разработчиками примерно в течение месяца (модули, естественно, тестируются по мере готовности), а затем начинается более формальный процесс — альфа-тестирование внутри самой фирмы.

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

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

Затем наступает этап бета-тестирования. К нему мы привлекаем в первую очередь наиболее продвинутых партнеров, но и «предметники», специалисты по учету, тоже занимаются тестированием.

Условия тестирования разные. Если тестируются конфигурации, то допускается установка системы у конечных пользователей. Пользователей предупреждают, что это бета-версия и что обычно у них эксплуатируется предыдущая, рабочая версия и параллельно проверяется и осваивается новая. Так, чтобы кто-то один мог протестировать все «1С:Предприятие» сразу, не бывает — обычно в бета-тестировании только одной новой конфигурации, например «Производство+Услуги+Бухгалтерия», принимает участие около 150 партнерских организаций. Бета-версии мы, как правило, продаем им по обычной цене, но с обязательным условием прислать потом отчет. Если партнер присылает нормальный отчет, то бета-версия ему потом заменяется на обычную. Бета-тестирование длится от полутора до трех месяцев, поступающие отчеты сводятся и обобщаются, затем выпускается «боевой» релиз, который тиражируется и поступает в продажу.

КП: Существуют ли какие-либо нормативные документы, предписывающие, как нужно писать программы внутри коллектива?

А.Х.: Такие документы, конечно, есть — на разработку как системной части, так и прикладных решений (конфигураций). Есть также внутренние инструкции и нормативы на контроль исправления ошибок и другие работы. Эти документы совершенствуются, со временем их становится все больше, на их основе мы создаем, например, открытые нормативы по сертификации тиражных партнерских разработок на получение логотипа «Совместимо! Система программ «1С:Предприятие».

КП: Если можно, расскажите, как документируется ПО.

А.Х.: Подробное и всестороннее документирование своих программ мы считаем исключительно важной задачей. Ведь современные системы автоматизации учета — это гибкие и в то же время функционально очень насыщенные продукты. Эффективно их использовать, корректно настраивать, вести учет с высокой степенью автоматизации без качественной документации нельзя. Так, например, официальные пользователи «1С:Бухгалтерия 7.7» получают в комплекте поставки семь томов документации общим объемом более 3000 страниц.

В написании документации участвуют и собственно разработчики, и специальные сотрудники, приглашаются сторонние специалисты, например аудиторы.

Выпускается и широкий спектр дополнительной методической литературы, посвященной ведению различных разделов учета с использованием программ «1С». Такие книги пишут профессиональные экономисты и специалисты по бухучету, например заведующий кафедрой Финансовой академии при Правительстве РФ профессор Д.В.Чистов или известный аудитор С.А.Харитонов.

КП: Могли бы вы поделиться информацией о том, какие средства разработки (и каких компаний) используются на вашей фирме. Хотелось бы также поподробнее услышать о технологической платформе «1С:Предприятие», а также понять, каков жизненный цикл разработки отладки и внедрения продуктов «1С»?

А.Х.: Основное средство разработки системной части — MS Visual C++. Все прикладные решения пишутся собственно на технологической платформе «1С:Предприятие», возможности которой позволяют эффективно создавать и модифицировать прикладные решения.

Использование в «1С:Предприятие» набора типовых объектов предметной области позволяет избавить проектировщика от целого этапа разработки, а также от комплекса проблем, встающих при проектировании структур таблиц базы данных.

Объекты «1С:Предприятие» существенно упрощают не только проектирование и поддержание структуры базы данных. Второй их важной особенностью является то, что они реализуют существенную часть бизнес-логики задачи автоматизации. Три функциональных компонента «1С:Предприятие» поддерживают три основных механизма учета: оперативный учет, бухгалтерский учет и сложные периодические расчеты. Настройка этих механизмов выполняется визуально и обеспечивает не только все необходимые структуры данных, но и расчетные и аналитические операции.

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

Вообще конфигурация «1С:Предприятие» — нечто большее, чем программа, написанная на некотором языке. Фактически это проект, который вмещает в себя и алгоритмы, и интерфейс, и словарь данных, и даже документацию. Структура конфигурации сама по себе является четко организованной схемой построения прикладного решения.

По нашему мнению, для средств разработки экономических программ (в отличие от большинства других) очень важны возможности поддержки уже работающих проектов. Средства конфигурирования «1С:Предприятие» обеспечивают не только собственно разработку, но и сопровождение работающей конфигурации. Даже при самом качественном и всестороннем проектировании на практике не удается избежать модификации прикладного решения. Даже если у пользователей не появятся новые требования, то о необходимости модификации обязательно позаботятся соответствующие правительственные организации.

Возможности платформы «1С:Предприятие» позволяют без особых усилий обеспечить отчуждаемость от разработчика самого процесса обновления прикладного решения. Это помогает легко поддерживать одинаковые или сходные прикладные решения многим пользователям. Получив обновленное прикладное решение, пользователь может самостоятельно установить его, не прибегая к сложным манипуляциям с базой данных. При этом средства конфигурирования позволяют выполнять обновление прикладного решения, даже если работающая конфигурация была модифицирована заказчиком самостоятельно и соответственно отличается от того оригинала, в который вносит изменение разработчик. Весьма полезной является также возможность сравнения конфигураций, позволяющая выявить все внесенные изменения — от структур данных до алгоритмов программных модулей.

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

Такие возможности системы «1С:Предприятие 7.7» позволили реализовать технологию непрерывного индустриального сопровождения эксплуатируемых учетных систем, которую мы считаем очень перспективной. Сейчас центральным звеном поддержки всех категорий пользователей и специалистов по внедрению является ежемесячно выпускаемый компакт-диск информационно-технологического сопровождения (ИТС). Это подписное издание, на котором содержатся обновления текущих версий программ, дополнения к типовым конфигурациям, новые формы отчетности, методические материалы и рекомендации по использованию программных продуктов, комментарии и правовая информация по учету, налогообложению и многое другое. В результате пользователю, работающему с системой, для внесения в нее очередных обновлений, например отражения изменений в правилах расчета налогов, достаточно установить новый релиз типовой конфигурации с диска ИТС.

Разработка на платформе «1С» ведется не только в пределах фирмы, но и в масштабах всей страны — «1С:Предприятие» изначально предназначалось для того, чтобы независимые специалисты могли настраивать продукты в точном соответствии с потребностями предприятий, используя наши типовые конфигурации в качестве основы. Эти работы выполняют сейчас около 1500 фирм, входящих в сеть «1С:Франчайзинг». Возможности «1С:Предприятие» позволяют франчайзи создавать эффективные тиражные решения для автоматизации предприятий различных отраслей.

Поэтому фирма «1С» принимает серьезные меры по технологической и методической поддержке партнеров-разработчиков, разработке технологий и стандартов интеграции «1С:Предприятия» с другими системами. Кроме упомянутой выше методики сертификации партнерских разработок на совместимость с «1С:Предприятие», выпущены методики интеграции с торговым оборудованием, совместно с ведущими разработчиками банковского ПО разработан открытый стандарт обмена данными с системами типа «клиент банка», сейчас совместно с Microsoft ведутся работы над стандартами по электронному обмену торговой информацией в формате XML..

(Продолжение следует)

КомпьютерПресс 10'2000

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует