Колко струва разработването на софтуер по поръчка?

Колко струва разработването на софтуер по поръчка?

 

Софтуер по поръчка или готов софтуер? Този въпрос много често си задават фирмите, когато са изправени пред необходимостта от внедряване на информационна система, която да обслужва и подпомага дейността им. Актуалността на проблема е в основата на тази статия, в която ще говорим за процеса по разработване на информационни системи.

Няма съмнение, че по-добрият вариант е разработване на продукт, който да отговаря изцяло на изискванията и да обхваща само неща, които са важни, без да има излишни функционалности, които пречат. За такъв избор решението е софтуер по поръчка. Тази необходимост обаче изисква много сериозна подготовка, която включва анализиране на всички процеси и създаване на подробно и точно задание. От значение е всички да са наясно, че за проектирането, създаването и внедряването на поръчков софтуер е необходим голям ресурс както от време, така и от средства.

Всички тези фактори трябва да бъдат внимателно обмислени. Едва след анализа им следва вземането на крайно решение.

Възможно е да се окаже, че в някои случаи по-добрият вариант е избор на готов продукт. Всичко зависи от това дали можете да си позволите сериозна инвестиция и дали имате търпение да изчакате необходимото време за създаването и внедряването на продукта.

Информационни системи, които могат да бъдат разработени по поръчка, най-просто се категоризират като малки, средни и големи. Подходът за разработването и на трите типа е един и същ, различни са само времето за изпълнение и ресурсите.

 

Софтуер по поръчка

По време на създаването на софтуер по поръчка активно се включват и двете страни. От едната страна е фирмата разработчик на софтуерни продукти, а от другата - фирмата, която ще ползва софтуерния продукт. Много са факторите, които определят цената. Един от тях зависи от това дали софтуерът ще се използва само и единствено от клиента и дали той ще е собственик на правата за евентуалното му разпространение в бъдеще време. Тази тема ще засегнем малко по-нататък.

За създаването на софтуер по поръчка клиентът трябва да опише и да обясни точно от какво има необходимост, какви процеси трябва да бъдат обхванати и какви очаквания има от гледна точка на анализи и резултати. Трябва също така да обясни структурата и функционирането на организацията, която е създал без използването на софтуер, както и да опише какви промени според него ще настъпят в нея след внедряване на продукта.

Най-просто казано, клиентът дава условието на задачата, а програмистите намират решението. Както и в математиката, така и тук, една задача може да има едно единствено или няколко решения. Хубавото е, че информационните технологии днес предлагат много възможности. Благодарение на това след подробен анализ софтуерните разработчици могат да предложат няколко решения, от които да се избере най-подходящото.

Неминуемо създаването и внедряването на софтуер, независимо от това дали той е по поръчка или е готов, ще доведат до промяна на организацията. Каква точно да бъде тя, могат да предложат проектантите на софтуерния продукт. Това не трябва да притеснява фирмата клиент, а трябва да я наведе на мисълта, че нещата ще се изпипат добре. Когато се наблюдава такова желание за експертиза и за даване на предложения от страна на софтуерните специалисти, става ясно, че те искат да направят нещо, което наистина да свърши работа. В противен случай, нещата се свеждат предимно до комерсиализиране на услугата. При такава ситуация клиентът също може да допусне грешка, ако не успее да преодолее гордостта си и ако не разбере, че приказката „Който плаща, той поръчва“ не е валидна в такива случаи. Такъв тип отношение може да накара фирмата разработчик да си „върже гащите“, а това няма да е в полза нито за едната, нито за другата страна. Затова е добре клиентът да преглътне гордостта си и да се опита внимателно да вникнете в препоръките на специалистите.

Важен елемент, който трябва задължително да се има пред вид, е това, че една успешно внедрена информационна система се характеризира с времево ограничен живот. Важно е да се отбележи, че през целия период на нейното съществуване тя се нуждае от поддръжка и осъвременяване. Този процес не може да бъде пренебрегван и пропускан. В противен случай, се стига до неефективност, която неминуемо води до загуба на време и ресурси.

 

Начини за реализиране

По какъв начин може да бъде реализирано разработването на софтуер по поръчка?

