Обдумывая тему реализации на своем сайте некоторых алгоритмов по обработке данных из 1С - а это означает работу с электронными таблицами в режиме Web - стал просматривать Google на тему javascript spreadsheet. И вот нактнулся на Хабре на
этот пост. Меня он заинтересовал, поскольку посвящен теме макросов на электронных таблицах Google.
Честно говоря, не совсем еще осознал, какую пользу я лично смогу извлечь из этого текста, но что-то полезное в нем однозначно есть. Вечером попытаюсь перечитать еще раз, когда будет свободная минута...
Автор:
Алексей Дробнич Привет!
Иногда бывает так что обычная задача приводит к необычным находкам. Так все началось с тривиальной задачи - нужно было развернуть за несколько часов систему управления портфелем проектов. Ресурсы на эту задачу не выделялись вследствие некоторого цейтнота по текущим проектам.
Особенности бекграунда задачи - система должна быть очень динамичной и наглядной. Специфику и уклад жизни нашей небольшой команды я коротко описал в
недавнем посте. Бизнес кейс задачи таков: у нас в работе много проектов. Пишутся предложения, рисуются оценочные Гантты, обсуждаются вопросы, ведется поддержка Процесса Разработки… В день через обсуждение в команде может проходить до 15 проектов. У проектов могут меняться статус, фаза, владелец. Информации много, она быстро меняется, и она важна. Наступил момент вводить инструмент для управления портфелем проектов.
Для неформального сбора Требований организовали общий Скайп-митинг. Одна идея всем понравилась. Поступило предложение использовать аналог доски с магнитами или липучками (sticky notes). Сама доска должна быть поделена на участки, соответствующие фазе проекта, его активности. Проекты должны обозначаться липучками или магнитами с небольшими текстовыми тегами для обозначения имени проекта, его категории и владельца (Product Owner), и классического трехцветного кода для обозначения здоровья проекта - (красный: проблемный, срочно нужен менеджмент; желтый: необходимо внимание и постоянный трекинг; зеленый: все идет хорошо).
В таком подходе большинство необходимых операций с проектом сводилось к перетаскиванию липучки на доске и изменению ее цвета. Само собой система должна быть информационно-безопасной но доступной по Вэбу.
Дальше пошел анализ того что уже есть. Для начала были просмотрены сервисы онлайн досок, затем сервисы липучек. К сожалению не получилось найти ничего удовлетворяющего всем запросам (безопасное разделение внутри группы пользователей, надежность сервиса, бесплатность).
Работающее решение было найдено с помощью Google Docs. А точнее Google Spreadsheets. Доска была реализована как разноцветные области таблицы. 3 столбца таблицы обозначают зоны активности проекта: Active (Активный), Held (Приостановленный) и Dead (Проект умер). 8 строк обозначают фазы проекта: Analysis, Proposal sent, Assigned to start, Elaboration Phase, Development Phase, Short Support, Long Support, Successfully finished:
Проекты-липучки легко перетаскиваются. А вот для добавления проекта нужно пройти несколько шагов:
- Меню\Insert\Drawing...
- во всплывающем окне выбираем в списке Shape фигуру для липучки (я использовал лист с загнутым углом)
- нажимаем на фигуру и в появившемся редакторе вводим имя проекта, центрируем его слева верху
- нажимаем на иконку текста, растягиваем его по липучке, центрируем, уменьшаем шрифт, вводим текстовые теги - платформу проекта, владельца, поле для задания ( ToDo: ).
- нажимаем кнопку [Save&Close]
Как видно операция эта довольно рутинная. На данный момент есть только один способ обернуть эту рутину в код - это
Google SpreadSheet Gadgets. Идея реализации такого гаджета довольно прямолинейная - мы вводим имя проекта, цвет липучки и текстовые теги в параметрах гаджета а потом это все отрисовываем. Что касается данной задачи, то этим путем мы не пошли поскольку время, необходимое на написание и тестирование гаджета значительно больше суммы операций на содание 30-40 липучек, которые нам нужны в ближайшие 4 недели.
На этом этапе шаблон таблицы с липучками был расшарен со всеми заинтересованными, и в целом, одобрен, пошел в работу. Если Вас он заинтересовал, вы можете его также использовать, сделав копию.
Вот его адрес. Теперь некоторые замечания…
На самом деле в этом микро-проекте был еще один шаг. В старые времена мне приходилось записывать и кодировать макросы для MS Excell. Поэтому когда я искал возможность обернуть в код несколько шагов для создания липучки, я на удачу набрал в Google Search что-то типа «macros for Google Spreadsheets». На мое удивление Google показал серьезную активность в этом направлении (
см. например здесь).
Это может означать что в скором времени мы увидим новую платформу для быстрой разработки приложений по масштабам и идеологии сопоставимую с Facebook API.
Уже сейчас гаджеты позволяют интегрировать таблицы с внешними сервисами. Макросы будут аналогом Javascript для операций на стороне клиента - таблицы. Возможности по оперированию данными на такой платформе очень широки. С другой стороны интерфейс пользователя будет существенно ограничен по дизайну. Если попробовать описать эту платформу лаконично - то это будет система для сверхбыстрой разработки систем с табличным интерфейсом. Калькуляторы, конвертеры, формы сбора полевых данных, биржевые экраны, университетские тесты - примеры таких систем. Аудитория для этих программ - все пользователи с Google акаунтом - а их много :)
Удачи!