Artem Saveliev
РезюмеРабота О себеДневник
English
Часть нечеловечности компьютера проявляется в том, что когда он полностью
запрограммирован и отлажен, он всегда говорит абсолютную правду.
Айзек Айзимов.
Управление проектом Разработка архитектуры Системное программирование Сетевое администрирование Уникальные разработки Другое Примеры работ

Управление проектом

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

Для управления исходным кодом изначально использовался Microsoft Visual Source Safe, однако этот продукт перестал удовлетворять требованиям. По этому я произвёл миграцию на Concurrent Versioning System (CVS ). Этот продукт решил все проблемы со скоростью обмена данными, управления ветвями кода и блокированием файлов. В данный момент он используется для всех трёх продуктов компании, поддерживая порядка десяти разработчиков. Я занимаюсь администрированием хранилища кода и решением проблем.

Любые проблемы, возникающие у клиента, сразу заносятся в систему Bugzilla, которую мы используем уже на протяжении трёх лет. Этот продукт является наиболее гибкой и доступной системой QA. При его помощи я осуществляю ежедневный контроль над статусом решения проблем. Распечатки из этой системы используются на совещаниях каждый второй день.

В следующем году, мы планируем переход на Microsoft Visual Studio 2005 Team Services, продукт, который сочетает в себе все вышеперечисленные функции.

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

Используемые бухгалтерские системы включают Intuit Quickbooks (система бухгалтерского учёта для малого бизнеса) и Microsoft Great Plains (для компаний среднего размера). Мы являемся партнёром Microsoft Business Solutions, интегрируемся и продаём Great Plains. Так же наши продукты интегрируются с Quickbooks. Quickbooks используется для внутреннего учёта, отчётности сотрудников о потраченном времени и выставлении соответствующего счёта заказчику.

Разработка архитектуры

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

Начальный этап, «демо»:
Начало разработки, создание архитектуры приложения:
Активный процесс разработки:
Завершение первой рабочей версии продукта:
Выпуск и поддержка продукта

Системное программирование

С зависимости от этапа выполнения проекта, я трачу часть времени на разработку реального кода. На активном этапе это практически 100%

Для разработки и отладки использую в основном Microsoft Visual Studio 2003 и Microsoft SQL Server Query Analyser. Части проекта выполняются в более специализированных продуктах, таких как NetBeans IDE для разработки на Java кода, XML Spy и jEdit для расширенного редактирования XML и XSLT файлов. Так же постоянно использую MSDN Library.

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

Сетевое администрирование

Windows 2000/2003

В сети нашей компании преобладают серверные продукты Microsoft, и я стараюсь использовать наиболее эффективные комбинации решений и административных политик. Политики (policies) Active Directory используются для управления безопасностью на клиентских рабочих станциях работающих под Windows 2000 и Windows XP. В частности, политики позволяют автоматически обновлять все компьютеры в сети с использованием Microsoft Software Update Services (SUS). Конечно же, на базе AD работает корпоративный сервер Microsoft Exchange 2003, предоставляющий возможности e-mail, корпоративного календаря, общих папок, веб доступа к почте и VPN с использованием Outlook 2003 через HTTPS канал.

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

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

Большое количество сервисов в сети базируются на веб-технологиях и сервере Microsoft Internet Information Services (IIS). Используются Microsoft CRM 1.1 для поддержки отдела продаж, SharePoint Services для поддержки процесса разработки (список задач, спецификации, обсуждения, отчёты) и документации (инструкции для пользователя, шаблоны данных, иллюстрации) всех проектов, Microsoft Project Server (основанный большей частью на SharePoint Services) для общего управления проектом и ресурсами.

Сервер Windows Terminal Services используется для удалённого доступа к серверам приложений, использующим Intuit Quickbooks и Microsoft Great Plains. Система использует политики AD для ограничения одновременного доступа к сервисам.

Все выше приведённые сервера приложений, а так же разрабатываемые нами продукты используют сервер базы данных Microsoft SQL Server 2000, установленный на трёх серверах и всех рабочих станциях разработчиков.

Так же, за пределами офиса я администрирую и поддерживаю четыре сервера под управлением Windows 2000 и 2003, на которых работают наши приложения и Microsoft SQL Server, и которые выступают в качестве серверов приложений (ASP) и доступны из Интернета.

UNIX

Для обеспечения максимальной гибкости в оказываемых сетью сервисах я постоянно использую различные варианты UNIX. Изначально Linux использовался для запуска системы Catalyst One CRM и сервера Bugzilla. В дальнейшем произошла постепенная миграция на OpenBSD, который предоставляет идеальную комбинацию безопасности и функциональности для создания распределённой виртуальной сети (VPN) между нашими удалёнными офисами, а так же в качестве пограничной системы безопасности. В данный момент все UNIX сервисы (firewall, NAT, VPN, priority queuing, Bugzilla) переведены на OpenBSD.

Сети

Наша офисная сеть полностью коммутируемая, и подключена к Интернет через линию T1 с помощью маршрутизатора Cisco. На сервере в сети установлена система слежения за нагрузкой MRTG с использованием протокола SNMP.

Уникальные разработки

CRM

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

XFDL

На протяжении работки различных продуктов управления бизнесом в нашей компании, постепенно была сформирована идея веб-приложения. В данный момент в индустрии начинается процесс создания новых стандартов, таких как XAML и WHAT. Веб-приложение представляет из себя комбинацию серверной логики и описания полей и других элементов экрана в легко используемом формате, обычно предназначенном для бизнес-приложений. Для наших продуктов я разработал уровень абстракции, позволяющий программисту сосредоточиться только бизнес-объекте и взаимодействии с базой данных. Библиотека XFDL создаёт визуальное представление объекта для ASP.NET или Windows на лету, и показывает и передаёт введённые значения обратно в объект (см. примеры работ).

XSL-FO Server

Для создания печатаемых документов в веб приложениях, мною был разработан набор для быстрой разработки документов, и сервер для создания PDF и PostScript документов. Библиотека, интегрируемая в приложение, создаёт XML представление бизнес-обьектов или данных из базы данных, и преобразует их в стандартный XSL-FO файл (см. примеры работ. XSL-FO это стандарт World Wide Web Consortium для представления печатаемых документов. Затем, этот файл передаётся серверу с дополнительными инструкциями для печати. Сервер может создавать документы в PDF или PostScript форматах и копировать в файл или напрямую на сетевой принтер. Сервер имеет функции дополнительного редактирования PostScript формата, позволяя управлять дополнительными функциями принтера, такими как выбор поддона для бумаги и включение дуплексной печати.

Таким образом, XSL-FO сервер обеспечивает все требования печати из бизнес-системы – лёгкая интеграция с бизнес системой, лёгкость создания и редактирования шаблонов, гибкость вывода.(см. примеры работ)

Другое

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

Кроме того, для работ связанных с печатными документами используется Adobe InDesign и Adobe Illustrator. В частности они широко используются при создании XSL-FO документов.

На базе Windows Media Services мною развёрнут сервис доставки обучающих материалов (фильмов). Используется кодек Windows Media Screen Codec, для записи используются либо Camtasia либо Windows Media Encoder.

В процессе развития компании и увеличения географической распределённости нашей компании, было использовано множество различных средств instant messaging, такие как MSN Messenger, ICQ, сервер ICQ Groupware, сервер Jabber с дополнительными адаптерами, сервер Exchange Messaging. Однако в данный момент используется MSN Messenger, в основном по причине необходимости общения с клиентами через сеть MSN. Так же в настоящее время очень широко используется система голосового общения Skype.

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