Вариантите са няколко. Клиентът е човекът, който избира най-подходящият.

С най-често използваните подходи в сферата можете да се запознаете от следващите редове:

 

  • Наемане на софтуерна фирма

Този подход е най-разпространен при клиентски фирми, които нямат самостоятелен IT отдел с екип от програмисти и системни администратори. В такива случаи се ангажира външна за организацията софтуерна фирма, която разработва софтуера по поръчка. Предимствата на този подход са в това, че софтуерните фирми обикновено имат голям опит и разполагат с необходимите специалисти, които са достатъчно компетентни, за да разработят успешно продукта. Недостатъците се изразяват най-вече в това, че избраната фирма не работи само за един клиент. Следствие от този факт е равносметката, че отделеното внимание в началото ще бъде по-голямо спрямо това в бъдеще, което ще бъде редуцирано до необходимия минимум. Така развитието и поддръжката на системата автоматично придобиват характеристиките на по-тромав процес. В зависимост от категорията на информационната система (малка, средна или голяма) трябва добре да се прецени дали видът й позволява развитието й да протича с по-бавни темпове. Фактът, че времето, което фирмата може да отдели за поддръжка и развитие е ограничено, това, че цената на услугата ще бъде по-ниска.

Не трябва да се пренебрегва и това, че за да протичат по-лесно процесите по проектиране, създаване, внедряване и развитие на софтуера по поръчка, е необходимо фирмата клиент да избере лице за връзка със софтуерната компания, което да е достатъчно компетентно в областта на информационните технологии. Най-добре това да бъде IT специалист.

От значение при избора на външна фирма е и фактът, че тя ще трябва да планира и „разтегля“ във времето нанасянето на корекции в софтуерния продукт с цел добавяне на нови функции. В случай, че това не е проблем, този подход е добро решение.

 

  • Наемане на екип от програмист:

Когато вие като купувач имате намерение софтуерният продукт да се разработва само за вас и да се използва за организиране само на вашия бизнес, най-доброто решение е създаването на екип от софтуерни специалисти, които да работят, развиват и поддържат проекта. Това удоволствие е скъпо, но пък е най-удобният вариант. Той също има предимства и недостатъци, които купувачът трябва да познава. Основното предимство се състои е, че екипът ще се концентрира върху създаването на конкретния продукт, което ще доведе до по-лесно общуване с потребителите. Фактът предполага създаването на детайлно и точно задание, след изпълнението на което всички изисквания ще бъдат удовлетворени.

Този метод за създаване на софтуер по поръчка е предпочитан предимно от големи корпорации, тъй като при тях постоянно има необходимост от създаване на допълнителни модули, а крайната цел е създаването на пакет от софтуерни продукти, които са взаимно свързани и интегрирани в една система, така наречена ERP система, разработена специално за организацията.

Недостатъците, ако могат да бъдат наречени така, са свързани с това, че човешкият ресурс в лицето на програмистите, е скъп ресурс. Пазарът на труда в тази сфера е много динамичен и отделните софтуерни корпорации предлагат все по-добро заплащане и по-добри условия на труд. Това предполага възможността за текучество на състава в екипа от програмисти, което значително забавя процеса по създаване на софтуерни продукти. Именно тази особеност допринася за високата цена на това решение. В случай, че изберете да формирате и назначите екип от софтуерни специалисти, трябва да притежавате добри управленски умения, за да може да го задържите.

 

Процесът по разработване и внедряване е дълъг!

Въоръжете се с търпение! Без значение дали ще се избере външна фирма или ще формирате собствен екип, процесът по създаване на информационна система е дълъг. Основните етапите на разработване са: анализиране, проектиране, изработване, тестване и внедряване. Всеки един от тях изисква време и внимание. Колкото повече се пришпорва процеса, толкова по-вероятно е крайният срок за внедряване да бъде удължен, при това за сметка на качеството на услугата.

