top of page

Мотиви

Защо е написан този наръчник

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

 

Темата за изграждане е пренебрегната

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

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

 

Изграждането е важно

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

Изграждането на код обикновено съставлява около 65 процента от усилията при малки проекти и 50 процента – при средни. Изграждането се справя с около 75 процента от грешките при малки проекти и между 50 и 75 процента – при средни и големи. Всяка дейност, която се справя с 50 до 75 процента от грешките, представя ясна възможност за подобрение.

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

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

 

няма друга подобна книга

В светлината на очевидната важност на изграждането би се предположило, че вече има друга подобна книга за ефективните практики при изграждане. Необходимостта от такава книга е явна. Въпреки това се оказва, че преди настоящия наръчник има само няколко книги относно изграждането, и то само по части от темата. Някои от тях са писани преди повече от 15 години и използват относително езотерични езици като ALGOL, PL/I, Ratfor и Smalltalk. Други са писани от професори, които не са работили по производствен код. Професорите са писали за техники, които работят за студентски проекти, но често са напълно неприложими при проекти с голям обхват.

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

bottom of page