Същността на предлаганата иновативна идея от областта на Софтуерните технологии (Software Engineering) е изграждането на нов модел за разработване и предлагане на уеб-базирани софтуерни решения и софтуерна платформа, базирана на модела, която да улесни, ускори и, доколкото е възможно, да автоматизира процеса на създаване и внедряване на уеб-базирани софтуерни системи. Платформата представлява комплекс от доказали ефективността си съществуващи софтуерни технологии, свързани по уникален и иновативен начин, както и изцяло иновативни технологични решения, които съчетани помежду си в цялостна единна система ще доведат до качествени промени в процеса на изработка на уеб-базирани приложения.
Развитието на софтуерната индустрия в последните години е белязано от няколко много сериозни тенденции. От една страна, непрекъснато нараства обемът на продажбите на софтуер. Само в областта на корпоративния софтуер, например, обемът на продажбите за 2006 г. според данни на Forester Research (цитирани в статия на специализираното списание за анализи в областта на производството и разпространението на софтуер CIO [1]) е на стойност около 50 милиарда долара. В споменатите по-горе данни не са включени много други, големи и перспективни, пазарни сегменти като базовият софтуер, софтуерът за домашна употреба и други програмни приложения. Ако добавим и тези области, можем да кажем, че в световен мащаб необходимостта от разработване на софтуер не само не намалява с годините, а бележи сериозен ръст.
Тази трайна тенденция влиза, от друга страна, в остро противоречие с нарастващия с всяка изминала година недостиг на специалисти в областта на Информационните и комуникационни технологии (ИКТ). Според една оценка на известния специалист от Intel - проф. Марк Харис, през 2008 година, само на пазара на труда в страните от европейския съюз, недостигът на специалисти в областта на ИКТ (не само програмисти, разбира се, а специалисти от всички категории) ще бъде от порядъка на 1 милион души [2]. При условие, че двете тенденции се запазят, острият недостиг на кадри ще се отрази неблагоприятно върху обезпечаване на бизнеса с необходимия за ефективното му функциониране софтуер и това неизбежно ще окаже своето отрицателно влияние върху развитието на икономическите субекти - у нас, в Европа и в целия свят (склонни сме да твърдим, че такова неблагоприятно развитие вече се чувства).
Не е мястото тук да обсъждаме възможностите на институциите, занимаващи се с подготовката на кадри в областта на ИКТ и качеството на тяхната продукция. Проблемите в тази област са добре известни и обществото непременно ще намери съответните решения в недалечно бъдеще. Но каквито и мерки да бъдат взети, сигурно е едно: на многобройните позиции в дейностите по производството, внедряването и експлоатацията на софтуерни продукти, в обозримото бъдеще, ще се трудят специалисти с най-различно ниво на квалификация - от супер квалифицирани аналитици и разработчици на сложен софтуер, до редови потребители, с елементарни познания за работата с компютър и приложен софтуер.
Третата тенденция, на която си струва да се обърне внимание, е голямото разнообразие от икономически субекти, които са потенциални клиенти на софтуер. Освен по размерите си, потребителите на софтуер се различават съществено по предмета си на дейност, по степента на централизираност, по законодателната среда, в която оперират и по много други свои характеристики. Абсурдно е да се мисли, че е възможно с неголям брой стандартни софтуерни решения да се покрият разнообразните нужди на различните клиенти, нито че е възможно да се изработят някакви типови технологични решения, чрез следване на които клиентите да могат да решат проблемите си - с наличния на пазара софтуер и с екипа от специалисти, които могат да си позволят.
При това положение ще се окаже, че голяма част от икономическите субекти не разполагат с адекватни на нуждите си софтуерни решения. Нещо повече, някои от тях дори не подозират, че решенията, които използват не са адекватни. Съществуващите разработки в областта са насочени главно към големите софтуерни компании. Те изискват значителен финансов, времеви и човешки ресурс, дори когато става дума за реализирането на по-опростени софтуерни системи. Необходимостта от изключително висококвалифицирани специалисти - проектанти, програмисти е неизбежна. Това води до големи разходи от страна на фирмата-разработчик, а от там и до по-некачествени решения. В същото време невъзможността на по-малките софтуерни екипи да участват в големи и добре финансирани проекти води до липса на конкуренция. Това от своя страна води в голяма степен до монополизиране на софтуерния пазар и всички следващи от това негативи.
При сега съществуващия пазар със силно обвързване на предлаганите продукти на ниво ОС или използван инструментариум, голяма част от средствата предназначени за разработване и внедряване на ИКТ отиват за заплащане на задължителните лицензи за използваната ОС и инструментариум. Според официални данни на германското правителство, в последните няколко години за лицензи за продукти на Microsoft германската държава и бизнес харчат между 4 и 5 милиарда евро годишно.
Изход от ситуацията може да бъде намерен чрез формулирането и доказването на състоятелността на принципно различни, иновативни, подходи към процесите на разработване и предлагане на софтуерни решения за бизнеса, които разчупват съществуващите рамки и внасят гъвкавост и ефективност, каквито съществуващите решения нямат. В този смисъл предложената идея би довела както до чисто научни резултати, свързани с моделиране на процесите на разработка и предлагане на софтуер, така и до практически резултати с голям икономически ефект - възможността за навлизане на по-малки компании (паралелно с големите софтуерни фирми) на пазара на софтуерни проекти, повишаване на конкуренцията и от там - увеличаване на възможностите на икономическите субекти да получат необходимият им софтуер на приемлива цена. Предлаганата от нас технология би позволила на много по-малко на брой и много по-ниско квалифицирани специалисти в значително по-кратки срокове да разработят качествени уеб-приложения.
За обосновка на идеята са използвани фундаментални постановки от теорията на Софтуерните технологии, обзорни и аналитични статии от специализирания периодичен печат (вж. списъка) и собствен опит (за който ще стане дума по-долу).
За разлика от съществуващите до момента, нашият нов МРПС и имплементиращата го платформа ще дадат възможност на нашите потребители (разработчици) да разработват уеб приложения използвайки добре познати/удобни за тях технологии, инструменти и езици за програмиране без да ограничава техния избор като им дава в допълнение мощни средства за ускоряване и доколкото е възможно автоматизиране на процеса.
За да покажем иновативността на един такъв подход, нека разгледаме накратко съществуващите в момента модели за разработване и предлагане на софтуер (МРПС).
Основни характеристики, които определят ефективността на внедряването на едно или друго софтуерно решение, и с помощта на които можем да оценим качествата на един МРПС са следните:
- Характерът на икономическия субект, където ще се извърши внедряването - колко работни места ще бъдат създадени, еднотипни ли са различните работни места или всяко от тях има своя специфика, спецификата на работните места статична ли е или се мени динамично във времето, необходимо ли е да съществува единна база от данни или всяко работно място (или група от работни места) събира, натрупва и обработва специфични данни и т.н.
- Какъв е характерът на решението - интегрирано (единна система, разработена на общи принципи и осигуряваща разнообразните дейности) или дезинтегрирано (състоящо се от отделни специфични подрешения, на които може да се наложи да комуникират помежду си);
- С какъв инструментариум (операционна система, език за програмиране, стандарти за съхранение и поддържане на данните, мрежово осигуряване и т.н.) се реализира приложението. Съществуващите платформи съдържат както привлекателни черти, така и недостатъци. Но основният им недостатък е, че почти винаги са силно обвързващи. Всеки опит за избягване на някой забелязан в последствие недостатък на платформата може да доведе до скъпо струващ реинженеринг на решението;
- Каква е цената, която субектът може да си позволи да вложи в закупуването/разработването и внедряване на софтуерно решение - доказано е (вж. например [3]), че след преминаване над един определен обем, ефективността на инвестицията в софтуер започва да пада, стигайки дори до загуби, като за субектите от различни сфери кривата е различна;
- Какъв е срокът, в който съответното софтуерно решение трябва да влезе в експлоатация - може да се окаже, че ако решението се разработва и внедрява твърде дълго, в момента в който е готово за експлоатация то е вече неадекватно;
- Как е организиран и с какви специалисти е обезпечен ИТ отделът на субекта (ако изобщо има такъв отдел) - много малко субекти могат да си позволят поддържането на голям ИТ отдел, с всички необходими за изграждане на собствени приложения специалисти - анализатори, дизайнери, програмисти, тестери и специалисти по поддръжка и експлоатация на приложенията.
Доколко широко разпространените МРПС могат да отговорят на разнообразието от предизвикателства, пред които клиентите ще ги поставят? Един от най-популярните МРПС, поради липса на общоустановено име да го наречем “готово решение”, безусловно има предимствата на сравнително краткото време за внедряване и не големи претенции към кадрите, с които разполага клиентът. Този модел може да предложи както центарлизирани, така и децентрализирани решения. Той обаче налага на клиента всички принципи, заложени в “готовото решение”, предопределя характера на работните места и най-често не позволява да бъде отразена нито една от спецификите на клиента. Освен това “готовите решения” често страдат от ненужна универсалност (тъй като се опитват да покрият голям кръг клиенти) и имат неприемлива цена. Поддържането на такова решение става изцяло според вижданията на разработчика - той ще доработи и измени само тази функционалност, която намери за необходимо.
По-благоприятен, от разпространените МРПС, за отразяване спецификите на клиента е моделът “по заявка” (Application Service Provider или On Demand). Времето от възникване на необходимостта, до пускането в експлоатация на едно решение “по заявка”, обаче, най-често е неприемливо голямо. Освен това, поради факта, че се разработват според специфичните изисквания на клиента решенията “по заявка” може да са доста по-скъпи. Естествено, че всяко изменение е предмет на нова “заявка” и трябва да бъде платено - често на цена доближаваща, а понякога и надвишаваща цената на основната разработка. Само много големи субекти могат да си позволят поддържане на собствено звено за изпълнение на “заявки”, но дори в този случай, поради споменатата по-горе тенденция за недостиг на кадри в областта на ИКТ, ефективността на решението може да бъде доста ниска. Системите по принцип са “затворени” и не са уеб-базирани, затова внасянето на изменения, осигуряване на динамично менящи се данни и поддръжката им от доставчика е силно затруднена. Предлаганата идея би позволила такива системи да се сглобяват от силно типизирани елементи, комбинирани според желанието на участника, да са уеб-базирани и да позволяват лесна замяна на типизираните елементи с нови, по-ефективни и с по-добра функционалност. По принцип, корпоративния софтуер се състои от силно интегрирани решения (ERP или Enterprise Resource Planning), и независимо дали е “готово решение” или “по заявка”, залага на разработките на много големите софтуерни компании. В същото време някои анализи (виж, например, [6]) показват доста противоречива картина използването на ERP. Ето един цитат от споменатата статия: “…Не са единични случаите, когато от реализацията на ERP проекта няма никаква полза. Мениджмънтът продължава да бъде недоволен от качеството на информационното осигуряване, усилията за изпълнение на рутинни операции ни най-малко не са редуцирани, никакви недостатъци на предишната бизнес практика не са отстранени. Компанията продължава да търпи загуби от презапасяване, нарушения в доставките и т.н. Да не говорим, че понякога проектираната ERP система е толкова сложна и неадекватна на задачите на компанията, че въобще не се използва. Според някои статистики, по-малко от 50% от внедряванията на ERP в САЩ и Западна Европа са безспорно успешни….” И това при условие, че обемът на продажбите на ERP системи за 2006 г. се оценява на внушителните 21 милиарда долара. Склонни сме да предположим, че в споменатите по-горе негативни 50% от внедряванията би било много по-добре да се приложи решение, съответно на предлагания от нас нов модел.
Една възможност за избягване на недостатъците на класическите МРПС е да се търсят нови моделни решения. В последните години се правят много сериозни опити в тази област. През 2000/2001 години започва да циркулира идея за нов модел, наричан Software as a Service или SaaS (за автор на идеята се счита Tim O’Reilly и тя може да сe види от текста му “Open Source Paradigm Shift” [4], а поддръжници са фирми като WebEx Communications и Remote Business). Въпреки някои свои положителни черти, за изминалите 6-7 години от съществуването си моделът е подложен на доста критики и са определени редица негови черти, които трябва да бъдат преосмислени.
В основната си част, повечето от новите идеи за МРПС се родеят с популярното движение за “Отворен код” (Open Source Paradigm). Изключително примамливата възможност да бъде освободен крайният потребител от “зависимостите”, на които бива подлаган от големите производители и господстващите платформи обаче, има и сериозен недостатък - не е много ясно как може да се осигури финансов ресурс за покриване на многобройните нужди само със софтуер с отворен код. Очевидно е, че това не може да стане с доброволния труд на малък брой ентусиазирани привърженици на идеята.
В областта на моделирането нашата разработка е най-близко до модела “ориентирана към услуги архитектура” (Service-oriented Architecture или SOA, вж. [5]). Както в повечето случаи обаче, дори теоретично добре обоснован модел, рядко се съпровожда от съответна софтуерна платформа, която да позволява с лекота да се реализират теоретичните постановки на модела. Както може да се види от цитирания по-горе материал, много производители (например Oracle) се опитват да “приспособят” съществуващите си платформи към полезната моделна идея, но това може да стане само с цената на компромиси.
Иновативната същност на нашата идея е в разработването на изцяло нова платформа, отразяваща принципите на един модерен, мощен и отговарящ на съвременните тенденции модел, която да бъде приложима за изграждане на ефективни уеб-решения:
- Независимо от вида на клиента, за когото е предназначено решението;
- Независимо от характера на решението;
- С инструментариума, който клиентът желае и може да си позволи;
- На цената, която клиентът може да си позволи;
- Независимо от квалификацията на екипа от специалисти, с които клиентът разполага.
Проведените от нас изследвания в областта показаха, че на световния пазар не са налични подобни продукти. Това ни провокира да търсим начини за увеличаване на ефективността и производителността в процеса на проектиране и разработка на софтуерни системи. Проучванията ни показаха, че наличните технологии не отговарят изцяло на описаните по-горе изисквания. Множеството разработени технологии са насочени към решаването на тесен кръг конкретни задачи:
- HTML например е технология предназначена единствено за визуалното представяне на дадено приложение, а не за машината зад него;
- PHP/Perl/Java от своя страна са подходящи за реализацията на логиката на приложението, но е изключително трудно чрез тях да се направи подходящ и удобен интерфейс;
- Системите за управление на Бази Данни от своя страна се грижат за качественото съхранение и управление на данните, но за работата с тях са нужни сериозни познания по SQL;
- Съществуват много други примери за технологични решения, чиито възможности припокриват упоменатите дотук технологии, но продуктите които ги обединяват често са неефективни, ограничаващи в дадена платформа и разбира се много скъпи.
Софтуерният пазар трудно би могъл да бъде ограничен до национален или европейски, той е по-скоро световен (въпреки че, голяма част от фирмите работещи в тази сфера са американски, а платформи от подобен характер има единствено от американски производители - Borland, Microsoft, Sun и т.н.). В този смисъл предложеният иновативен модел и имплементиращата го платформа представляват иновация на световно ниво. Тя ще бъде изключително полезна за икономика, съставена в голямата си част от малки и средни субекти, силно нуждаещи се от софтуер, с който да подобрят производителността си и не разполагащи с достатъчно ресурс да си го осигурят при сега действащото статукво!
Цитирани източници: http://computationalsystems.net/projects/iws/sources