За малка и средно голяма система приблизителният срок за изработване е от 6 месеца до година. Това е времето, необходимо за стартиране на първоначалния вариант на софтуерния продукт, изработен по заданието, което е съставено и следвано стъпка по стъпка. Много важен елемент е процесът по внедряване. За него е необходимо да се създаде добра организация, за да може персоналът да бъде запознат и обучен да работи с разработените модули на софтуерния продукт. В момента на внедряване възникват много въпроси и идеи за подобряване на функционалността, но те не трябва да спират процеса. Новите предложения трябва да се вземат предвид, но на тях трябва да се гледа като на обект на поддръжката, а не на процеса по внедряване, тъй като така той няма да приключи никога! Клиент, който смята, че след крайния срок ще получи изцяло завършен продукт без никакви забележки, който веднага ще започне да функционира перфектно, гради вижданията си върху утопична представа за идеалния софтуер по поръчка.

Важно изискване е процесът по внедряване и работата със софтуерния продукт в началния му несъвършен вид да стартират възможно най-бързо, тъй като по време на ползването му започват неговото развитие и усъвършенстване.

Много често точно поради тази представа, че всичко трябва да бъде перфектно още от самото начало, етапът по внедряване се забавя, а след това прекъсва и софтуерът не може да бъде внедрен и използван. По този начин се губят всички вложени времеви и парични ресурси.

 

Как се определя цената?

Основният принцип, по който се определя цената, е времевата оценка на труда на специалистите. При фиксирана цена за час работа се изчислява общата стойност на изработеното време. Калкулирането се описва подробно както в офертата, така и в спецификацията, съдържаща всички функционалности на софтуерния продукт, които трябва да бъдат разработени. Съществуват и други фактори, които също са много важни за определяне цената на крайния продукт. От значение например е дали клиентът има намерение да използва софтуера по поръчка само за себе си или правата за развитие на продукта ще са в ръцете на софтуерната фирма. Разликата в цената в двата случая е значителна.

 

Софтуер за масово предлагане

В този случай фирмата разработчик определя по-ниска оценка. В нея не се включват опции за предаване на правата върху програмния код на софтуерния продукт, неговото разпространение и ползването му от други клиенти. Фирмата разработчик проектира продукта така, че той да може да бъде използван и от други клиенти.

При разработване на софтуер по поръчка в програмния код се използва огромен набор от решения, логика и технологии, които програмистите с години са изследвали, тествали и утвърдили за използване. Това ноу-хау и целият труд по изработването и използването на тези технологиите при този вариант не се калкулират в цената. Именно това прави този подход за разработване на софтуер по поръчка значително по-евтин.

Пример за използването на такъв подход е една малка информационна система, за която са необходими приблизително около 200 часа при цена на час от 30 EUR. Ясно е, че общата стойност на процесите по разработване и внедряване е 6000 EUR.

 

Собствена разработка за лично ползване

Когато клиентът има намерение да използва софтуерния продукт само за себе, или в случай, че го предоставя на друг, но той участва в контролирането на процеса по продажба, в цената се включва паричното измерение на цялото ноу-хау на фирмата разработчик, което е натрупано с времето. Така стойността на услугата се покачва многократно.

Ако вземем отново за пример разработването на малка информационна система, която оценка като часове е около 200 часа при условие за предоставяне на правата върху софтуера, цената може да варира между 50 000 EUR и 200 000 EUR.

В този случай софтуерният продукт става собственост на фирмата клиент, която го поръчва. Ангажиментът по осъвременяване и развитие също се поемат от фирмата клиент, чието задължение е организирането на екип за поддръжка и развитие на софтуера.

 

Обещания за намиране на клиенти

Обещанията за намиране на клиенти и твърденията, че дадена функционалност или процесът по създаване на продукт ще бъдат много интересно и полезно преживяване, не могат да намалят цената на услугата. Колкото и да е ценна дадена разработка, маркетингът не се извършва от клиента, който поръчва, а от софтуерната фирма.

В случай, че клиентът е убеден в успеха на продукта, който според него ще му гарантира големи печалби, най-удобният за него вариант е разработването на собствен продукт, който лесно ще възвърне инвестираните средства на собственика си.

 

Избор на готов софтуерен продукт

