18.2. Возможность разработки собственных текстовых/табличных документов по данным, содержащимся в системе (генераторы отчетов и печатных форм).
18.3. Возможность подключения OLAP-продуктов или встроенный OLAP. Если разработчик уверен, что у него «встроенный OLAP», то опять-таки придется разобраться, что он имеет в виду. Предполагаю, что вы такого и предположить не могли.
18.4. Передаются ли исходные тексты, есть ли возможность самостоятельной модификации структуры баз данных?
А также исходные тексты чего и на каких условиях передаются. Например, я встречал продукты, где лицензировалось количество создаваемых программистом объектов. – Д. К.
19. Сетевые операционные системы, СУБД, операционные системы рабочих мест, метод работы с сервером (клиент-сервер, файл-сервер или их гибриды).
20. Ограничения по объемам баз данных и классификаторов, характеристики производительности
Лучше, если на примере реальной инсталляции, так как такие ограничения могут быть неизвестны даже самим разработчикам. – Д.К.
21. Необходимые и допустимые технические средства. (Технические характеристики и возможные типы компьютеров, электронных весов, сканеров и принтеров штрихкодов, кассовых аппаратов, устройств работы с пластиковыми картами etc.).
22. Возможные классификаторы, уровень вложенности, возможности использования. Наличие размеров (одежда, обувь), цветов и других характеристик товаров. Работа с комплектами (наборами и сборными товарами), товарами в возвратной таре, учет тары, в которую укладывают сразу несколько видов товаров при отпуске со склада etc.
23. Способы калькуляции себестоимости, средневзвешенных цен, методики списания (по средневзвешенной, FIFO, LIFO, срок годности, минимальная/максимальная цена закупки etc.). Для корпоративных систем: возможность различной настройки для разных компаний корпорации.
24. Ведение прайс-листов (количество вариантов, валюты), возможные варианты скидок/наценок (оптовая, по общей стоимости закупки, по количеству единиц товара, по количеству наименований товара, по факту покупки конкретного товара, по времени покупки, по стоимости закупок данным клиентом за период времени, по категории клиента, индивидуальная для клиента etc.). Различные возможности получения вычисляемых цен по базовым.
25. Комиссионная торговля, консигнация, реализация, экспедирование чужого товара, товарные кредиты, бартер, резервирование, автоматическое снятие резервирования etc. Оплата отдельных товаров из товарного документа. Фиксация цены закупки при оплате товара (в том числе и после его продажи).
26. Возможность контроля плановых запасов.
27. Автоматический учет пеней и штрафов (факт, прогноз и анализ).
28. Учет работы и оплаты менеджеров, торговых агентов, коммивояжеров и др.
29. Слияние/разделение товаров (один товар зарегистрирован в системе с разными кодами, разные товары попали в систему под одним кодом).
30. Слияние/разделение контрагентов (ИНН попадает в систему позже ввода в систему контрагента).
31. Наличие утилит для обрезания и сжатия разбухшей базы данных.
32. Наличие интегрированных в систему средств архивирования данных.
33. И, если честно, все это работает?
* * *Итак, вы получили ответы на свои вопросы. Что дальше?
Дальше вы, как и предполагалось с самого начала, обнаруживаете, что полностью вам не подходит ни одна из систем.
Теперь сразу же и решительно вычеркните из списка системы, которые точно не годятся, как бы вам ни нравились их интерфейсы, заложенные в них идеи и технологии. Постарайтесь проявить твердость и в общении с начальством по этому поводу. Нужно жестко отсечь системы, использующие СУБД, которые:
– не поддерживают объемы данных, как минимум в десять раз превосходящие объемы, заложенные в проект;
– не поддерживают одновременную работу числа пользователей, превышающего проектное в два-три раза;
– не поддерживают работу в сетях соответствующего масштаба или репликации в распределенной базе, и многое другое, что не лечится, если не было заложено в программное ядро продукта в самом начале его разработки.
Все-таки и интерфейс имеет значение. В системе, в которой при вводе заказа оператор должен при создании каждой новой строки кликнуть на пять кнопок (мышкой) и вручную каждый раз перебрать весь список товаров, точно не подойдет для организации, в которой продавец должен по телефонному звонку набирать заказы на двести строк.
Нужно только определить, для каких рабочих мест интерфейс является критичным, а для каких – нет.
Но не стоит путать удобный интерфейс и графический а-ля Windows – в упомянутом выше случае работа мышкой не всегда лучший вариант. – Д. К.
Вам будет тяжело избежать соблазна самому и уберечь от него своих шефов: системы, которые вы отвергнете, будут иметь самый красивый и удобный интерфейс и как нельзя лучше подходить для решения двух-трех частных задач, о которых именно сейчас думает начальник.
Особо остановлюсь на тестировании объемных и временных характеристик. В этом вопросе не следует доверять ни заверениям разработчиков, ни документации на СУБД. Вы должны проверить это сами. Понятно, что создать тестовую базу в три гигабайта у вас вряд ли получится. Для проверки работоспособности на таких объемах информации вас должны свести с организацией, которая уже использует соответствующую систему и оперирует соответствующими объемами информации. А вот как система работает с документом в тысячи строк (нормальный размер акта инвентаризации магазина), вы должны проверить сами.
Экстраполяции временных характеристик вам не помогут: они могут изменяться нелинейно. И если даже сохранение документа в десять тысяч товарных позиций происходит в сто раз медленнее, чем у документа в сто товарных позиций, то скроллинг строк этого «монстра» может происходить и в десять тысяч раз медленнее.
На отобранные системы примериваются задачи вашего проекта, отмечаются все места, «где видно голое тело» и «где скоро порвется», и подбирается набор заплаток (организационных и программных), которые можно в этих случаях применить.
К наличию у системы возможностей, которые вам не нужны, следует относиться осторожно. С одной стороны, они, конечно, могут понадобиться в дальнейшем, но с другой, они обычно приводят к ухудшению потребительских свойств частей, которые вам нужны. Система становится менее удобной, так как усложняется ее интерфейс (лишние вопросы, более длинные меню, необходимость вводить данные, которые не используются), и более объемной и медленной.
По итогам анализа систем вы готовите соответствующий документ, включающий также и стоимость реализации проекта с учетом использования каждой из систем-кандидатов, и начальство делает свой выбор.
Повторяю. Выбор основного программного продукта для автоматизированной системы управления масштаба предприятия (корпорации) делает первый руководитель или высший руководящий орган предприятия (корпорации) по вашему представлению. Значение этого шага гораздо выше, чем просто покупки программы (пусть даже очень дорогой). Реально оказывается, что принятое решение может на годы определить возможности и направления развития фирмы, и пусть руководство об этом знает.
Выбор системы руководством, конечно же, не спасет вас в случае неудачи от виселицы. Но вы пойдете на нее с чистой совестью.
Правда, руководство само тоже не всегда склонно принимать решение и произносит сакраментальную фразу: «Давайте проведем тендер».
Красивое слово «тендер»Слово это очень любят проверяющие органы и руководство уровня, на котором информация добывается нажиманием на подчиненных, а не на кнопки клавиатуры. Выбор проектного решения на основе конкурса – дело, конечно, соблазнительное, но какие у вас есть варианты?
1. Каждая из компаний, согласная участвовать в тендере на поставку и внедрение информационной системы, проводит самостоятельное обследование вашей организации и предлагает свой вариант решения ваших задач с указанием стоимости решения. Обычно обследование организации одной компанией занимает не менее месяца. Сколько компаний выдержат обследуемые сотрудники вашей организации и сколько времени все это продлится?
2. Вы сами составляете подробный документ с описанием информационных потребностей и рассылаете его по участникам конкурса. Сроки тендера в таком случае сокращаются, а сотрудники вашей организации остаются живы. Но вот что поняли участники тендера из вашего документа, станет ясно только в момент, когда уже установленная система не сможет выполнять возложенные на нее функции. Да и многие ли компании, искренне желающие внедрить у вас систему и объективно оценить затраты на нее, согласятся на такой вариант тендера?
Как третий вариант, можно привлечь стороннюю компанию («консультант по работе с консультантами»), которая проводит обследование и составляет описание требований. Однако при этом желательно, чтобы такая компания участвовала во внедрении и дальше, беря на себя часть работы по постановке задачи и контролю ее реализации.
Как третий вариант, можно привлечь стороннюю компанию («консультант по работе с консультантами»), которая проводит обследование и составляет описание требований. Однако при этом желательно, чтобы такая компания участвовала во внедрении и дальше, беря на себя часть работы по постановке задачи и контролю ее реализации.
В любом случае, когда требования формулируются сторонним консультантом, необходимо, чтобы в компании были люди, которые понимают и согласны с тем, что написал консультант (иначе после его ухода компания окажется в ситуации, когда нужно строить коммунизм, имея на руках только «Капитал» Маркса).
И даже привлечение стороннего консультанта не спасает от того, что написано выше: решение будет принимать руководство компании. – Д. К.
При любом варианте проведения тендера с его помощью можно определить только наиболее дешевое из решений, которые сочли приемлемыми сами участники конкурса. А что делать с такими понятиями, как адекватность, удобство, полнота, которые количественно оценены быть не могут?
Мне кажется, что выбор информационной системы на основе тендера с формальным алгоритмом подведения итогов (стоимость, срок внедрения, даже балльные экспертные оценки, перемешанные в экзотической весовой формуле), очень напоминает игру в «русскую рулетку», когда в барабане револьвера нет пустых гнезд.
Есть некоторые решения, которые, возможно, являются оптимальными, но не могут быть выявлены при помощи тендера. Это, например, внедрение вместо одной системы комплекса специализированных систем (кому-то придется собирать нескольких поставщиков в одну команду, способную вместе выступить на тендере) или заказная разработка всей или части системы. То есть перед проведением тендера нужно быть на сто процентов уверенным, что выбор имеет смысл только среди тех поставщиков, которые приглашены в нем участвовать. – Д. К.
Если же по материалам, присланным на тендер, решение принимаете вы и ваше руководство, то… я это уже описал в предыдущих главах.
Подбор персонала
Создание команды, способной внедрить систему, – это искусство, а не ремесло. Можно дать определенные рекомендации, можно с большой долей уверенности сказать, когда команда работать не будет, но я не могу обещать, что, выполнив все рекомендации, вы получите работоспособный коллектив. Даже призыв «Делай как я» и подробное описание способов, которыми пользовался я, чтобы заставить эффективно работать своих и чужих сотрудников, здесь не помогают. Прежде всего потому, что этот коллектив начинается с вас и является вашим продолжением.
То, что вы должны подобрать, – это не бригада программистов, хотя в каком-то виде она в вашу команду, по всей видимости, войдет, но не с нее начинается и не ею заканчивается.
Группа, занятая разработкой и внедрением, состоит из трех частей: собственно специалисты отдела автоматизации, прикомандированные сотрудники других подразделений вашей фирмы и сотрудники, ведущие ваш проект со стороны разработчика (когда есть внешний разработчик).
Пользоваться прикомандированными сотрудниками иногда может оказаться удобнее, чем перетаскивать их со скандалом к себе в отдел: умного вам никто не отдаст, а дурак в отделе автоматизации обладает гигантской разрушительной силой.
Сейчас любая относительно крупная организация уже имеет какие-то элементы автоматизированного учета (есть хотя бы компьютер, какая-нибудь бухгалтерская программа; если как-то автоматизирован складской учет, то обычно есть и локальная сеть). Персонал, который все это обслуживает, почему-то обычно называют мальчиками или программистами, хотя, как правило, эти люди программируют разве что bat-файлы. Американцы называют таких сотрудников ИТ-person, не отличая тех, кто больше нажимает на кнопки, от тех, кто больше крутит отверткой. В последнее десятилетие и в российских ИТ-кругах для таких людей появилось название «эникейщик». Квалификация этих специалистов слабо связана с зарплатой и варьируется от уровня advanced lamer до вполне серьезного.
В более крупных фирмах разделяются функции системного инженера (специалиста по железу и операционным системам), системного (сетевого) администратора, администратора баз данных и, может быть, программиста для доводки и текущих модификаций программного обеспечения. Эти функции в разных сочетаниях распределяются по имеющимся людям.
Для создания и внедрения новой автоматизированной системы или ее частей потребуются и новые функции, хотя до определенных пределов их можно возлагать и на тех же сотрудников.
Во-первых, вам потребуются квалифицированные постановщики. Первый и главный из них – это вы сами. Однако будь вы хоть семи пядей во лбу, вряд ли вам удастся описать все задачи вплоть до уровня, доступного программисту-кодировщику или внешнему разработчику (во втором случае подробность проработки должна быть еще выше, чем в первом). Кроме того, как я уже говорил, для получения хорошего результата постановщик должен знать предмет лучше сотрудников, работающих в соответствующем направлении, что практически невозможно для одного человека. Я, например, вполне прилично разбираюсь в технологиях склада, магазина и оптовых продаж, то есть свободно владею менеджерским, складским, программистским и русским языками. На этих языках я понимаю их носителей, могу сформулировать свои мысли и, самое главное, думать сам. А вот бухгалтерский язык для меня – иностранный. Я понимаю написанное на нем другими, если напрягусь, и сам могу написать шаблоны проводок для хозяйственной операции, но у меня не могут появиться идеи на этом языке.
И я счастлив, что со мной много раз работали люди, мозги которых повернуты на некоторый угол по отношению к моим: понимая и складские, и торговые технологии, и даже что такое алгоритм, они умеют мыслить по-бухгалтерски.
Мало их… Я за свою жизнь встретил только трех, и все – женщины: две – великолепные бухгалтеры, одна – исполнительный директор, которая за своих бухгалтеров думает. Знаю я и мужчин, отлично ориентирующихся в бухучете, но они все почему-то занимаются не самим учетом, а его автоматизацией. Впрочем, «за свою жизнь» – это слишком сильно. Просто лет восемь назад я сам в бухучете ничего не понимал, а чтобы осознать величие бухгалтера, надо в его деле хоть что-то смыслить. Теперь я смыслю, но именно что-то. Креатив в этой области мне по-прежнему недоступен.
«Нам не нужна отдельная система контроля исполнения поручений, все можно сделать в модуле „Бухгалтерия“ нашей системы: когда поручение дается, датой отчета по поручению делается проводка на штраф ответственному, а если он поручение случайно выполнит, то проводка сторнируется».
Без комментариев.
Квалифицированные постановщики ныне редкость. Как ни странно, тяжелее всего найти людей, владеющих русским языком, что в результате приводит и к косноязычию на уровне программных кодов.
Быль 1. В 1995 году подобрал я компанию, готовую поставить информационную систему для фирмы, в которой я тогда работал. И стали мы обсуждать, как эту систему настроить. И мне впервые назначили менеджером проекта человека, для которого правильнописание было тайной за семью печатями.
Через некоторое время я сообщил их директору, что долго такого не выдержу, и попросил заменить внедренца или хотя бы обучить его пользоваться проверкой орфографии в Word. Следующий документ он мне вручил, торжественно заверив, что теперь, получив взбучку, он проверяет тексты очень внимательно. Документ назывался «МАТЕРЬЯЛЫ К ЭСКИЗНОМУ ПРОЭКТУ». В параметрах Word было указано не проверять слова из прописных букв…
Быль 2. Очередная организация наняла меня слишком поздно: сторонние внедренцы уже сделали вид, что провели предпроектное обследование. В результате еще месяц ушел на переделку технических заданий на доработки. Одним из требований, на котором я настаивал, было добавление в справочник контрагентов дополнительного поля для аббревиатуры в пять символов. Сокращенное название контрагента в выбранной тиражируемой системе занимало двадцать символов и не влезало в шахматки, которые широко использовались в организации.
Требование для этой системы пустяковое, руководитель проекта от внедренцев на него сразу по телефону согласился, но в очередной версии ТЗ аббревиатуры не оказалось. Звоню, удивляюсь, в ответ слышу: «Ах, простите, щас добавим». Приходит следующая версия ТЗ – нужного пункта нет. После трех итераций еду к разработчикам и понимаю, что единственной проблемой для включения требования в ТЗ было неумение написать слово «аббревиатура» менее чем с двумя ошибками кем-либо из внедренцев. А Word больше одной ошибки не исправляет…
Бригада программистов обычно бывает нужна, при этом роль главного программиста можете играть и вы, если вам удастся разумно ограничивать себя на этом поприще.