Презентация за събитието "Можещи в Русе: Бизнес + IT", което се проведе на 17.12.2014 г. в Русенски университет.
Трудности при вътрешна разработка на корпоративен клас софтуер в организация, която не се занимава с разработка на софтуерни продукти. История, решения и някои детайли от разработката на интегрираната информационна система на Русенски университет.
1. Корпоративен софтуер в
гаражни условия
Цветелин Павлов
Трудности при вътрешна разработка на корпоративен клас софтуер в организация, която
не се занимава с разработка на софтуерни продукти. История, решения и някои детайли от
разработката на интегрираната информационна система на Русенски университет.
3. Enterprise software
Enterprise software, also known as enterprise application
software (EAS), is purpose-designed computer software used to
satisfy the needs of an organization rather than individual users.
Such organizations can vary from businesses, schools, interest-based
user groups and clubs, retailers, or governments. Enterprise software
is an integral part of a (computer based) Information System, and as
such includes web site software production.
Wikipedia
4. Категории
• Accounting software
• Business intelligence (BI и Self-BI)
• Business process management (BPM)
• Content management systems (CMS / ECM)
• Customer relationship management (CRM)
• Database
• Master data management (MDM)
• Enterprise resource planning (ERP)
• Enterprise asset management (EAM)
• Supply chain management (SCM)
Wikipedia
5. Най-важните характеристики
• Винаги наличен (High availability)
• Мащабируемост (Scalability)
• Надеждност (Reliability)
• Сигурност (Security)
• Ремонтопригодност (Maintainability)
• Управляемост (Manageability)
• Изисква солидна инфраструктура
• Изисква допълнителни дейности за поддържане в изправно
състояние
• Висока себестойност
8. Русенски университет не е корпорация, но от гледна точка на
информационните системи…
… wait for it …
9. Русенски университет
В модерни учебни зали и изследователски лаборатории [...] се
обучават около 10 000 студенти и докторанти. Обучението се
провежда от 499 висококвалифицирани преподаватели на
основен трудов договор...
Официален сайт на Русенски университет
10. Русенски университет
• ≈10 000 – 12 000 обучаващи се
• ≈ 500 души преподаватели
• ≈ 100 – 200 души персонал
• Две териториално изнесени звена – филиалите в Силистра и
Разград
• 8 факултета, 32 катедри, 15 дирекции
Официален сайт на Русенски университет
11. Русенски университет не е корпорация, но от гледна точка на
информационните системи…
… wait for it …
Информационното обслужване трябва да се извършва от
корпоративен клас софтуер.
12. Защо „гаражни условия“?
• Основната цел на университета е обучението на студенти, а не
производството на софтуер
• Развитието на софтуера не е бизнес приоритет
• Ниски заплати
• Свит щат
• Липса на дългосрочна стратегия за информационно
обслужване
• Работа „на парче“ по „занаятчийски“
• И заради разликата с „външните изпълнители“
14. …това, което всички наричат „система
Студент“ …
… всъщност е система за обезпечаване на работните процеси за
обучение на студенти.
15. …това, което всички наричат „система
Студент“ е свързано с:
• Управление на студентско състояние
• Управление на учебни планове
• Управление на изпитни протоколи
• Управление на учебен разпис
• Интеграция със системите на МОН
• Касови и безкасови разплащания
• Натоварване на преподавателския състав
• Материална база на университета
• Човешки ресурси
• Личен състав
• Труд и работна заплата
• и всичко останало…
17. Legacy
• Clipper
• Човекът-система
• Невъзможност да отговорят на нуждите на организацията
• „Онлайн“ какво…?
• Натоварване на персонала заради липса на автоматизация
• Опашки…
• Кой за какво отговаря?
19. Началото
… ами обхват, бюджет, екип, необходими ресурси, времеви
прозорец, критични функционалности, стратегия и подход за
разработка?
20. The Dark Ages
— Как върви разработката на системата, напредвате ли?
— Даа-а, напредваме…
21. Стратегически цели
• Разпределяне на отговорностите
• Разгъване на работните процеси от край до край
• Максимална възможна автоматизация
• Проектиране за разширяемост
• Интегриране на готови решения, където е възможно
• Хомогенна среда от инфраструктура до line of business
приложенията
• Базиране на платформи вместо собствена разработка
32. По проекта
• Определихме обхват
• Определихме бюджет
• Определихме времеви прозорец
• Сформирахме екип
• Довършихме инфраструктурата
• Новият сайт на университета
• Система за управление на учебните планове
• Система за управление на студентското състояние
36. Новият сайт
• Базиран на SharePoint Server
• … всъщност са 110 сайта, 29 приложни услуги и 19 комплекта
сервизни уеб приложения с услуги
• + по един сайт за всеки потребител (общо ≈12 110)
• Разпределяне на отговорностите
• Работни процеси за одобрение
38. Учебни планове
• Обезпечаване на процесите по създаване и утвърждаване на
учебни планове
• Domain-driven архитектура
• Трислоен пласт с услуги, трислойно уеб приложение
• SharePoint Provider-Hosted App за преглед на учебните планове
• Уеб базиран редактор
• Работни процеси и документооборот в SharePoint
41. Студентско състояние
• Обезпечаване на процесите по промяна на студентското
състояние и обучение на студенти
• Data-driven архитектура
• Трислоен пласт с услуги, трислойно клиентско приложение
• Modern UI Point of Service десктоп приложение за факултетните
канцеларии
• Работни процеси и документооборот в SharePoint
44. Предстоящо през 2015
• Втори release на системите за студентско състояние и учебни
планове
• Система за учебен разпис
• Лични профили за студентите
• Преглед на собственото състояние – дисциплини, изпити, оценки
• Личен календар с разписа на занятията
• Административни процедури онлайн
• Office 365 for Universities
• Онлайн плащания
46. Когато стартирате софтуерен проект
• Задължително уточнете обхвата на функционалностите (scope)
• Задължително уточнете бюджета и начина на управление
• Използвайте agile методика и изберете хора, с които да
комуникирате, когато имате въпроси или предложения
• „Scale as you need” – стартирайте с малко, но винаги
проектирате за разрастване
• Когато правите технологичен избор, избирайте технологията с
най-малък риск
• Изучаването на технологията също е риск
• Формирайте екип!
• Задължително TDD при многопластови решения!
47. Трябва ли да разработвам enterprise клас
софтуер?
ДА
48. Как?
• On-premise, хибридно или изцяло cloud
• Visual Studio Online
• BizSpark
• Microsoft IT Academy & MSDN
• Windows Azure
Казвам се Цветелин Павлов и съм софтуерен инженер в Центъра за информационно и компютърно обслужване на Русенски университет.
Няма да ви разказвам как да правите успешен корпоративен софтуер в гаража си най-малкото защото не се чувствам като успял човек, който може да раздава съвети. Но мога да споделя нещичко за трудностите и предизвикателствата, с които ние се сблъскахме по време на разработката на интегрираната информационна система на университета.
Преди всичко, за да съм сигурен, че всички сме на „същата страница“ искам да обясня какво представлява корпоративния клас информационни системи и защо са толкова специални, че да ви губя времето с тях…
Според определението в Wikipedia корпоративен е софтуер, насочен към организациите, а не към крайните потребители, т.е. бизнес софтуерът, който организациите използват, за да вършат своята работа. Забележете, че не става дума само за „бизнес“ организации.
… кратко списъче на видовете корпоративен софтуер, извадено от същата статия в Wikipedia само защото наименованията на тези категории са по-популярни и хората стоплят по-бързо, когато чуят „ERP”, “CRM”, “BPM” и т.н.
Забелязвате ли, че CMS-ите, които много от вас познават също присъстват като „корпоративен софтуер“? Става дума за т.нар. Enterprise Content Management или ECM, което е „почти същото“ като блогът ви на WordPress, но „обогатено“ с множеството процеси, проверки, одобрения и въобще контрол на информацията, докато тя стане „онлайн съдържание“. Отделно, ECM включва и софтуерите за управление на документацията в организацията, т. нар. Document management или документооборот на български. При SharePoint например има функционалности, които позволяват на даден документ да бъде наложена възбрана за извършване на каквото и да е действие, до като трае ревизия, например, с цел да не се позволи злонамерено изкривяване или заличаване на информацията.