Wednesday, November 17, 2004

А защо agile методите стават все по-популярни

Agile според мен е своеобразна еволюция на методите за производство на software(sw за краткост). Класическия подход - waterfall, както и най-популярния cod'n'fix се провалят ден след ден с гръм и трясък. Жалко че няма истински добри статистики които да докажат провалите изцяло (или поне аз не знам такива), но има доста опити и всички стигат до почти едни и същи заключения - повечето проекти са и overbudget и overtime и масово се стига до burn-out на програмистите; масово клиента не знае какво иска, и си променя мнението и идеите час през час и т.н. И много от излседванията доказват също че провалите най-малко се дължат на чисто технически проблеми или пък че провала може да се избегне с много extrawork. Изобщо не бих искал пък да засягам качеството на sw, положението с него е просто трагично.
Явно че класическите подходи не вършат добра работа и трябва да се търсят нови в които да е заложена максимална гъвкавост по отношение на промените на заданието, добро качество, по-малко extrawork. Е, както знаем няма нищо ново под слънцето, затова хората който са търсели подобни методи са ги взаимствали от други видове бизнес и понеже най-разпостранената аналогия е с произдостводството, от там са дошли и идеите за Agile. За тези които се интересуват повече накрая има няколко линка, но е достатъчно да пуснете "lean manifacturing" в Google.
Ще ми се да зачекна и друг върпрос тук - производството на sw като research & development процес, а не като производствен процес. Пак за тези които се интересуват ще има линкове най-накрая. Ами в подобен процес (R&D) грешките са нещо нормално, да не кажа че дори са нещо добро - те ни "отрязват" грешните пътища и ни водят в "правилната" посока. Обаче грешките са най-различни: клиента грешно е формулирал нещо, програмиста грсшно е интерпретирал дадено изречение или където не му е ясно е заложил собственото си разбиране за дадения проблем (независимо че може хал хабер да си няма от него), грешно е написал някакъв код и т.н. Освен това при R&D постоянно се правят опити за да се докаже достоверноста на вече изграденото - а в повечето sw проекти опитите са чисто визуални и само концентрирани върху текущия проблем върху който работи програмиста - т.е. ние масово правим debugging и тестове на око. Но де факто истинския тест е този на клиента - ако той може да работи, удобно му е, успешно решава проблемите си, теста е ок. Само че при R&D тестовете се правят максимално често с цел евентуалните проблеми да се открият колкото се може по-бързо т.е. търси се максимално кратък срок обратна връзка. Е, в Agile това е един от основните принципи, доведен до кайност в XP - кратък цикъл на разработка с цел продукта максимално бързо да се озове в ръцете на клиента и да има максимално бърз feedback.
Е дано малко съм позапалил любопитсвтото ви и току виж поне сте отворили линковете тук:
за Agile: www.agilemanifesto.org, www.agilemodeling.com
за sw като R&D: What is Software Design?
за lean sw development: www.poppendieck.com
А ако знаете други web sites на тези теми - моля, пуснете коментар.

1 Comments:

Blogger Ruslan Trifonov said...

Темата е яка и поздравления за този блог. Само една незначителна забележка - линковете www.agilemanifesto.org, www.agilemodeling.com са относителни спрямо http://www.blogger.com/app
... макар че преподлагам това няма да затрудни множеството фенове на agile методите у нас :)

12:09 PM  

Post a Comment

<< Home