Готовият софтуерен продукт е собственост на нейния създател. Това е или физическо, или юридическо лице, зад което стои един програмист или екип от IT специалисти и програмисти. За създаването на такъв продукт се влагат много усилия, а процесът до изкарването на бета версия може да отнеме между две и три години. Едва след това започва постоянното усъвършенстване на процеса, който не спира, докато производителят не обяви прекратяването на поддръжката на конкретна версия.

Готовите софтуерни продукти се създават с цел масовото приложение и достъпност. Колкото повече клиенти могат да използват софтуера, толкова по-доволни са производителят и неговите клиенти. Именно поради тази причина продуктът се проектира така, че в него се включват възможно най-много възможности и функции, които удовлетворяват голяма част от изискванията на потребителите.

При внедряване на готов софтуер клиентът трябва да се съобрази със заложената логика и предоставените функции в него, което често налага промяна на организацията на работа. Изборът на готов софтуерен продукт е по-често срещано явление, отколкото разработването на софтуер по поръчка. Основната причина е разликата в цената, която е значителна.

Колкото и вградени функции да има в готовия софтуерен продукт, винаги може да има нещо, което липсва и е необходимо да се добави. Това е нормално и не е нещо притеснително, тъй като всяка фирма извършва собствени специфични дейности, които не могат да бъдат изцяло предвидени. Важното при избора на готов софтуерен продукт да има опция за добавяне на допълнителни разработки по поръчка на клиента. Оказва се, че удачен вариант е да се използва готов софтуерен продукт, към който да се добавят допълнителни функции. В този случай крайната цена може да бъде значително по-ниска от тази при създаването на поръчков софтуер. Цената за разработването и внедряването на новите функционалности се определя, както при софтуера по поръчка. Съставя се задание, оценява се сложността и времето, което е необходимо за разработване на новите модули, след което се определят цената и сроковете за изработване.

 

Включване на функционалности, които да се ползват само от този, който поръчва продукта

В готовите софтуерни продукти не е възможно да се поддържат различни версии за всеки клиент, който си е поръчал нещо специфично, вградено като функционалност. В тези случаи принципът е солидарен. Освен нововъведения, които се планират и добавят от разработчиците, всичко което се поръчва като допълнителни доработки става достъпно за всички останали потребители. В случай, че клиентът държи само той да ползва всички доработки, поръчва създаването на нов софтуер с опция за придобиване на правата за ползване само и единствено от него самия.

По време на дългогодишната си практика, обвързана със създаването на информационни системи, стигнах до извода, че страхът на всеки, който не може да се пребори с чувството на притежание и с представата, че при този подход на солидарност на конкуренцията се предоставя нещо изключително, е неоснователен. В 90% от случаите поръчаните допълнителни модули и функции не се използват от другите клиенти. Много често те създават проблеми, които налагат разработването на функциите да се осъществява така, че да има възможност, при която да се включват и изключват, за да не са в тежест на останалите клиенти. Тези, които се използват в по-голяма степен, са по-скоро стандартни неща, които разработчиците все още не са успели да вградят в софтуера, но са планирали да бъдат добавят в новите версии.

 

Това не ми трябва и има много неща, които няма да ползвам

Когато се взима решение да се закупи и внедри готов софтуерен продукт, претенциите относно повечето функции, които клиентът често определя като „ненужни“, не водят до отстъпка от цената. В случай, че клиентът настоява да бъдат премахнати някои функционалности, ако това изобщо е възможно, води до необходимостта да се заплати допълнително и се третира като нанасяне на корекции по поръчка на клиента. Все пак готовият софтуер не може да бъде изцяло подобие на вашите представи, а е компромисен и по-евтин вариант. В случай, че клиентът има претенции и иска софтуерът да отговаря изцяло на изискванията му, то опцията е разработването на софтуер по поръчка.

Внедряването и изборът на софтуерен продукт са отговорен и труден процес. Необходимо е съобразяването с много фактори. Когато става въпрос за внедряване на голяма система, е необходимо да бъде отделено повече време за систематизиране и описване на нещата, от които клиентът има нужда, както и за споделяне на представата относно очакванията му.

Създаването на софтуер по поръчка е вариант, при който най-точно се покриват изискванията и очакванията, но само когато е съобразено с финансовите възможности и рентабилността на инвестицията.

 

В. Йорданов