Vous êtes sur la page 1sur 172

I Jornada sobre Calidad del Producto Software e ISO

25000, Santiago de Compostela, 10 de junio de 201


Colexio Profesional de Enxeara en Informtica de Galicia
Coordinadores: Fernando Surez Lorenzo
Javier Garzs Parra


1







Santiago de Compostela, 10 de
junio de 2014
I Jornadas sobre Calidad
del Producto Software e
ISO 2000



2
Edita: 233 Grados de TI S.L
www.233gradosdeti.com

Coordinan: Fernando Surez Lorenzo
Javier Garzs arra


Co!a"oran:




#ise$o % &a'uetaci(n:
233 Grados de TI ) S.L

Santiago de Com*oste!a) 2+,-.
IS./: 01232-34,13+-+035



3




4
!ndice de contenidos
NDICE DE CONTENIDOS.................................................................................... 4
PRLOGO.......................................................................................................... 8
PRESENTACIN................................................................................................. 10
SOBRE LOS AUTORES ........................................................................................ 12
INTRODUCCIN ................................................................................................ 20
1. CALIDAD DEL PRODUCTO SOFTWARE, TU EMPRESA TENDR UN PROBLEMA
SI NO SE PREOCUPA POR ELLA. ................................................................. 23
,., L6 C6LI#6# #EL 78CES8.............................................................................. 23
,.2 L6 C6LI#6# #EL 78#9CT8 ........................................................................... 2-
,.3 L6 C6LI#6# #EL E:9I8 ;<8 E7S8/6S............................................................ 2-
,.- =:9> E7SECTI?6 #E C6LI#6# ES &@S I&87T6/TEA ....................................... 24
,.5 76B8/ES 87 L6S :9E L6 C6LI#6# #EL 78#9CT8 S8FTC67E #E.IE76 7E8C967TE
&9CD8 21
1.5.1 Calidad del producto no es lo mismo que testing............................... 27
1.5.2 La calidad del proceso no garantiza la calidad del producto.............. 28
1.5.3 CMMI no asegura un producto de calidad ......................................... 30
1.5.4 La mala calidad del producto siempre tiene un coste ........................ 30
1.5.5 l cliente puede detectar la mala calidad del producto so!t"are ...... 3#
1.5.# Las $uenas pr%cticas no aseguran calidad del producto.................... 3#
,.4 7EFE7E/CI6S .............................................................................................. 31
2. CERTIFICACIN CALIDAD DEL PRODUCTO SOFTWARE CON ISO 25000. ..... 44
2., SIT96CIE/ 6CT96L #E L6 C6LI#6# S8FTC67E................................................... --
2.2 L6 /87&6 IS8<IEC 25+++.......................................................................... -4


5
2.3 EST79CT976 #E L6 F6&ILI6 IS8<IEC 25+++.................................................... -4
2.- EC8SISTE&6 #E E?6L96CIE/ ; CE7TIFIC6CIE/ #EL 78#9CT8 S8FTC67E .............. -2
2.5 CE7TIFIC6CIE/ #EL 78#9CT8 S8FTC67E....................................................... 5+
2.4 6:C L6.: L6.876T87I8 6C7E#IT6#8 676 L6 E?6L96CIE/ #EL 78#9CT8
S8FTC67E............................................................................................................... 5,
2.#.1 Modelo de calidad del producto......................................................... 52
2.#.2 ntorno de e&aluaci'n del producto................................................... 54
2.1 78;ECT8 IL8T8 #E CE7TIFIC6CIE/ #EL 78#9CT8 S8FTC67E........................... 54
2.2 7EFE7E/CI6S .............................................................................................. 52
3. EL PAPEL UMANO EN LA CALIDAD DEL SOFTWARE. INTRODUCCIN....... !0
3., L6S E7S8/6S 8 L8S 78FESI8/6LES .............................................................. 4-
3.2 EL 7ES8/S6.LE #E C6LI#6#......................................................................... 41
3.3 :96LIT; C86CD. 9/ /9E?8 87#E/................................................................. 1,
3.- C8/CL9SI8/ES ........................................................................................... 14
3.5 7EFE7E/CI6S .............................................................................................. 10
4. BDD" UNIENDO NEGOCIO # PRUEBAS T$CNICAS PARA ME%ORAR LA CALIDAD
DEL SOFTWARE. ........................................................................................ 80
-., EL G76/ 78.LE&6 #EL S8FTC67E ................................................................ 2+
-.2 LE/G96JE 9.IC98 ....................................................................................... 23
-.3 .##......................................................................................................... 25
-.- GDE7FI/.................................................................................................... 24
-.5 C9C9&.E7................................................................................................. 20
4.5.1 (C'mo !unciona)................................................................................ 8*
-.4 =CE&8 I&LE&E/T67 9/ 78CES8 .##A...................................................... 0,
4.#.1 +e!inir los escenarios a desarrollar..................................................... *1
4.#.2 Crear tests autom%ticos que &aliden la !uncionalidad........................ *1
4.#.3 Crear un entorno de tra$a,o............................................................... *2
4.#.4 &oluci'n - adaptaci'n....................................................................... *2
-.1 C8/CL9SI8/ES ........................................................................................... 03


!
-.2 7EFE7E/CI6S .......................................................................................... 0-
5. LA CALIDAD DEL PRODUCTO DESDE LAS PRUEBAS # EN RENDIMIENTO..... &!
5., I/T78#9CCIE/ ........................................................................................... 04
5.2 ELE&E/T8S .@SIC8S.................................................................................... 01
5.3 L6S 79E.6S S8/ SI&9L6CIE/....................................................................... 01
5.- /ECESIT6&8S DE776&IE/T6S ....................................................................... 02
5.5 #EFI/I&8S 8.JETI?8S .................................................................................. 00
5.4 C8/ST79I&8S EL E/T87/8......................................................................... ,++
5.1 EGL8T6/#8 L6S 79E.6S #E 7E/#I&IE/T8 ................................................. ,+,
5.2 79E.6S #E C8&8/E/TES ........................................................................ ,+2
5.0 79E.6S #E 78FILI/G............................................................................... ,+3
5.,+ 79E.6S #E #I&E/SI8/6&IE/T8 ................................................................ ,+-
5.,, 79E.6S #E 7ESILIE/CI6 ............................................................................. ,+5
5.,2 79E.6S #E E?8L9CIE/.............................................................................. ,+4
!. MIDIENDO LA CALIDAD DE CDIGO EN WTF'MINUTO. E%EMPLOS DE CDIGO
REAL (UE PODRAN OCASIONARTE UN DERRAME CEREBRAL................... 108
4., L6 6/T8L8GH6 #EL #IS676TE...................................................................... ,+2
4.2 &E#I#6S #E C6LI#6# F87&6LES E I/F87&6LES. ............................................. ,+0
4.3 L6 I/IC6 &E#I#6 ?@LI#6 #E C6LI#6# #E CE#IG8: CTF<&I/........................... ,,+
4.- EJE&L8S ; C8/T76EJE&L8S 676 E?IT67 CTFS. ......................................... ,,2
#.4.1 Comentarios. .................................................................................... 113
#.4.2 .cepciones. ..................................................................................... 115
#.4.3 /om$rado......................................................................................... 11#
#.4.4 C'digo innecesario. .......................................................................... 117
4.5 &EJ876 #EL 78CES8 #E #ES6778LL8 ; 6SEG976&IE/T8 #E L6 C6LI#6# #E CE#IG8.
,,2
#.5.1 Cuando se mira la calidad s'lo al !inal. ............................................ 118
#.5.2 Integraci'n progresi&a de la calidad en el proceso .......................... 11*


)
). LA E*PERIENCIA DEL CORTE INGL$S EN LA GESTIN DE LA CALIDAD
SOFTWARE................................................................................................ 124
1., C6LI#6# #EL S8FTC67E.............................................................................. ,25
7.1.1 +imensiones de la Calidad del 0o!t"are........................................... 125
7.1.2 /ormati&as en el %m$ito mpresarial 12I3 ........................................ 127
7.1.3 (4u5 es un 6roducto)....................................................................... 127
7.1.4 Calidad.............................................................................................. 128
1.2 7EFE7E/CI6 E/ L6S 87G6/IB6CI8/ES 676 EL C8/T78L #E L6 C6LI#6#............... ,3+
1.3 @&.IT8 E&7ES67I6L................................................................................ ,3,
7.3.1 6lan de 7seguramiento de la Calidad............................................... 131
7.3.2 Modelos de desarrollo orientados a 6roducto8 Calidad Concertada 132
7.3.3 catalogaci'n de productos ............................................................... 132
7.3.4 6lan de Certi!icaci'n......................................................................... 134
7.3.5 9rupo de 4ualit- assurance 1473 ..................................................... 13#
1.- 69T8&6TIB6CIE/ #EL CICL8 #E ?I#6 #E #ES6778LL8..................................... ,31
7.4.1 Integraci'n Continua........................................................................ 138
7.4.2 ntrega Continua.............................................................................. 143
1.5 TECD/IC6L :96LIT; &6/6GE&E/T 7836CTI?8 ; C8/TI/98........................... ,--
1.4 7EFE7E/CI6S ............................................................................................ ,-4
8. +(U$ CALIDAD TIENE REALMENTE EL SOFTWARE, LA E*PERIENCIA DE
E-ALUAR LA CALIDAD DE 1000 PRO#ECTOS BA%O LA ISO 25000. .............. 14)
2., =87 :9> 6/6LIB67 L6 C6LI#6# #E ,+++ 78;ECT8S S8FTC67EA .................... ,-1
2.2 EL C6S8 #E EST9#I8................................................................................... ,5+
2.3 =CE&8 SE D6/ ELEGI#8 L8S 78;ECT8S 6/6LIB6#8SA.................................... ,5-
2.- 6/6LIB6/#8 L8S 7ES9LT6#8S ..................................................................... ,55
8.4.1 Carencias de calidad m%s repetidas entre los pro-ectos.................. 15#
8.4.2 :elaciones entre m5tricas................................................................. 15*
8.4.3 :elaci'n entre la comple,idad ciclom%tica - el c'digo repetido....... 1#2
2.5 7EFE7E/CI6S ............................................................................................ ,43


8
Pr"logo
La ca!idad de! soJtware es un as*ecto Jundamenta! a tener en cuenta *or !as
organizaciones 'ue desarro!!an % com*ran a*!icaciones inJormticas. E!
soJtware de"e Juncionar como se es*era) con un "uen rendimiento) con un
nive! adecuado de usa"i!idad) Jia"i!idad % seguridad. 6dems) se de"e *oder
evo!ucionar adecuadamente con e! *aso de! tem*o) enveKeciendo "ien
segLn se !e van Maciendo !as inevita"!es modiJicaciones *ara irse ada*tando
a nuevas rea!idades tNcnicas % de negocio. or L!timo de"e ser *orta"!e %
com*ati"!e con otros sistemas.
Son estas !as caracterOsticas 'ue se es*eran de un soJtware de ca!idade
segLn e! mode!o deJinido en !a serie de normas IS8 25+++. Esta norma es !a
es*ina dorsa! de !a temtica a tratar en este !i"ro e indica 'uN as*ectos se
de"en tener en cuenta *ara a!canzar un "uen nive! en cada una de esas
caracterOsticas.
Las em*resas % !as administraciones *L"!icas) asO como casi cua!'uier
organizaci(n a dOa de Mo%) son grandes consumidores de soJtware) tanto de!
MecMo a medida como de *rodutos comercia!es. or !o tanto) !a ca!idad de!
soJtware de"e ser un as*ecto re!evante *ara todas e!!as) inc!u%endo *or
su*uesto a !a Gunta de Ga!icia) entre otros motivos *or e! im*ortante
im*acto 'ue *uede !!egar a tener !a uti!izaci(n de soJtware de "aKa ca!idad)
en mucMos casos con re*ercusiones econ(micas re!evantes.
E! Co!ePio roJesiona! de EnPe$arOa en InJormtica de Ga!icia) en
co!a"oraci(n con !a 6mtega) organismo 'ue gestiona !a *o!Otica tecno!(gica


&
de !a Gunta de Ga!icia) a"ordar este tema en e! QForo *ara a ca!idade do
soJtwareR) 'ue tendr !ugar en Kunio de 2+,- en !a Cidade da Cu!tura de
Ga!icia. Este !i"ro resume e! contenido de !os re!atorios 'ue se !!evarn a
ca"o en este Joro) *or !o 'ue ser de gran interNs *ara todos !os agentes
invo!ucrados e interesados en e! desarro!!o de soJtware.

Mar 6ereira ;l&arez<
+irectora da 7.encia para a Modernizaci'n 2ecnol'.ica de 9alicia


10
Presentaci"n

La ca!idad de! soJtware es una *reocu*aci(n a !a 'ue se dedican cada vez
ma%or nLmero de recursos. Todo *ro%ecto inJormtico tiene como o"Ketivo
*roducir soJtware de !a meKor ca!idad *osi"!e) 'ue cum*!a) % si *uede
su*ere !as eP*ectativas de !os usuarios
6un'ue !a ca!idad de! soJtware es un conce*to re!ativamente reciente) son
mucMos !os esJuerzos desarro!!ados en este cam*o en !as L!timas dNcadas)
consiguiendo grandes avances % meKorar !a convergencia con !a ca!idad
tradiciona!.
La ca!idad de! *roducto) Kunto con !a ca!idad de! *roceso) son a!gunos de !os
as*ectos ms im*ortantes actua!mente en e! desarro!!o de SoJtware. #e
este modo) recientemente Ma a*arecido !a Jami!ia de normas IS8<IEC
25+++) re!acionada con !a ca!idad de! *roducto % 'ue *ro*orciona una guOa
*ara e! uso de !a nueva serie de estndares internaciona!es !!amada
7e'uisitos % Eva!uaci(n de Ca!idad de roductos de SoJtware.
6 su vez) IS8<IEC 25+++ constitu%e una serie de normas "asadas en IS8<IEC
0,24 % en IS8<IEC ,-502 cu%o o"Ketivo *rinci*a! es guiar e! desarro!!o de !os
*roductos de soJtware mediante !a es*eciJicaci(n de re'uisitos %
eva!uaci(n de caracterOsticas de ca!idad. Todas estas normas se recogern
en deta!!e en !a *resente *u"!icaci(n.


11
E! Co!ePio roJesiona! de EnPe$arOa en InJormtica de Ga!icia) cuenta entre
sus Jines con !a *romoci(n % Jomento de! *rogreso de !as actividades
*ro*ias de !a *roJesi(n) de !a investigaci(n) de! esta"!ecimiento % uso de
estndares. Fruto de este intento de meKora continua de! nive! de ca!idad
de !as *restaciones *roJesiona!es en su m"ito de actuaci(n) organiza e! QI
Foro *ara a Ca!idade do SoJtwareR
E! o"Ketivo de estas Kornadas es crear un Joro 'ue reLna toda !a inJormaci(n
re!ativa a !a meKora de !a ca!idad de! soJtware) con e! Jin de *ro*orcionar un
acercamiento a !as distintas Jami!ia de normas a *articu!ares % em*resas)
Jaci!itando !a o"tenci(n de inJormaci(n % eP*eriencias en !a materia tanto a
grandes em*resas como a micro*%mes interesadas en meKorar su *roducto
soJtware. ara e!!o contamos con !a *artici*aci(n de destacados eP*ertos
en !a materia) cu%as a*ortaciones se recogen a modo de resumen en e!
*resente !i"ro.
#esde e! CEIG 'ueremos agradecer a !a 6&TEG6 su esJuerzo % a*o%o en
esta iniciativa 'ue entendemos de gran va!or *ara meKorar !a conJianza en
!os medios e!ectr(nicos e inJormticos %) *or consiguiente) *ara e!
desarro!!o de !a Sociedad de !a InJormaci(n en nuestro *aOs.

=ernando 0u%rez Lorenzo
6residente del Cole.io 6ro!esional de n.e>ar?a en In!orm%tica de 9alicia


12
Sobre los #utores
%A-IER GAR.S PARRA
Kavier.garzasSurKc.es
twitter: SKgarzas
we": www.Kaviergarzas.com
Curs( estudios *ostdoctora!es % Jue investigador invitado en !a 9niversidad
Carnegie &e!!on Titts"urgM) EE.99U. #octor TM.#.U Tcum !aude *or
unanimidadU e Ingeniero en InJormtica T*remio ePtraordinarioU.
6ctua!mente tra"aKa en F%"e!e % es *roJesor en !a 9niversidad 7e% Juan
Car!os. osee una eP*eriencia de ms de ,5 a$os) tra"aKando *ara ms de
2+ organizaciones.
Edita e! "!og www.Kaviergarzas.com con ms de 4 a$os % ms de 0++ *ost.
Scrum &aster certiJicado *or JeJJ SutMer!and T'uien cre( ScrumU.
6dems) cuenta con certiJicaciones de 6uditor JeJe de TICs TCa!iJicado *or
6E/87U *ara IS8 ,55+- SICE V IS8 ,22+1) 6uditor IS8 2++++ *or ITS&F)
es*ecia!izaci(n en Enter*rise 6**!ication Integration T*remiado *or
ricewaterMouseco*ersU) CIS6 TCertiJied InJormation S%stems 6uditorU)
CGEIT TCertiJied in tMe Governance oJ Enter*rise ITU % C7ISC TCertiJied in
7isW and InJormation S%stems Contro!U *or !a IS6C6) CS:E TSoJtware :ua!it%
Engineer CertiJicationU *or !a 6S: T6merican Societ% Jor :ua!it%U)


13
Introduction C&&I3#ev % 6c'uisition Su**!ement Jor C&&I v,.2 TC&&I3
6C:U e ITIL ?3 Foundation.
Da tra"aKado en) o *ara) ms de 2+ organizaciones como I/#ITEG)
TELEFE/IC6 &E?ILES) I/#76) 7E/FE) #I7ECCIE/ GE/E76L #E T7@FIC8
T#GTU) &I/ISTE7I8 #E 6#&I/IST76CI8/ES I.LIC6S T&6U) SISTE&6S
T>C/IC8S #E L8TE7H6S TSTLU) 6E/87) SIE&E/S) I/F87&@TIC6 #E L6
C8&9/I#6# #E &6#7I# TIC&U) EL &9/#8) ..?6) 8C6S8) etc.
Comenz( su carrera *roJesiona! como consu!tor senior % res*onsa"!e de!
centro de com*etencias en ingenierOa de! soJtware de 6LT76/) desde
donde *artici*a en *ro%ectos *ara TELEFE/IC6 &E?ILES C87876CIE/)
I/#76 trJico aNreo o en !a automatizaci(n de !a simu!aci(n de !a rotativa
de EL &9/#8. &s tarde Jue res*onsa"!e de ca!idad soJtware % de
*ro%ectos de mCE/T7IC. osteriormente) #I7ECT87 EJEC9TI?8 ; #E
I/F87&@TIC6 de !a em*resa de desarro!!o de E7s *ara !a gesti(n
universitaria con ma%or nLmero de c!ientes en Es*a$a.
EP*erto en gesti(n % direcci(n de de*artamentos % J"ricas soJtware
Trea!izando im*!antaciones de J"ricas % meKoras en Es*a$a) Co!om"ia)
CMi!e % ?enezue!aU) con una am*!ia eP*eriencia en ingenierOa de! soJtware)
ca!idad % meKora de *rocesos T*artici*aci(n en !a meKora) eva!uaci(n o
auditorOa de *rocesos C&&I o IS8 ,55+- en ms de -+ em*resasU.
Da *artici*ado en numerosos *ro%ectos de IX# naciona!es e
internaciona!es) *onencias) editado varios !i"ros % *u"!icado ms de ,++
tra"aKos de investigaci(n. Eva!uador de !a 6/E T6gencia /aciona! de
Eva!uaci(n % ros*ectivaU % eP*erto certiJicado *or 6E/87 % E:6 *ara !a
va!oraci(n de *ro%ectos IX#.


14
MOIS$S RODRGUE. MON%E
Ingeniero Su*erior en InJormtica % &ster en Tecno!ogOas InJormticas
6vanzadas *or !a 9niversidad de Casti!!a3La &ancMa. CIS6 TCertiJied
InJormation S%stem 6uditorU *or IS6C6 % 6uditor JeJe *or 6E/87 TIS8
,55+-U. Formaci(n oJicia! de! SEI C&&I ,.2 ; C&&I36C:) Scrum&anager
CertiJied % T&6 /ePt CertiJied.
Da tra"aKado como consu!tor *ara ms de 2+ em*resas % administraciones)
es*ecia!izndose en !a meKora de *rocesos soJtware % !a eva!uaci(n de !a
ca!idad de! *roducto. #esde 2+,2 es CE8 de 6!arcos :ua!it% Center) s*in3oJJ
de !a 9niversidad de Casti!!a3La &ancMa orientada a *restar servicios de
consu!torOa *ara !a meKora de !a ca!idad de! soJtware. 6dems) dirige 6:C
La") *rimer e! !a"oratorio acreditado *ara !a eva!uaci(n de !a ca!idad de!
*roducto soJtware segLn IS8<IEC 25+++.
En e! m"ito investigador) Ma *artici*ado en ms de ,+ *ro%ectos de IX#)
dirigido varios ro%ectos Fin de Carrera % escrito varios artOcu!os % ca*Otu!os
*ara revistas) !i"ros % congresos so"re ca!idad soJtware. #esde 2++2 es
miem"ro de! SC1<GT24 de 6E/87) *ara !a e!a"oraci(n de !a IS8<IEC 20,,0.



15
DOMINGO GAITERO
Estudi( inJormtica en !a 9& % en !a 9C3& de &adrid donde adems
eKerci( como *roJesor auPi!iarY !!eva ms de 3, a$os en e! sector de !as
Tecno!ogOas de !a InJormaci(n. #esde mu% *ronto se identiJic( e invo!ucr(
con !a Ca!idad de! soJtware. Da tra"aKado tanto *or em*resas c!ientes
Jina!es como de servicios) % Ma im*artido c!ases % *onencias en
universidades como #eusto) o!itNcnica de Cata!u$a % o!itNcnica de Sevi!!a
en temas de IngenierOa de! SoJtware) Ca!idad % Lean IT. Da dise$ado %
*uesto en marcMa dos FactorOas de SoJtware % Testing en Es*a$a.
Da co!a"orado en !a *rctica de S:6 en !as o!im*iadas de .eiKing)
?ancouver % Londres donde dirigi( e! *ro%ecto de certiJicaci(n C&&I de!
*roceso de desarro!!o de soJtware. Es ?ice*residente de! ComitN CSTIC en !a
6EC T6sociaci(n Es*a$o!a de Ca!idadU % autor de varios !i"ros) entre e!!os !a
metodo!ogOa &Ntrica v3 de !a 'ue Jue uno de sus creadores.
En !a actua!idad es Socio Fundador de roceso Socia!) Star u* es*ecia!izada
en ana!izar e! nive! de o*timismo % *asi(n *roJesiona! de !os tra"aKadores
en *ro%ectos de innovaci(n o transJormaci(n tecno!(gica. CertiJicado como
EPcecutive CoacM *or !a Escue!a Euro*ea de CoacMing en &adrid TECCU) se
Ma es*ecia!izado en !a a*!icaci(n de! coacMing como Merramienta motriz de
motivaci(n en *ersona! TIC) denominado :coacMing.
Es .!ogero Twww.*rocesosocia!.comU % Juturo TE# ta!Wer.
6! margen de! m"ito !a"ora!) tiene una agitada vida donde adems de
educar % disJrutar de sus dos estu*endos MiKos) estudia magia) *ractica


1!
aiWido) Kuega a! JLt"o!) % mantiene sus grandes *asiones *or encima de
todo: e! cine % Star Cars.

PEDRO SEBASTIAN MINGO
EP*erto inde*endiente en testing de soJtware. #a so*orte a e'ui*os de
desarro!!o *ara Jaci!itar !a construcci(n % *uesta en *roducci(n *roductos
soJtware de ca!idad % a!to va!or a$adido.
Con ,5 a$os tra"aKando en TI) Ma dedicado !os L!timos a! testing de
soJtware) es*ecia!izndose en *rue"as de rendimiento. oco amigo de !as
verdades universa!es) su Ji!osoJOa es ada*tar e! testing a! contePto % reJorzar
!as re!aciones entre !os e'ui*os de testing % desarro!!o *ara 'ue com*artan
o"Ketivos % o*timicen resu!tados.
&u% interesado en !a res*onsa"i!idad socia! *ara con !a *roJesi(n)
interviene en cursos) seminarios % *onencias. I!timamente Ma em*ezado
a escri"ir un "!og con !a idea de com*artir conocimientos %
reJ!ePionar so"re e! mundi!!o de! testing % !a ca!idad de! soJtware.






1)
DA-ID GME. GARCA
#avid G(mez es ingeniero tNcnico en inJormtica de Sistemas *or !a 9&.
6ctua!mente tra"aKa como Consu!tor Tecno!(gico en 6utentia. Con ms de
,- a$os de eP*eriencia) Ma *artici*ado en e! desarro!!o) Ma !iderado %
rea!izado mentoring de *ro%ectos en .anca) Seguros) #eJensa % Trans*orte
&arOtimo % Terrestre.
#avid com"ina su !a"or de desarro!!o con !a Jormaci(n) siendo instructor
certiJicado oJicia! de S*ringSource % de JavaS*ecia!ists.eu) Ma"iendo
im*artido ms de 3+ cursos desde 2++0 Masta 2+,3. Tam"iNn Ma
*artici*ado con cMar!as en eventos como S*ring I8 T2+,, % 2+,2U)
Codemotion &adrid 2+,2 o &editerranea 6I #a%s 2+,3Y en universidades
T9niversidad Jaume I de Caste!!(n) 9niversidad de ?a!encia % 9niversidad
o!itNcnica de &adridUY % Ma sido *onente en comunidades de desarro!!o
como &adridJ9G) &adridJS o &i!anoJ9G.
#entro de !os eventos) #avid Ma sido co3organizador de Codemotion &adrid
en !as dos *rimeras ediciones de 2+,2 % 2+,3 % de! 8*enS*ace
SaveInJormatic8S) asO como co!a"orador en JCrete.org 2+,3.







18
%ES/S ERNANDO CORROCANO
Es #irector de! #e*artamento de IngenierOa de SoJtware de Sistemas de
InJormaci(n de E! Corte Ing!Ns) roJesor 6sociado de !a 9niversidad Car!os
III de &adrid. Licenciado en Ciencias &atemticas TCom*utaci(nU)
9niversidad Com*!utense) &adrid &ater en Go"ierno TI. CE976) EP*erto
en Ca!idad Industria! 9/E#) &aster 7edes % Comunicaciones) F;CS6)
&adrid.

ENRI(UE SNCE.
Ingeniero en InJormtica % &ster en IngenierOa de #ecisi(n *or !a 97JC)
actua!mente est rea!izando doctorado en Ciencias Com*utaciona!es e
Inte!igencia 6rtiJicia! en esta universidad. TecMnica! Team Leader en
&ediante con ms de - a$os de eP*eriencia en Testing % Ca!idad en
em*resas como ..?6) Tuenti % Te!eJ(nica.
6*asionado *or !a meKora de !os *rocesos de creaci(n de soJtware % !a
automatizaci(n de tareas) investiga constantemente so"re nuevas tNcnicas
% metodo!ogOas 'ue *ermitan a%udar a !os e'ui*os a meKorar
constantemente.
.## Evange!ist) *artici*a activamente en !a comunidad de :6 de &adrid
T&6#:6U dando cMar!as % a%udando en !a organizaci(n de !os eventos.
En sus ratos !i"res !e encanta viaKar) !a comida tai!andesa % e! cine.



1&
ANA MARIA DEL CARMEN GARCA OTERINO
artici*a con F%"e!e Consu!ting en *ro%ectos re!acionados con !a
im*!antaci(n de metodo!ogOas gi!es) Scrum % ca!idad de! soJtware *ara
im*ortantes organizaciones.
Tam"iNn co!a"ora en TMe smart soJtware 'ua!it%
TMtt*:<<www.tMesmartsoJtware'ua!it%.com<U) eva!uando !a ca!idad de!
soJtware % !a co"ertura de !a IS8 25+++ de distintos *ro%ectos.

6*asionada Z*or !a ca!idad de! soJtware % "uenas *rcticas en genera!. Da
contri"uido en "!ogs de reJerencia en esta temtica % est escri"iendo un
!i"ro so"re Sonar:u"e.
Da escrito *u"!icaciones % rea!izado *onencias re!acionadas con
ca!idad de! soJtware) entre !as 'ue destacan !a *artici*aci(n en e!
6cademic ITGS&,- Torganizado *or e! itS&FU % !a revista /ov6TIca.









20
I$%&O'(CCI)$
En e! mundo de! soJtware) % su*ongo 'ue en otras disci*!inas tam"iNn)
cuando nos reJerimos a! am*!io conce*to de Qca!idad soJtwareR Memos de
ser mu% conscientes de 'ue en rea!idad ese QetNreoR conce*to de ca!idad se
su"divide) *rinci*a!mente) en tres ti*os de ca!idad: !a de! *roceso) !a de!
*roducto % !a de !as *ersonas<e'ui*os.


Figura ,. #imensiones de !a ca!idad de soJtware
6 *esar de 'ue este tema es mu% antiguo) en e! mundo em*resaria! es a!go
'ue no est tan c!aro % maduro. ;) a !a Mora de !a verdad) cuando se entrega
e! soJtware) a'ue!!o 'ue en !a oJerta < contrato *arecOa tan c!aro resu!ta 'ue


21
*roduce enormes desenga$os. Q=ero c(mo *uede ser 'uN !a em*resa QPR
con C&&I nive! Q%R nos entregue este *roducto tan ma!oAR Q=ero no
usa"an !a metodo!ogOa QzRAR
Si 'uieres ca!idad en genera!) vas a necesitar conocer !os tres m"itos
anteriores. 6un'ue de*ende de! ro! 'ue Kuegues te *uede im*ortar ms
una *ers*ectiva de ca!idad u otra. Si eres un c!iente 'ue so!o com*ra
soJtware no *uedes *erder !a *rioridad) *rocesos) *roductos % *ersonas son
im*ortantes) *ero !a ca!idad de! *roducto es *ara ti determinante. Si eres
Ja"ricante de soJtware) vas a necesitar !os tres % no *uedes o!vidar ninguno.
or todo esto es *reciso diJerenciar % tener c!aro cu!es son !as distintas
reas 'ue a"arca !a ca!idad de soJtware.
@a&ier 9arz%s 6arra










22




23

1. CALIDAD DEL PRODUCTO SOFTWARE, TU EMPRESA
TENDR UN PROBLEMA SI NO SE PREOCUPA POR ELLA.

7utor8 @a&ier 9arz%s 6arra

AB (s posi$le re&ertir la entrop?a)
B Los dos sa$emos que la entrop?a no puede re&ertirse. /o puedes &ol&er a con&ertir
el Cumo - las cenizas en un %r$ol.D
BB Isaac 7simo& 1La Eltima pregunta3.
,., L6 C6LI#6# #EL 78CES8
La ca!idad vista desde e! mundo de !os *rocesos nos dice 'ue !a ca!idad de!
*roducto soJtware est determinada *or !a ca!idad de! *roceso. or *roceso
se entienden !as actividades) tareas) entrada) sa!ida) *rocedimientos) etc.)
*ara desarro!!ar % mantener soJtware.
Cap*tulo
1


24
&ode!os) normas % metodo!ogOas tO*icas a'uO son C&&I) IS8 ,55+- < IS8
,22+1) e! cic!o de vida usadoY inc!uso !as metodo!ogOas gi!es entran a'uO.
,.2 L6 C6LI#6# #EL 78#9CT8
EPisten mode!os de ca!idad de *roducto) destacando entre e!!os !a IS8 0,24
TIS8) 2++,U) o !a nueva serie IS8 25+++ TIS8) 2++5aU) 'ue es*eciJica
diJerentes dimensiones de !a ca!idad de *roducto. 6un'ue a'uO !a dura
tarea de eva!uaci(n recae en e! uso de mNtricas soJtware.
,.3 L6 C6LI#6# #EL E:9I8 ;<8 E7S8/6S
Si Mu"iese 'ue e!egir) de entre !as c!aves 'ue determinan e! NPito To JracasoU
de un *ro%ecto soJtware) me aventurarOa a decir 'ue este serOa e! *a*e! 'ue
Kuegan Q!as *ersonasR.
En ma%or o menor medida) *rcticamente todo a'ue! 'ue Ma estudiado e!
NPito o Jracaso de un *ro%ecto soJtware Ma destacado e! *a*e! 'ue !as
*ersonas) e! e'ui*o de desarro!!o) Kuegan en e! mismo. Conc!u%endo) en !a
ma%orOa de ocasiones) con 'ue !as *ersonas son e! Jactor ms
determinante.
Como decOa G!ass TG!ass) 2++3U) no Ma% 'ue o!vidar 'ue !as *ersonas son !as
'ue Macen e! soJtware. Las Merramientas a%udan) !as tNcnicas tam"iNn) !os
*rocesos) etc. ero so"re todo esto estn !as *ersonas. QLas *ersonas son !a
c!ave de! NPitoR) 'ue diKera #avis en su genia! !i"ro T#avis) ,005U. E! e'ui*o
Mumano 'ue) como decOa CocW"urn TCocW"urn) 2+++U) es e! com*onente no
!inea! de *rimer orden en e! desarro!!o soJtware. #ecOa &cConne!! TS.
&cConne!!) ,004U 'ue !as *ersonas son !os 'ue tienen ms *otencia! *ara


25
recortar e! tiem*o de un *ro%ecto) % 'ue 'uienes Man tra"aKado en soJtware
QMan o"servado !as enormes diJerencias 'ue Ma% en !os resu!tados 'ue
*roducen entre desarro!!adores medios) mediocres % genia!esR.
#es*uNs de ana!izar 40 *ro%ectos .oeMm T.oeMm) ,02,U com*ro"( 'ue !os
meKores e'ui*os de desarro!!adores eran Masta - veces ms *roductivos
'ue !os *eores. or su *arte #e&arco % Lister) en su eo*!eware T#e&arco
[ Lister) 2+,+U) identiJican diJerencias de *roductividad de 5.4 a ,)
ePtraOdas de un estudio con ,44 *roJesiona!es de ,2 organizaciones. En !a
/6S6 TCein"erg [ ScMu!man) ,01-U) o"servaron diJerencias de Masta 3 a ,
en *roductividad entre sus diJerentes *ro%ectos. E inc!uso mucMo antes) en
e! 1-) Ma"Oa %a estudios T?a!ett [ &cGarr%) ,020U 'ue Ma"Oan o"servado
diJerencias de 2.4 a , en e'ui*os a !a Mora de rea!izar !as mismas tareas de
desarro!!o.
ero aun'ue *ara a!gunos esto estN mu% c!aro) no siem*re es asO en todos
!os *ro%ectos. 7ecuerdo 'ue Mace a$os tra"aKa"a en una em*resa 'ue
desarro!!a"a *roductos soJtware\ en !a 'ue no *ensa"an ePactamente asO.
6!!O se *ensa"a 'ue !os desarro!!adores no eran !o ms determinante) eran
Q*iezasR intercam"ia"!es. :ue !o determinante era !a *arte comercia! % !a
Junciona!) !os tNcnicos eran una Qcommodit%R. #e aMO 'ue gran *arte de!
e'ui*o tNcnico no tenOa e! *erJi!) !a cua!iJicaci(n % estudios acordes *ara
desarro!!ar e! soJtware 'ue se !es encomenda"a) *or cierto) una a*!icaci(n
"astante grande. Los KeJes de *ro%ecto) % directores tNcnicos) Kams Ma"Oan
estudiado a!guna carrera tNcnica. Lo curioso era 'ue) aun'ue todo e!
mundo veOa !os grandes *ro"!emas de ca!idad soJtware % de gesti(n de!
*ro%ecto) nadie *arecOa ver !a *rinci*a! causa de !os mismos.


2!
La gente 'ue *artici*a en un desarro!!o soJtware) no son como o"reros en
una cadena de montaKe. /o son tan Jci!mente intercam"ia"!es) % e! tra"aKo
no es tan re*eti"!e como en estos otros tra"aKos. &s aLn si no se Ma
im*!antado una ca!idad soJtware de verdad Tno s(!o una certiJicaci(nU.
odemos encontrar decenas de a*roPimaciones *ara meKorar !a ca!idad de
!as *ersonas) 'ue van desde e! tan de moda coacMing) a !a Ji!osoJOa gi! de
!ograr !a auto3organizaci(n de !os e'ui*os) estrategias de motivaci(n)
com"inaciones de !os anteriores) etc. E inc!uso Masta Ma% mode!os) como
son !os TS % S.
,.- =:9> E7SECTI?6 #E C6LI#6# ES &@S I&87T6/TEA
Como siem*re) !a necesidad de enJatizar en una u otra *ers*ectiva
T*roducto V *rocesoU de*ende de! contePto en 'ue se desenvue!va !a
organizaci(n) % de no caer en a'ue!!o 'ue tanto sucede en ingenierOa de!
soJtware % 'ue es !!evar !os L!timos mNtodos) mode!os) estrategias) etc.) a!
ePtremo) sin *ensar en su adecuaci(n e idoneidad a nuestro negocio % a!
contePto de nuestra em*resa.
or eKem*!o) *ara una em*resa 'ue no desarro!!a) 'ue ad'uiere *roductos
soJtware desarro!!ados *or terceros TePterna!izaci(nU) !a certiJicaci(n de !a
ca!idad de! *roceso de su su"contratista *uede ser condici(n necesaria e
im*ortante como garantOa de ca!idad) so"re todo en *rocesos de se!ecci(n
de *roveedores) cuando aLn no est e! soJtware desarro!!ado) *ero *uede
no ser suJiciente *ara garantizar !a ca!idad de! *roducto. Ser !a ca!idad de!
*roducto !a 'ue evidenciar ine'uOvocamente !a ca!idad de! mismo) sin
necesidad de su*osicionesY un conKunto coMerente de mNtricas e
indicadores de! *roducto estructurados segLn un mode!o ti*o IS8 0,24


2)
mostrar !a ca!idad ePacta de! mismo. 8) *or eKem*!o) en otro caso
diJerente) en una em*resa de desarro!!o) Ma"iendo determinado !a ca!idad
de! *roducto con) *or eKem*!o) un mode!o "asado en !a IS8 0,24) ser un
mode!o de *rocesos e! 'ue nos a%ude a meKorar!o Tcom*!ementando
am"os mode!os sin o!vidar ningunoU.
Si una em*resa 'ue desarro!!a soJtware de"e *reocu*arse de !a ca!idad de!
*roceso % de! *roducto 'ue desarro!!a % entrega) una em*resa 'ue so!o
com*ra soJtware Te! tO*ico c!ienteU de"erOa) *rinci*a!mente) *reocu*arse de
!a ca!idad de! *roducto 'ue com*ra. 6un'ue vemos 'ue en !a rea!idad) !as
em*resas 'ue com*ran soJtware !o Macen a! revNs) se *reocu*an *or e!
*roceso 'ue usa su *roveedor TC&&I) IS8) etc.U % a*enas de! *roducto 'ue
!es !!ega. Cosas de !a industria.
,.5 76B8/ES 87 L6S :9E L6 C6LI#6# #EL 78#9CT8
S8FTC67E #E.IE76 7E8C967TE &9CD8
,.5., C6LI#6# #EL 78#9CT8 /8 ES L8 &IS&8 :9E TESTI/G
:ue e! soJtware QJuncioneR T!o 'ue norma!mente intentas sa"er con
e! testingU no signiJica 'ue *or e!!o\ ]e! *roducto este "ien MecMo^ ; si est
ma! MecMo no te vas a dar cuenta si no !o miras *or dentro Tmiras sus
Juentes) c(digo) dise$o) c(mo de ma! o "ien est *rogramado) si est mu%
aco*!ado) etc.U) es decir) si no miras !o 'ue se !!ama ca!idad de! *roducto
soJtware.


28
,.5.2 L6 C6LI#6# #EL 78CES8 /8 G676/TIB6 L6 C6LI#6# #EL
78#9CT8
En e! desarro!!o soJtware) de entre !as diJerentes *ers*ectivas con 'ue se
*uede o"servar !a ca!idad) Ma% dos es*ecia! % tradiciona!mente im*ortantes:
!a ca!idad de! *roducto en sO % !a ca!idad de! *roceso *ara o"tener!o To
actividades) tareas) etc.) *ara desarro!!ar % mantener soJtwareU. #os
dimensiones esencia!es) estudiadas desde Mace tiem*o *or !os grandes
Q*adresR de !os mode!os % teorOas de ca!idad en genera! % tam"iNn
a*!ica"!es a !a construcci(n de soJtware) % 'ue giran e interactLan en torno
a !a idea de 'ue) como comenta Dum*Mre%) Q*adreR de! mode!o C&&I) Q!a
ca!idad de! *roducto est determinada *or !a ca!idad de! *roceso usado
*ara desarro!!ar!oRTDum*Mre%) 2++5U. 6un'ue en e! rea de! desarro!!o
soJtware) 'ue siem*re Ma ido un *oco ms atrs en temas de ca!idad) % en
Es*a$a) 'ue en !os L!timos a$os se Ma em*ezado a tratar en !as em*resas
este ti*o de as*ectos) !a *o*u!aridad e im*ortancia a nive! industria! Ma
recaOdo casi *or com*!eto en !os mode!os de ca!idad de *rocesos)
destacando e! conocido mode!o C&&I) 'ue en !os L!timos a$os se Ma
ePtendido considera"!emente.
6sO mode!os de ca!idad de *rocesos como C&&I son "astante *o*u!ares en
e! mundo de! desarro!!o) % se estn convirtiendo *oco a *oco en re'uisito
im*rescindi"!e *ara un centro de desarro!!o o J"rica soJtware. En a!gunos
casos Masta e! *unto en 'ue se Ma !!egado a asumir 'ue cum*!ir cierto
mode!o o nive! de madurez de *rocesos asegura *roductos de ca!idad T'ue
es !o ms im*ortante *ara ciertas em*resas % entidades) so"re todo si Man
ePterna!izado e! desarro!!o) donde !o 'ue reci"en *eri(dicamente son
*roductos de desarro!!os de sus *roveedoresU. ero\ =rea!mente es


2&
garantOa suJicienteA =9na certiJicaci(n so"re !a ca!idad de! *roceso
garantiza un *roducto de ca!idadA
Con res*ecto a este tema Ma Ma"ido mucMa controversia. or eKem*!o) Mace
tiem*o comenta"an FitcMenMam % J!eeger en un artOcu!o en IEEE soJtware
TFitcMenMam [ J!eeger) ,004U 'ue !a *rinci*a! crOtica a esta visi(n es 'ue
Ma% *oca evidencia en 'ue cum*!ir un mode!o de *rocesos asegure !a
ca!idad de! *roducto) !a estandarizaci(n de !os *rocesos garantiza !a
uniJormidad en !a sa!ida de !os mismos) !o 'ue Q*uede inc!uso
instituciona!izar !a creaci(n de ma!os *roductosR. &s recientemente
&ai"aum % Cass%ng) en Com*uter T&ai"aum [ Cass%ng) 2++2U)
comenta"an) siguiendo !a misma !Onea) 'ue !as eva!uaciones de ca!idad
de"erOan estar "asadas en evidencias ePtraOdas directamente de !os
atri"utos de! *roducto) % no en evidencias circunstancia!es deducidas desde
e! *roceso. 9n *roceso estndar) o instituciona!izado) segLn sea !a
termino!ogOa de! mode!o de uso) no necesariamente conc!u%e con un
*roducto de ca!idad.
Si "ien mode!os como C&&I Man gozado de mucMa *o*u!aridad) no *or e!!o
!os mode!os o estndares de ca!idad de *roducto tienen menos madurez)
destacando e! menos *o*u!ar *ero igua!mente im*ortante IS8 0,24) o !a
nueva serie IS8 25+++) 'ue es*eciJica diJerentes dimensiones de !a ca!idad
de *roducto.
En nuestra eP*eriencia nos Memos encontrado "astante Jrustraci(n en
ciertas em*resas de"ido a !as es*eranzas de*ositadas en !os mode!os de
ca!idad de *rocesos 'ue oJrecOan sus *roveedores % 'ue Jina!mente no Man
servido como garantOa de ca!idad de !os *roductos 'ue reci"Oan.


30
,.5.3 C&&I /8 6SEG976 9/ 78#9CT8 #E C6LI#6#
Tener un Qse!!oR de C&&I no siem*re asegura un *roducto soJtware de
ca!idad. 6sO es. E! Qse!!oR es una evidencia QindirectaR de ca!idad) !a ca!idad
de! *roducto soJtware es evidencia QdirectaR. E! se!!o) !a certiJicaci(n)
eva!uaci(n) o como cada uno !o !!ame T*ara ms deta!!es tienes !a guOa de
su*ervivencia C&&I TGarzs et a!.) 2+,,UU) en mode!os como C&&I\
aU Se "asa en un muestreo Tno se ven todos !os *ro%ectos de !a
em*resaU) asO 'ue *uedes tener ma!a suerte % 'ue te to'ue un
*ro%ecto V e'ui*o de desarro!!o 'ue no se eva!u(.
"U Las auditorOas C&&I no miran !a ca!idad de! *roducto soJtware)
s(!o miran si se cum*!en "uenas *rcticas de! *roceso) si se
gestionan re'uisitos) si se veriJica) si se *!aniJican !os *ro%ectos)
etc.) *ero no si esos re'uisitos tomados estn "ien) si ese *!an de
*ro%ecto est "ien\ % mucMo menos ]c(mo est e! c(digo^
cU Si eres un c!iente % contratas a a!guien *or'ue tiene a!gLn C&&I te
mostrar un Qse!!oR concedido en e! *asado) % tu *roducto te !o
entregar mucMos meses des*uNs de !a concesi(n de! Qse!!oR % en
ese tiem*o\ *ueden *asar mucMas cosas.
,.5.- L6 &6L6 C6LI#6# #EL 78#9CT8 SIE&7E TIE/E 9/ C8STE
or'ue !a ma!a ca!idad de! *roducto soJtware Tes decir) c(digo es*agueti)
c(digo re*etido) dise$o aco*!ado) etc.U siem*re) siem*re) a!guien !a *aga
TeurosU) tiene un coste T!o 'ue !!amamos deuda tNcnica) secci(n ,.5.-.,U.
; so!o *ueden *agar!a uno de dos: e! c!iente o !a em*resa 'ue desarro!!( e!
soJtware. Lo 'ue nos !!eva a! conce*to de deuda tNcnica\


31
,.5.-., #euda tNcnica
La metJora de !a Qdeuda tNcnicaR
a*!icada a! desarro!!o soJtware !a
introduKo Mace dos dNcadas Card
CunningMam TCunningMam) ,002U
*ara eP*!icar a !os Qno tNcnicosR !a
necesidad de QreJactorizarR.
#esde entonces) !a deuda tNcnica
se Ma uti!izado *ara descri"ir mucMos otros ti*os de deudas o ma!es de!
desarro!!o de soJtware) % se Ma a*!icado a cua!'uier cosa 'ue aumente
innecesariamente !os esJuerzos de desarro!!o) se inter*onga en !a Jutura
evo!uci(n o venta de un sistema de soJtware. Do% *odemos encontrar
!a deuda de !as *rue"as) !a deuda de !as *ersonas) !a deuda de !a
ar'uitectura) !a deuda de !os re'uisitos) !a deuda de !a documentaci(n) etc.
La deuda tNcnica es e! coste % !os intereses a *agar *or Macer ma! !as
cosas. E! so"re esJuerzo a *agar *ara mantener un *roducto soJtware ma!
MecMo) % !o 'ue con!!eva) como e! coste de !a ma!a imagen Jrente a !os
c!ientes) etc. Da% 'uien no es ni si'uiera consciente de 'ue est *agando
intereses *or Macer ma! e! soJtware) % continua asO Masta e! QdeJau!tR.
La deuda tNcnica a! Jina! siem*re
a!guien !a *aga. 8 !a *aga e! *roveedor
'ue desarro!!a e! soJtware o !a *aga e!
c!iente 'ue !o usa o com*ra.

Principal Principal Principal Principal causa causa causa causa de de de de la la la la
deuda deuda deuda deuda tcnica: tcnica: tcnica: tcnica: la presin de
las fechas
Porque la mala calidad del
producto software siempre
alguien la paga (euros), tiene
un coste.


32
La ma%orOa de !os autores coinciden en 'ue !a *rinci*a! causa de !a deuda
tNcnica es !a *resi(n en JecMas % *!anes.
Sin em"argo) Ma% mucMas otras causas) como !a Ja!ta de cuidado) Ja!ta de
Jormaci(n) !a no veriJicaci(n de !a ca!idad) o !a incom*etencia.
Con e! tiem*o) e! tNrmino deuda tNcnica se Ma *erJeccionado % am*!iado)
*rinci*a!mente *or Steve &cConne!! con su taPonomOa TS. &cConne!!) 2++1U
% &artin Fow!er con sus cuatro cuadrantes T&. Fow!er) 2++0U.
La *e'ue$a taPonomOa de &cConne!!) Ma"!a de 'ue:
/o Ma% deuda tNcnica) si\ Da% retrasos) recortes) etc.) 'ue no
re'uieren e! *ago de intereses. /o todo e! tra"aKo incom*!eto es
deuda.
Si Ma% deuda tNcnica\ *uede ser TIU #euda incurrida
invo!untariamente de"ido a tra"aKos de "aKa ca!idad o TIIU #euda
incurrida intenciona!mente.
#ndo!e una vue!ta ms a! tNrmino) !a Ta"!a , muestra cuatro ti*os de
*osi"!es meKoras o tareas a rea!izar en e! Juturo *ara aumentar e! va!or de!
*roducto soJtware) como *ueden ser am*!iar Junciona!idades Tco!or verde)
'ue es en !o 'ue sue!en JiKarse !as em*resasU) o invertir en ar'uitectura
Tamari!!oU) invertir reducir !os deJectos TroKoU o !a deuda tNcnica TnegroU) 'ue
es invisi"!e % tiene un eJecto negativo.




33

-010234 I56010234
-7389
:810;068
3 /uevas
caracterOsticas
3 Funciona!idad
a$adida
3 CaracterOsticas
ar'uitect(nicas)
estructura!es
-7389
54<7;068
#eJectos #euda tNcnica
Ta"!a ,.Tareas de meKora *ara aumentar e! va!or de! *roducto soJtware TFrucMten) 2+,2U

,.5.-.2 =C(mo se ca!cu!a !a deuda tNcnicaA E! *ro"!ema de !as J(rmu!as de
deuda tNcnica.
La metJora de !a deuda tNcnica) nos da !a gran *osi"i!idad de transmitir a
*ersonas no3tNcnicas) % desde un *unto de vista econ(mico) !os *ro"!emas
'ue im*!ica e! soJtware de ma!a ca!idad) !a necesidad de Macer "uen c(digo)
!a necesidad de reJactorizar e! c(digo) etc.
Sin em"argo) aLn nos 'ueda un Q*e'ue$oR *ro"!ema *or reso!ver\
actua!mente no Ma% una Lnica manera de cuantiJicar !a deuda tNcnica de un
soJtware.
Tam*oco Ma% un consenso so"re 'uN de"e considerarse deuda tNcnica. or
eKem*!o *odemos encontrar 'ue dentro de deuda tNcnica 'ueda inc!uida !a
Ja!ta de co"ertura de *rue"as) *ero tam"iNn 'ue nuestro soJtware de*enda
de una *!ataJorma es*ecOJica) 'ue e! desarro!!ador no entienda "ien como
a*!icar un *atr(n de dise$o) o inc!uso 'ue !a ar'uitectura de nuestro
soJtware no sea !a ms adecuada.


34
; entonces) =Ma% a!guna J(rmu!a *ara ca!cu!ar !a deuda tNcnicaA SO) varias.
=; cu!es sonA ?arios autores *ro*onen diJerentes J(rmu!as *ara
cuantiJicar !a deuda tNcnica. ero aLn asO) *odemos agru*ar !as *rinci*a!es
J(rmu!as en dos gru*os:
Estimaci(n de! va!or de deuda tNcnica de! *ro%ecto) sin tener en cuenta !os
intereses 'ue genera !a deuda.
or un !ado) Ma% autores 'ue so!o enuncian J(rmu!as 'ue se centran en dar
un va!or de !a deuda tNcnica actua! de! *ro%ecto) sin ca!cu!ar sus intereses
en e! Juturo. #entro de este gru*o) nos encontramos a !os creadores de!
*!ugin de deuda tNcnica de !a Merramienta Sonar TSonar:u"e) 2+,,U o Jean3
Louis Letouze% con e! mNtodo S:6LE TLetouze% [ I!Wiewicz) 2+,2U.
6 grandes rasgos) am"os cuantiJican !a deuda tNcnica "asndose en
encontrar ciertas ma!as *rcticas en e! c(digo % !os costes 'ue con!!eva
so!ucionar esas ma!as *rcticas.
En e! caso de! *!ugin de Sonar se detecta e! c(digo du*!icado) vio!aciones
Tcomo *or eKem*!o nom"rar a un mNtodo 'ue no es un constructor igua!
'ue a una c!ase o no em*!ear mNtodos getTU % setTU etc.U) no comentar 6Is
*L"!icas) com*!eKidad cic!omtica 'ue su*era un cierto um"ra!) co"ertura
de *rue"as menor de un cierto va!or % de*endencias entre *a'uetes 'ue
su*eren un va!or concreto.
Con intereses
8tros autores) *retenden !!evar !a metJora de deuda tNcnica ms a!!) % no
s(!o dan mecanismos *ara ca!cu!ar e! va!or de deuda tNcnica actua! Ta! 'ue


35
!!aman *rinci*a!U) sino 'ue em*iezan a Ma"!ar de distintos ti*os de intereses
'ue genera !a deuda tNcnica.
6 *esar de 'ue en este gru*o !os autores tienen en comLn 'ue estn de
acuerdo en diJerenciar entre deuda tNcnica *rinci*a! e intereses) *!antean
distintos enJo'ues:
CMin) Dudd!eston % Gat TCMin et a!.) 2+,+U) consideran 'ue !a ma%orOa de!
soJtware atraviesa *erOodos de desarro!!o activo a! comienzo %
mantenimiento des*uNs. or e!!o) su J(rmu!a de deuda tNcnica es !a suma
de !a deuda tNcnica acumu!ada en e! *erOodo de desarro!!o ms !a deuda
tNcnica 'ue se acumu!ar en e! *erOodo de mantenimiento. Todo e!!o
teniendo en cuenta distintos ti*os de intereses.
ara .i!! Curtis) Ja% Sa**idi % 6!ePandra Sz%nWarsWi TCurtis et a!.) 2+,2U) !a
deuda tNcnica *rinci*a!) se ca!cu!a o"teniendo !os *ro"!emas estructura!es
de! c(digo Ta travNs de una Merramienta de an!isisU) c!asiJicando dicMos
*ro"!emas segLn su grado de severidad Ta!to) medio) "aKoU) esta"!eciendo
'uN tanto *or ciento de cada ti*o de *ro"!ema se va a so!ucionar) % e!
tiem*o 'ue tardarOamos en so!ucionar dicMo *ro"!ema.
Gar% SMort TSMort) 2+,+U) ca!cu!a !a deuda tNcnica *rinci*a! desde otra
*ers*ectiva) teniendo en cuenta as*ectos como e! nLmero tota! de
em*!eados 'ue tra"aKan e!iminando !a deuda tNcnica) sus sa!arios) e! coste
de com*rar e insta!ar e! Mardware 'ue se necesite o inc!uso una estimaci(n
de! da$o 'ue *uede *rovocar !a deuda tNcnica a !a imagen de !a em*resa.
or L!timo) T/ugroMo et a!.) 2+,,U) ca!cu!an !a deuda tNcnica considerando
!os intereses % "asndose en un mode!o de ca!idad *ro*io creado *or e!


3!
gru*o SIG TSoJtware Im*rovement Grou*U "asado a su vez en !a IS8 0,24.
En este caso) e! QinterNsR es e! coste ePtra invertido en mantener e!
soJtware *or tener una ma!a ca!idad tNcnica. 6dems) tam"iNn tienen en
cuenta 'ue tanto !a deuda tNcnica como !os intereses aumentan con e!
tiem*o % *ro*onen una J(rmu!a *ara ca!cu!ar ese crecimiento.
,.5.5 EL CLIE/TE 9E#E #ETECT67 L6 &6L6 C6LI#6# #EL 78#9CT8
S8FTC67E
Si e! c!iente detecta ma!a ca!idad de! *roducto soJtware ser e! *roveedor
'uien aca"e *agando e! tra"aKo ma! MecMo) aun'ue !o norma! es 'ue e!
c!iente no se dN cuenta de! ma! desarro!!o soJtware *or e! 'ue aca"a de
*agar % aca"e *agando N! mismo !a ma!a ca!idad de! desarro!!ador\ 'ue
norma!mente !a *aga en so"re ePceso de Moras % Moras de mantenimiento.
,.5.4 L6S .9E/6S 7@CTIC6S /8 6SEG976/ C6LI#6# #EL 78#9CT8
Las "uenas *rcticas de ITIL) IS8 2++++) son mu% "uenas *ara detectar 'ue
!os usuarios estn teniendo *ro"!emas con en e! soJtware) !as incidencias
'ue !os usuarios tienen con N!) *ara organizar !os *asos a *roducci(n de !os
*arcMes) contro!ar cuantas veces Qse Ma caOdoR e! soJtware en *roducci(n)
su dis*oni"i!idad) etc. ero *or mucMos % mu% "uenos indicadores 'ue
tenga Qtu cocMeR so"re si se est Qca!entando e! motorR) Qe! aceite 'ue
'uedaR) etc.) !os *ro"!emas se re*aran en Qe! motorR Te! desarro!!o
soJtwareU no *oniendo indicadores de! nive! de servicio. ; e! motor se
arreg!a tra"aKando !a ca!idad de! *roducto soJtware. 9na certiJicaci(n de !a
ca!idad de !os *rocesos no siem*re asegura un *roducto de ca!idad



3)
,.4 7EFE7E/CI6S
6simov) I. T,054U) La L!tima *regunta. 0cience =iction 4uarterl3
6twood) J. T2++-U. FCen good comments go $ad. 2+,3. #is*oni"!e en:
Mtt*:<<www.codingMorror.com<"!og<2++-<,,<wMen3good3comments3go3
"ad.Mtm!
.ecW) F.) [ Fow!er) &. T,000U. .ad sme!!s in code. :e!actoring8 Impro&ing
tCe design o! e.isting code 6ddison Ces!e%.
.e!ad%) L.) [ LeMman) &. &. T,014U. 6 mode! oJ !arge *rogram
deve!o*ment.
.e!ad%) L.) [ LeMman) &. &. T,025U. 6rogram e&olution8 6rocesses o!
so!t"are cCange
.oeMm) .. T,02,U. 0o!t"are engineering economics rentice Da!! T7.
CMin) S.) Dudd!eston) E.) .odwe!!) C.) [ Gat) I. T2+,+U. TMe economics oJ
tecMnica! de"t.
CocW"urn) 6. T2+++U. CMaracterizing *eo*!e as non3!inear) Jirst3order
com*onents in soJtware deve!o*ment. 6rtOcu!o *resentado en 4tC
International MultiBCon!erence on 0-stems< C-$ernetics and In!ormatics<
8r!ando) F!orida.
CunningMam) C. T,002U. TMe C%CasM *ortJo!io management s%stem.
6rtOcu!o *resentado en 7CM 0I96L7/ GG60 Messenger< < 4. T2U **. 2033+.


38
Curtis) ..) Sa**idi) J.) [ Sz%nWarsWi) 6. T2+,2U. Estimating tMe size) cost) and
t%*es oJ tecMnica! de"t.
#avis) 6. &. T,005U. 201 principles o! so!t"are de&elopment &cGraw3Di!!
Inc.)9S.
#e&arco) T.) [ Lister) T. 7. T2+,+U. 6eople"are8 6roducti&e pro,ects and
teams 6ddison Ces!e% u" Co Inc.
Fow!er) &. T2++0U. 2ecCnical de$t. 2+,3. #is*oni"!e en:
Mtt*:<<martinJow!er.com<"!iWi<TecMnica!#e"t.Mtm!
Fow!er) &.) .ecW) F.) .rant) J.) 8*d%We) C.) [ 7o"erts) #. T2+++U.
:e!actoring8 Impro&ing tCe design o! e.isting code T,st edition ed.U 6ddison3
Ces!e% roJessiona!.
Gamma) E.) De!m) 7.) JoMnson) 7.) [ ?!issides) J. T,005U. +esign patterns.
/ew ;orW) /;) 9S6. 6ddison3Ces!e% roJessiona!.
Garzs) J.) Irraz"a!) E.) [ Santa Esco!stica 7. T2+,,) GuOa *rctica de
su*ervivencia en una auditorOa C&&I. Holet?n +e La 20II< Ini&ersidad :e-
@uan Carlos< 002) ,333.
Garzs) J.) [ iattini) &. T2++4U. 6 cata!og oJ o"Kect oriented design ru!es. In
J. Garzs) [ &. iattini TEds.U) G$,ectBoriented design Jno"ledge8 6rinciples<
Ceuristics< $est practices T**. 3+133-1U. DersMe% TEE99U: Idea Grou* Inc.
G!ass) 7. L. T2++3U. =acts and !allacies o! so!t"are engineering 6ddison
Ces!e%.


3&
Dum*Mre%) C. D. T2++5U. 6c'uiring 'ua!it% soJtware Ton!ine on
Mtt*:<<www.stsc.Mi!!.aJ.mi!<CrossTa!W<2++5<,2<+5,2Dum*Mre%.Mtm!U.
Cross2alJ<
IS8<IEC 0,24. SoJtware roduct Eva!uationV:ua!it% CMaracteristics and
Guide!ines Jor tMeir use. TInternationa! 8rganization Jor Standarization
2++,U.
IS8. T2++5aU. I0GKIC 25000 so!t"are and s-stem engineering L so!t"are
product qualit- requirements and e&aluation 104ua:3 L9uide to 04ua:.
IS8<IEC 25+,+:2+,,3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 S%stem and
SoJtware :ua!it% &ode!s) T2++5"U.
IS8<IEC 25+,2:2++2 3 SoJtware Engineering 33 SoJtware roduct :ua!it%
7e'uirements and Eva!uation TS:ua7EU 33 #ata :ua!it% &ode!) T2++5cU.
IS8<IEC 25+2+:2++1 3 SoJtware Engineering 33 SoJtware roduct :ua!it%
7e'uirements and Eva!uation TS:ua7EU 33 &easurement 7eJerence &ode!
and Guide) T2++5dU.
IS8<IEC 25+2,:2+,2 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 :ua!it% &easure
E!ements) T2++5eU.
IS8<IEC 25+3+:2++1 3 SoJtware Engineering 33 SoJtware roduct :ua!it%
7e'uirements and Eva!uation TS:ua7EU 33 :ua!it% 7e'uirements) T2++5JU.


40
IS8<IEC 25+-+:2+,, 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 Eva!uation
rocess) T2++5gU.
IS8<IEC 25+-,:2+,2 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 Eva!uation
Guide Jor #eve!o*ers) 6c'uirers and Inde*endent Eva!uators) T2++5MU.
IS8<IEC F#IS 25+++ 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 Guide to
S:ua7E) T2++5iU.
IS8<IEC F#IS 25++, 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33 !anning and
&anagement) T2++5KU.
IS8<IEC T7 25+4+:2+,+ 3 S%stems and SoJtware Engineering 33 S%stems and
SoJtware roduct :ua!it% 7e'uirements and Eva!uation TS:ua7EU 33
Common Industr% Format TCIFU Jor 9sa"i!it%: Genera! FrameworW Jor
9sa"i!it%37e!ated InJormation) T2++5WU.
FernigMan) .. C.) [ !auger) . J. T,01-U. 2Ce elements o! programming
st-le &cGraw3Di!!.
FitcMenMam) ..) [ J!eeger) S. L. T,004U. SoJtware 'ua!it%: TMe e!usive
target. I 0o!t"are< 20T,U) ,232,.
FrucMten) . T2+,2U. Inter&ie" "itC pCilippe JrucCten on tecCnical de$t.
2+,3. #is*oni"!e en: Mtt*:<<"!og.tecMde"t.org<interviews<,54<interview3


41
witM3*Mi!i**e3WrucMten3on3tecMnica!3de"t3ru*3u"c3decision3*rocess3
arcMitecture
Lar"i) S. T2++2U. Common e.cuses used to comment code and "Cat to do
a$out tCem. 2+,3. #is*oni"!e en:
Mtt*:<<www.codeodor.com<indeP.cJm<2++2<4<,2<Common3EPcuses39sed3
To3Comment3Code3and3CMat3To3#o36"out3TMem<2203
Letouze%) J.) [ I!Wiewicz) &. T2+,2U. &anaging tecMnica! de"t witM tMe
S:6LE metMod.
&ai"aum) T.) [ Cass%ng) 6. T2++2U. 6 *roduct3Jocused a**roacM to
soJtware certiJication.
&artin) 7. C. T2++2U. Clean code8 7 Cand$ooJ o! agile so!t"are
cra!tsmansCip rentice Da!!.
&c.reen) . T2++,U. 0o!t"are cra!tsmansCip8 2Ce ne" imperati&e 6ddison3
Ces!e% roJessiona!.
&cCa"e) T. T,014U. 6 com*!ePit% measure.
&cConne!!) S. T2++-U. Code complete8 7 practical Cand$ooJ o! so!t"are
construction8 0econd edition &icrosoJt ress.
&cConne!!) S. T2++1U. 2ecCnical de$t. 2+,3. #is*oni"!e en:
Mtt*:<<"!ogs.construP.com<"!ogs<stevemcc<arcMive<2++1<,,<+,<tecMnica!3
de"t32.as*P
&cConne!!) S. T,004U. :apid de&elopment &icrosoJt ress.


42
&cConne!!) S. T2++4U. 0o!t"are estimation8 +em-sti!-ing tCe $lacJ art
&icrosoJt ress.
/ugroMo) 6.) Fui*ers) T.) [ ?isser) J. T2+,,U. 6n em*irica! mode! oJ tecMnica!
de"t and interest.
arnas) #. T,012U. 8n tMe criteria to "e used in decom*osing s%stems into
modu!es.
utnam) L. D.) [ &%ers) C. T2++3U. =i&e core metrics8 2Ce intelligence
$eCind success!ul so!t"are management #orset Douse.
7ie!) 6. J. T,004U. G$,ectBoriented design Ceuristics 6ddison3Ces!e%
roJessiona!.
7o"erts) #. .. T,000U. 6ractical anal-sis !or re!actoring. CMam*aign) IL) 9S6.
9niversit% oJ I!!inois at 9r"ana3CMam*aign.
SMort) G. T2+,+U. 6a-ing $acJ tCe tecCnical de$t. 2+,3. #is*oni"!e en:
Mtt*:<<www.s!idesMare.net<gar%sMort<tecMnica!3de"t32025220
Sonar:u"e. T2+,,U. 2ecCnical de$t plugin. FecMa de consu!ta: +1<24 2+,3.
#is*oni"!e en:
Mtt*:<<docs.codeMaus.org<dis*!a%<S8/67<TecMnica!X#e"tXCa!cu!ation
ToWuda) L.) [ .ator%) #. T2++,U. Evo!ving o"Kect3oriented designs witM
reJactorings. 7utomated 0o!t"are ngg.< 8T,U) 203,2+.
?a!ett) J. #.) [ &cGarr%) F. E. T,020U. 6 summar% oJ soJtware measurement
eP*eriences in tMe soJtware engineering !a"orator%.@ournal o! 0-stems and
0o!t"are *123


43
Cein"erg) G. &.) [ ScMu!man) E. L. T,01-U. Goa!s and *erJormance in
com*uter *rogramming.
CiederMo!d) G. T2++4U. CMati s %our soJtware wortMACommunications o!
tCe 7CM 4*8 #5B75




44
2. CERTIFICACIN CALIDAD DEL PRODUCTO SOFTWARE
CON ISO 25000.

7utor8 Mois5s :odr?guez Mon,e

ALa calidad es gratis< pero s'lo para aquellos que est%n dispuestos a pagar un alto
precio por ello.D
BB 2. +eMarco - 2. Lister 16eople"are3

2., SIT96CIE/ 6CT96L #E L6 C6LI#6# S8FTC67E
Do% en dOa !a demanda de soJtware se Ma dis*arado) *uesto 'ue est
*resente en todos !os dis*ositivos 'ue maneKamos) en !os sistemas de
gesti(n) en e! trans*orte) en !as comunicaciones) en !a energOa) en !a "anca)
en nuestro ocio % en nuestro entretenimiento. Este aumento de! soJtware
Ma dado !ugar a un crecimiento de !as em*resas encargadas de su
desarro!!o) !o 'ue se conocen como QJactorOas de soJtwareR. 6 su vez) !a
Cap*tulo
2


45
Ja!ta de *ersona! es*ecia!izado *ara ciertas tareas de! desarro!!o soJtware)
asO como !a "Ls'ueda de !a reducci(n de costes Man dado !ugar a !o 'ue se
conoce como QoutsourcingR de! desarro!!o soJtware. Sin em"argo) cuando
se ePterna!izan actividades de desarro!!o soJtware) tam"iNn aumentan !os
riesgos % !a Ja!ta de contro! so"re !a ca!idad de! soJtware 'ue !a em*resa
contratada entrega) surgiendo !a necesidad de eva!uar % asegurar !a ca!idad
de! soJtware de dicMas em*resas desarro!!an.
#esde sus inicios) !a eva!uaci(n de !a ca!idad de! soJtware se Ma centrado en
contro!ar !a ca!idad de !os *rocesos 'ue se uti!izan *ara su desarro!!o)
surgiendo asO mode!os % estndares como C&&I o IS8<IEC ,55+-) 'ue en
Es*a$a Man ca!ado *roJundamente) siendo e! cuarto *aOs a nive! mundia! en
nLmero de eva!uaciones oJicia!es de C&&I % uno de !os ms re!evantes en
IS8<IEC ,55+- con ms de 5+ em*resas certiJicadas. Sin em"argo) a *esar
de !a ca!idad de !os *rocesos uti!izados en e! desarro!!o) se siguen !e%endo
noticias so"re !os *ro"!emas de ca!idad 'ue !os *roductos soJtware tienen
una vez *uestos en *roducci(n. ; es 'ue Ma% *oca evidencia de 'ue cum*!ir
un mode!o de *rocesos asegure !a ca!idad de! *roducto soJtware
desarro!!ado) % aun'ue !a estandarizaci(n de !os *rocesos garantiza !a
uniJormidad en !a sa!ida de !os mismos)
*odrOa !!egar a darse e! caso de 'ue
instituciona!izara !a creaci(n de ma!os
*roductos _,`. En este sentido) nosotros
estamos de acuerdo con 'ue !as
eva!uaciones de"erOan "asarse en evidencias
directas de! *ro*io *roducto) % no so!o en
evidencias de! *roceso de desarro!!o _2`.
La calidad de los procesos
no es suficiente, es necesario
tambin evaluar me!orar las
caracter"sticas del propio
producto software.


4!
or todo !o anterior) es cada dOa ma%or e! nLmero de organizaciones 'ue se
interesan) no so!o *or !a ca!idad de !os *rocesos 'ue se siguen en e!
desarro!!o de soJtware) sino tam"iNn *or !a ca!idad de !os *roductos 'ue
desarro!!an %<o ad'uieren. Surgiendo asO !a necesidad de normas %
estndares 'ue deJinan !as caracterOsticas de ca!idad de! *roducto soJtware)
asO como e! *roceso 'ue se de"e seguir *ara *oder rea!izar !a eva!uaci(n de
dicMas caracterOsticas.
2.2 L6 /87&6 IS8<IEC 25+++
6 !o !argo de !os L!timos a$os se Man e!a"orado tra"aKos de investigaci(n)
normas % estndares) con e! o"Ketivo de crear mode!os) *rocesos %
Merramientas de eva!uaci(n de !a ca!idad de! *ro*io *roducto soJtware)
entre !os 'ue se *ueden destacar !os *resentados en _334`. recisamente
*ara dar res*uesta a estas necesidades nace !a nueva Jami!ia de normas
IS8<IEC 25+++ conocida como S:ua7E T0o!t"are 6roduct 4ualit-
:equirements and &aluationU) 'ue tiene *or o"Ketivo !a creaci(n de un
marco de tra"aKo *ara eva!uar !a ca!idad de! *roducto soJtware)
sustitu%endo a !as anteriores IS8<IEC 0,24 e IS8<IEC ,-502 % convirtiNndose
asO en e! reJerente a seguir.
2.3 EST79CT976 #E L6 F6&ILI6 IS8<IEC 25+++
La IS8<IEC 25+++ se encuentra com*uesta de varias *artes o divisiones)
entre !as 'ue *odemos destacar:
La IS8<IEC 25+,+ _1` 'ue determina !as caracterOsticas de ca!idad de!
*roducto soJtware 'ue se *ueden eva!uar TFigura ,U. En tota! son 2 !as


4)
caracterOsticas de ca!idad 'ue identiJica: Junciona!idad) rendimiento)
com*ati"i!idad) usa"i!idad) Jia"i!idad) seguridad) manteni"i!idad %
*orta"i!idad.
La IS8<IEC 25+-+ _2` 'ue deJine e! *roceso de eva!uaci(n de !a ca!idad
de! *roducto soJtware) com*uesto *or cinco actividades:
o Esta"!ecer !os re'uisitos: *ara determinar cu!es son !os
re'uisitos de ca!idad 'ue se de"en considerar a !a Mora de
eva!uar e! *roducto.
o Es*eciJicar !a eva!uaci(n: indicando !as mNtricas) criterios de
medici(n % eva!uaci(n a tener en cuenta.
o #ise$ar !a eva!uaci(n: deJiniendo e! *!an de actividades 'ue se
rea!izarn *ara eva!uar e! *roducto.
o EKecutar !a eva!uaci(n: rea!izando !as actividades de medici(n %
eva!uaci(n de! *roducto) considerando !os criterios
identiJicados en !as Jases *revias.
o Conc!uir !a eva!uaci(n: e!a"orando e! inJorme de eva!uaci(n %
rea!izando !a dis*osici(n de resu!tados e Otems de tra"aKo.


48

F0<=97 1. &ode!o de ca!idad de! *roducto soJtware segLn !a IS8<IEC 25+,+
La IS8<IEC 25+2+ 'ue ser !a encargada de deJinir !as mNtricas de
ca!idad de! *roducto soJtware % 'ue todavOa est en *endiente de
*u"!icaci(n) *or !o 'ue no ePiste un acuerdo res*ecto a !os indicadores
% um"ra!es 'ue se de"en considerar *ara *oder determinar !a ca!idad
de un *roducto soJtware de manera estandarizada.
2.- EC8SISTE&6 #E E?6L96CIE/ ; CE7TIFIC6CIE/ #EL 78#9CT8
S8FTC67E
or otro !ado) !os mode!os % normas anteriores re!acionados con !a
eva!uaci(n de! *roducto soJtware) no tratan e! *roceso *osterior de !a
certiJicaci(n) 'ue *ermita a !as em*resas su*erar una auditorOa rea!izada
*or una entidad acreditada % o"tener un certiJicado 'ue reJ!eKe !a ca!idad
de su *roducto soJtware. or e!!o) durante e! a$o 2+,2 rea!izamos una
revisi(n sistemtica _0` siguiendo !a guOa *ro*uesta *or FitcMenMam en _,+`.
Como resu!tado se o"tuvo un conKunto de ,+ estudios *rimarios 'ue
cum*!Oan con !os re'uisitos de "Ls'ueda. La *rinci*a! conc!usi(n 'ue se
ePtraKo de estos estudios Jue 'ue ePiste interNs % necesidad *or ePtender !a


4&
certiJicaci(n de !a ca!idad de !os *rocesos a !a ca!idad de! *roducto
soJtware) *ero no ePiste ninguna *ro*uesta Jirme *ara e!!o "asada en !a
nueva IS8<IEC 25+++) asO como 'ue tam*oco se tiene c!aro e! conKunto de
entidades invo!ucradas en e! *roceso de certiJicaci(n.
or estas razones) 6!arcos :ua!it% Center Ts*in3oJJ de !a 9niversidad de
Casti!!a3La &ancMaU en co!a"oraci(n con 6E/87 T6sociaci(n Es*a$o!a de
/orma!izaci(n % CertiJicaci(nU Memos deJinido e! QEcosistema *ara !a
Eva!uaci(n % CertiJicaci(n de! roducto SoJtwareR TFigura 2U) en e! 'ue se
identiJican a todos !os *artici*antes en e! *roceso de certiJicaci(n de !a
ca!idad de! *roducto soJtware:
,. Las em*resas interesadas en eva!uar) meKorar % certiJicar !a ca!idad de
sus *roductos soJtware T*ro*ios o ad'uiridosU) *iedra centra! de!
ecosistema % sin !as cua!es e! resto no tendrOa ca"ida.
2. 6E/87) 'ue como entidad auditora) se encarga de emitir !a
certiJicaci(n de ca!idad de! *roducto soJtware.
3. 6:C La") 'ue como !a"oratorio acreditado de eva!uaci(n) dis*one de!
entorno necesario *ara *oder medir % eva!uar e! *roducto soJtware %
emitir un inJorme de eva!uaci(n siguiendo !a norma IS8<IEC 25+++.
-. Consu!tores de ca!idad soJtware) 'ue considerando !a Kuventud de este
ti*o de eva!uaciones) *uedan dar so*orte a !as em*resas a meKorar su
*roducto soJtware % a!inear!o con !as caracterOsticas de ca!idad *ara
des*uNs *oder ser certiJicado.
5. Em*resas desarro!!adoras de Merramientas de medici(n) res*onsa"!es
de construir e! soJtware uti!izado *or !os consu!tores de ca!idad %


50
em*resas *ara medir % contro!ar !a ca!idad de! *roducto antes de
*resentarse a !a certiJicaci(n.

F0<=97 2. Ecosistema *ara !a Eva!uaci(n % CertiJicaci(n de! roducto SoJtware
2.5 CE7TIFIC6CIE/ #EL 78#9CT8 S8FTC67E
9na vez eP*uesta !a im*ortancia de !a ca!idad de! *roducto soJtware % !os
*rinci*a!es estndares *ara su eva!uaci(n) es este a*artado se *resentarn
!as *rinci*a!es caracterOsticas de! *roceso *ara !a certiJicaci(n de! *roducto
soJtware.




51
2.4 6:C L6.: L6.876T87I8 6C7E#IT6#8 676 L6 E?6L96CIE/ #EL
78#9CT8 S8FTC67E
9na de !as necesidades 'ue se identiJicaron inicia!mente *ara *oder eva!uar
!a ca!idad de! *roducto soJtware) Jue dis*oner de una entidad ePterna ca*az
de emitir una eva!uaci(n inde*endiente so"re e! *roducto soJtware. Con
esta idea) en 2++0 comienza !a construcci(n de 6:C La") un !a"oratorio 'ue
"asado en !a IS8<IEC 25+++ *ermita) tanto a em*resas desarro!!adoras de
soJtware como a entidades 'ue ePterna!izan o ad'uieren soJtware)
dis*oner de un inJorme inde*endiente 'ue reJ!eKe !a ca!idad de! *roducto
soJtware.
Con e! o"Ketivo de o"tener un reconocimiento a !a va!idez de !as
eva!uaciones rea!izadas *or 6:C La") se decidi( e!a"orar toda !a
inJraestructura de gesti(n necesaria *ara conseguir !a acreditaci(n)
siguiendo adems *ara e!!o *rcticas de! desarro!!o gi! como se eP*one en
_,,`. E! resu!tado Jue 'ue en 2+,2 6:C La" conseguOa !a acreditaci(n de
E/6C TEntidad /aciona! de 6creditaci(nU en !a norma IS8<IEC ,1+25) como
e! *rimer !a"oratorio *ara !a eva!uaci(n de !a ca!idad de a*!icaciones
soJtware "aKo !a Jami!ia de normas IS8<IEC 25+++.
La acreditaci(n de acuerdo a !a /orma IS8<IEC ,1+25 conJirma !a
com*etencia tNcnica de! !a"oratorio % garantiza !a Jia"i!idad en !os
resu!tados de !os ensa%os rea!izados.
E! Joco de !a auditorOa de acreditaci(n Jueron !os tres e!ementos *rinci*a!es
de 6:C La" uti!izados durante !a eva!uaci(n de! *roducto:


52
E! roceso de Eva!uaci(n) 'ue ado*ta directamente !a IS8<IEC 25+-+) %
!a com*!eta con !os ro!es concretos de! !a"oratorio % !os *rocedimientos
de tra"aKo desarro!!ados.
E! &ode!o de Ca!idad) 'ue deJine !as caracterOsticas % mNtricas *ara
eva!uar e! *roducto soJtware.
E! Entorno de Eva!uaci(n) 'ue *ermite automatizar en gran medida !as
tareas de !a eva!uaci(n.
2.4., &8#EL8 #E C6LI#6# #EL 78#9CT8
#e entre !as caracterOsticas de ca!idad *ro*uestas *or !a IS8<IEC 25+,+)
inicia!mente se decidi( centrar e! mode!o de ca!idad en !a caracterOstica de
!a manteni"i!idad) entendida como e! grado de eJectividad % eJiciencia con
e! 'ue un *roducto *uede ser modiJicado) de"ido *rinci*a!mente a !as
siguientes razones:
E! mantenimiento su*one una de !as Jases de! cic!o de vida de
desarro!!o ms costosa) sino !a ms) !!egando a a!canzar e! 4+a.
La manteni"i!idad es una de !as caracterOsticas ms demandadas Mo% en
dOa *or !os c!ientes de soJtware) 'ue *iden 'ue e! *roducto soJtware
'ue se !es desarro!!e *ueda ser des*uNs mantenido *or e!!os mismos o
inc!uso *or un tercero.
Las tareas de mantenimiento so"re *roductos con *oca manteni"i!idad
tienen ms *ro"a"i!idad de introducir nuevos errores en e! *roducto.


53
E! mode!o de ca!idad deJinido *ara !a manteni"i!idad *arte ePactamente de
!as cinco su"caracterOsticas de ca!idad deJinidas en !a IS8<IEC 25+,+) 'ue
son:
A5730>72030?7?. Se deJine como !a Jaci!idad *ara identiJicar !as *artes de
un sistema 'ue se de"en modiJicar de"ido a deJiciencias o Ja!!os) o !a
ca*acidad de eva!uar e! im*acto 'ue *uede *rovocar un cam"io en e!
sistema.
M8?=3790?7?. Se deJine como e! grado) en e! 'ue un sistema se
encuentra dividido en m(du!os de Jorma 'ue e! im*acto 'ue causa una
modiJicaci(n en un m(du!o sea mOnimo *ara e! resto.
C7:7@0?7? ?4 149 M8?0A0@7?8. Se deJine como e! grado en e! 'ue se
*ueden rea!izar cam"ios en un *roducto soJtware de Jorma eJectiva %
eJiciente) sin introducir deJectos ni degradar su rendimiento.
C7:7@0?7? ?4 149 R4=;030>7?8. Se deJine como e! grado en 'ue un activo
Tm(du!o) *a'uete) c!ase) etc.U *uede ser usado en ms de un sistema o
en !a construcci(n de otros activos.
C7:7@0?7? ?4 149 P9827?8. Se deJine como !a Jaci!idad *ara esta"!ecer
criterios de *rue"a *ara un sistema % rea!izar !as *rue"as 'ue *ermitan
com*ro"ar 'ue se cum*!en esos criterios.
Sin em"argo) !a Jami!ia de normas IS8<IEC 25+++ todavOa no Ma deJinido e!
conKunto de mNtricas e indicadores 'ue aJectan a cada una de estas
su"caracterOsticas) !os um"ra!es *ara !as mismas) ni !as Junciones de
medici(n a a*!icar *ara *oder ca!cu!ar e! va!or de ca!idad de cada una de
e!!as. or e!!o) *ara com*!etar este mode!o de ca!idad % Macer!o o*erativo)


54
se Man identiJicado un conKunto de *ro*iedades de ca!idad) 'ue o"tienen su
va!or a *artir de mNtricas de! c(digo Juente) % se Ma esta"!ecido !a re!aci(n
'ue ePiste con !as su"caracterOsticas anteriormente indicadas. E! o"Ketivo a!
identiJicar estas *ro*iedades de ca!idad % mNtricas no Ma sido 'ue Juera e!
conKunto ma%or *osi"!e) sino 'ue Juera un gru*o com*!eto % sin !ugar a
controversias) "asado en !os estudios e investigaciones *revias % ace*tados
*or !a comunidad cientOJica. Estas *ro*iedades de ca!idad son:
Incum*!imiento de reg!as de *rogramaci(n.
Com*!eKidad Cic!omtica.
Estructuraci(n de *a'uetes % c!ases.
Tama$o de unidades.
C(digo du*!icado.
#ocumentaci(n de c(digo.
6co*!amiento % CoMesi(n.
Cic!os de de*endencia.
2.4.2 E/T87/8 #E E?6L96CIE/ #EL 78#9CT8
E! entorno construido *ermite automatizar Masta en un 0+a !as
eva!uaciones % est Jormado *or tres nive!es diJerenciados:
,. 4997B045;71 ?4 B4?0@0C5. Constitu%en e! *rimer nive! % su misi(n es
ana!izar e! c(digo Juente % generar arcMivos con !os datos so"re


55
mNtricas "ase. La ventaKa de este nive! es 'ue es Jci!mente am*!ia"!e)
a$adiendo nuevas Merramientas 'ue *ermitan ana!izar nuevos
!enguaKes de *rogramaci(n o ca!cu!ar nuevas mNtricas *ara otras
caracterOsticas de ca!idad.
2. S01;4B7 ?4 4673=7@0C5. Su*one e! nive! intermedio de! entorno % su
o"Ketivo es ana!izar e! conKunto de arcMivos generados *or e! nive!
inJerior % a*!icar !os criterios de eva!uaci(n de! mode!o de ca!idad)
o"teniendo como resu!tado !os va!ores *ara !as *ro*iedades)
su"caracterOsticas % caracterOsticas de ca!idad.
3. E5;8958 ?4 601=730>7@0C5. 7e*resenta e! nive! su*erior de! entorno %
*ermite *resentar de manera com*rensi"!e !a inJormaci(n o"tenida
tras !a eva!uaci(n de! *roducto soJtware. 6dems de mostrar !os
va!ores de ca!idad *ara *ro*iedades) su"caracterOsticas % caracterOsticas
de ca!idad TFigura 3U) este entorno *ermite !a generaci(n de inJormes
con e! resu!tado de !a eva!uaci(n.


5!

F0<=97 3. EKem*!o de 7esu!tados de !a Eva!uaci(n de! roducto SoJtware
2.1 78;ECT8 IL8T8 #E CE7TIFIC6CIE/ #EL 78#9CT8 S8FTC67E
9na vez a!canzada !a acreditaci(n de! !a"oratorio) se esta"!eci( un *roceso
de tra"aKo con 6E/87 T6sociaci(n Es*a$o!a de /orma!izaci(n %
CertiJicaci(nU 'ue *ermitiera 'ue !os *roductos soJtware una vez se
Mu"ieran eva!uado % o"tenido un nive! adecuado de ca!idad) *udieran
tam"iNn conseguir un certiJicado. Como resu!tado 6E/87 inc!u%( dentro de
su mode!o con normas IS8 *ara TICs !a nueva Jami!ia IS8<IEC 25+++ _,2` %
cre( un *rocedimiento 'ue) a *artir de! inJorme de! !a"oratorio acreditado
% tras una auditorOa) *ermitOa certiJicar !a ca!idad de! *roducto soJtware
"aKo estudio TFigura -U.


5)

F0<=97 4. Cic!o de Eva!uaci(n % CertiJicaci(n de! roducto SoJtware
Todo !o anterior *ermiti( rea!izar a !o !argo de 2+,3 un *ro%ecto *i!oto de
eva!uaci(n % certiJicaci(n de !os *rimeros *roductos soJtware. Gracias a
este *i!oto) tres em*resas es*a$o!as *udieron eva!uar) meKorar %
Jina!mente certiJicar !a ca!idad de sus *roductos soJtware en "ase a !a
IS8<IEC 25+++) ta! % como se *resenta en _,3`. Entre !os "eneJicios
o"tenidos) dicMas em*resas destacaron Ma"er reducido Masta en un 15a !as
incidencias correctivas) Masta en un -+a e! tama$o de sus *roductos % Masta
en un 3+a !os tiem*os en !as tareas de mantenimiento.
Tras este *i!oto) son varios !os *roductos 'ue a nive! naciona! e
internaciona! %a se Man eva!uado siguiendo este nuevo es'uema) estando
a!gunos de e!!os %a en Jase de certiJicaci(n.
or otro !ado) indicar 'ue 6E/87 % 6:C La" siguen tra"aKando *ara am*!iar
e! a!cance de !as eva!uaciones % certiJicaciones de! *roducto soJtware) de
manera 'ue se *uedan a"ordar *oco a *oco todas !as caracterOsticas de
ca!idad identiJicadas *or !a IS8<IEC 25+++.


58
2.2 7EFE7E/CI6S
,. FitcMenMam) .. % S.L. J!eeger) 0o!t"are 4ualit-8 2Ce lusi&e 2arget.
IEEE SoJtware) ,004. 20T,U: *. ,232,.
2. &ai"aum) T. % 6. Cass%ng) 7 6roductB=ocused 7pproacC to 0o!t"are
Certi!ication. Com*uter) 2++2. 41T2U: *. 0,303.
3. .oeMm) ..C.) et a!.) CCaracteristics o! 0o!t"are 4ualit-. ,012: /ortM3
Do!!and.
-. IS8) I0GKIC *12#< 0o!t"are 6roduct &aluationL4ualit-
CCaracteristics and 9uidelines !or tCeir Ise. 2++,) Internationa!
8rganization Jor Standardization.
5. IS8) I0GKIC 145*8B581**8 B In!ormation tecCnolog- BB 0o!t"are
product e&aluation BB 6art 58 6rocess !or e&aluators. ,002)
Internationa! 8rganization Jor Standardization: Gine"ra.
4. Deit!ager) I.) T. Fui*ers) % J. ?isser) 7 6ractical Model !or Measuring
Maintaina$ilit-) in 4ualit- o! In!ormation and Communications
2ecCnolog-< 2007. 4I72IC 2007. 2++1. *. 3+330.
1. IS8) I0GKIC 25010< 0-stems and so!t"are engineering B 0-stems and
so!t"are 4ualit- :equirements and &aluation 104ua:3 B 0-stem and
so!t"are qualit- models. 2+,,: Gine"ra) Suiza.


5&
2. IS8) I0GKIC 25040 0-stems and so!t"are engineering B 0-stems and
so!t"are 4ualit- :equirements and &aluation 104ua:3 B &aluation
process. 2+,,: Gine"ra) Suiza.
0. 7odrOguez) &. % &. iattini) 0-stematic re&ie" o! so!t"are product
certi!ication) in CI02I 20128 7tC I$erian Con!erence on In!ormation
0-stems and 2ecCnologies. 2+,2: &adrid. *. 43,3434.
,+. FitcMenMam) ..) 9uideline !or per!orming 0-stematic Literature
:e&ie"s in 0o!t"are ngineering. Mersion 2.3. 2++1) 9niversit% oJ
Fee!e TSoJtware Engineering Grou*) ScMoo! oJ Com*uter Science and
&atMematicsU and #urMam T#e*artment oJ Com*uter ScienceU.
,,. ?erdugo) J.) &. 7odrOguez) % &. iattinni) Ising 7gile MetCods to
Implement a La$orator- !or 0o!t"are 6roduct 4ualit- &aluation) in
15tC International Con!erence on 7gile 0o!t"are +e&elopment 1N6
20143. 2+,-: 7oma TIta!iaU.
,2. Fernndez) C.&. % &. iattini) Modelo para el go$ierno de las 2IC
$asado en las normas I0G) ed. 6E/87. 2+,2) &adrid: 6E/87.
,3. 7odrOguez) &.) C.&. Fernndez) % &. iattini) I0GKIC 25000 Calidad
del 6roducto 0o!t"are. 6E/87. 7evista de !a /orma!izaci(n % !a
CertiJicaci(n) 2+,3T222U: *. 3+335.



!0
3. EL PAPEL UMANO EN LA CALIDAD DEL SOFTWARE.
INTRODUCCIN.

7utor8 +omingo 9aitero

A/o puedes &ol&er atr%s - Cacer un nue&o comienzo. 6ero puedes empezar de nue&o
- Cacer un nue&o !inalD
BB +iego 6a$lo 0imeone
Tradiciona!mente en !as em*resas 'ue se dedican a !as Tecno!ogOas de !a
InJormaci(n) % !as comunicaciones) TIC) Memos crecido con e! tringu!o 'ue
Mace a$os di"uK( #ave Fitson de! SEI cuando e! C&& esta"a todavOa
desarro!!ndose % 'ue a dOa de Mo% es mantenido en mucMas
organizaciones.
Cap*tulo
+


!1
Este di"uKo se centra en e! as*ecto
de *roceso de !a triada) !a tecno!ogOa
% !as *ersonas son igua!mente
im*ortantes Tno ePiste ningLn
*roducto sin e!!osU.
ero !a tecno!ogOa cam"ia a su ritmo
a !o !argo de! tiem*o Tvese 7edwine
; 7idd!e) ,025U % e! Jactor Mumano se
Ma tratado *or disci*!inas como e!
desarro!!o organizativo % !a Gesti(n de !a ca!idad Tota! TT:&U % *or un
mode!o de madurez de !os 7ecursos Mumanos) desarro!!ado tam"iNn *or e!
SEI) % conocido como eo*!e C&&.
En cuanto a! tercer e!emento de !a triada) !os *ro"!emas *rinci*a!es
*resentados *or !os *roductos soJtware *arecen ser) en gran *arte) de"idos
a cuestiones de! *roceso.
Situaciones como entregas tardOas de *roducto) so"recostes) *roductos
im*erJectos) *roductos *rometidos % nunca entregados) no Jia"!es) etc.)
demasiado cotidianos desgraciadamente *ara nosotros) Ma constituido e!
*unto de ma%or inJ!uencia en e! tringu!o durante casi tres dNcadasY es
decir !as em*resas de servicios % *or ende sus *roJesiona!es) nos Memos
dedicado en cuer*o % a!ma Ma escri"ir) reescri"ir) inventar) vo!ver a
inventar) *intar) di"uKar % mi! cosas ms *roceso) *rocedimientos %
metodo!ogOas 'ue a*arte de aca"ar casi con !a *roJesi(n de consu!tor
inJormtico) Man creado un c!ima de desconJianza Macia esta tNcnica de
manera casi insa!va"!e.



!2
Todo esto sumado a !os %a conocidos cam"ios tecno!(gicos de versiones) o
inc!uso de *roductos 'ue e! sector viene teniendo casi desde sus
comienzos. Con un *e'ue$o) gran matiz) adems aMora !os *aradigmas
como Internet) C!oud) redes socia!es) mo"i!e) Internet de !as cosas % a!gunos
ms nos mantiene en un estado de cam"io continuo sin *osi"i!idad de
res*iro) donde Memos *asado de tra"aKar con un eKe denominado
Tecno!ogOa) a otro 'ue *odemos !!amar QtendenciasR.
Este cam"io) mu% *roJundo) *otente % r*ido) Ma sido ca!do de cu!tivo
es*ectacu!ar *ara convivir con e! Q"ugR) con e! *arcMe) con e! error. 6Mora
somos ca*aces de com*rar *roductos 'ue sa"emos no Juncionan en su
tota!idad) *roductos en "eta tester) e! cua! e! *roveedor no s(!o no ocu!ta
sino 'ue *resume) 'ue es su insignia de servicio.
9n servicio en e! 'ue e! usuario tam"iNn Ma cam"iado) aMora es una
*ersona con conocimiento) 'ue no se des!um"ra ante !a tecno!ogOa sino 'ue
ePige su uso % sus resu!tados. 9n usuario g!o"a!izado 'ue tiene una red
demasiado ePtensa donde e!egir *roveedores % donde negociar *recios
mu% inJeriores a !os eP*uestos os deseados *or !os *roJesiona!es.
Este *anorama de Q*roducto r*idoR a Q*recios "aratosR) es ms *e!igroso
'ue e! Q"ueno "onito % "aratoR de !os a$os 2+) % so"re todo deKa en un
!ugar inmerecido a! nom"re de !a Qca!idadR. Es demasiado Jrecuente
escucMar Jrase como Q\es 'ue Mo% !a *a!a"ra ca!idad no vende\R) Q...%a no
se cree nadie !o de !a ca!idad\R.
6"rir un de"ate so"re esto ni si'uiera merece !a *ena) cua!'uier em*resa
!Oder Mo% en dOa en cua!'uier mercado) tiene a !a ca!idad como un *unto
c!ave de su estrategiaY % esas em*resas) !Oderes de verdad) invierten


!3
continuamente en meKorar no s(!o sus *roductos % servicios sino !a manera
de Macer!os % su contro! so"re ese *roceso.
8tra cosa diJerente es !a visi(n Qcorto*!acistaR) o si me *ermiten
QignoranteR 'ue mucMas em*resas) % *or !o tanto sus directivos tienen
acerca de !a ca!idad *ensando sim*!emente en QnormasR) Qse!!osR %
QcertiJicacionesRY MecMo a! cua! Memos contri"uido todos aun'ue de manera
es*ecia! !as grandes em*resas % !a administraci(n) donde mucMas veces
QCa!idadR es sin(nimo de Qre'uisitoR *ara *resentarse a una oJerta.


Sin em"argo no 'uiero Qescurrir e! "u!toR % centrarme en !o 'ue es e! o"Keto
de mi *resentaci(n % de este artOcu!o en consecuenciaY e! eKe de !a triada
denominado *ersonas.



!4
3., L6S E7S8/6S 8 L8S 78FESI8/6LES
#esde mi Mumi!de *unto de vista) !!evamos tiem*o e'uivocndonos con !as
acciones 'ue tomamos) es decir seguimos invirtiendo en !os eKes de !a
tecno!ogOa) 'ue consideramos indis*ensa"!e) % en !a de !os rocesos 'ue
nunca terminan de im*!ementarse a! cien *or cien.
7e*etimos una % cien veces *ro%ectos de reingenierOa) de gesti(n de!
cam"io) de transJormaci(n) o como viene siendo aMora !a moda de Lean
*ara tratar de conseguir 'ue en nuestra organizaci(n se Juncione de una
manera estandarizada) MomogNnea) conocida % donde todos *uedan
co!a"orar % *artici*ar.
; creo 'ue esas ePcusas 'ue so!emos *oner todos en nuestras
*resentaciones oweroint %a no son suJicienteY =a cua!es me reJieroA) mu%
Jci!:
Co!a"oraci(n *or *arte de !a a!ta direcci(n
Comunicaci(n a todos !os im*!icados.
=6 'uN nos resu!tan conocidasA) *or eso creo 'ue de"emos indagar un *oco
ms en *or'ue se *uede *roducir este caos organizaciona! 'ue no s(!o
signiJica grandes *Nrdidas econ(micas sino de *roductividad % credi"i!idad
de !as em*resas) *ero tam"iNn de desnimo % es*eranza en !os
tra"aKadores.




!5
Les *ro*ongo !a siguiente
Jormu!a:

#onde !a *rimera es !a Q*ersonaRY una *ersona a !a 'ue como Memos
contratado *ara tra"aKar % 'ue consideramos "ien *re*arada) con estudios
% ca*acitada Testo se !!ama eP*ectativasU) !e encargamos una serie de
tra"aKos 'ue desarro!!a en "ase a !a segunda ) rocesos.
or eKem*!o a una *ersona Tun KeJe de *ro%ectoU !e Macemos res*onsa"!e de
!a *!aniJicaci(n de! *ro%ecto) de !a *!aniJicaci(n de !as *rue"as) de !a
gesti(n documenta! de! *ro%ecto % de! seguimiento de! mismo) es decir
eKecutamos !a o*eraci(n ,b- cu%o resu!tado T7U es -.
ero como necesitamos ms !e *edimos 'ue se Maga cargo de! *!an de
ca!idad de! *ro%ecto % de !a gesti(n de !a conJiguraci(n de! mismo
contro!ando !as diJerentes entregas 'ue se !!even a ca"o. -X2c 4 % 4b,c1.
ero es 'ue e! negocio avanza mu% de*risa % !e damos !a res*onsa"i!idad de
gestionar !a re!aci(n con !a JactorOa % adems 'ueremos 'ue su*ervise !os
temas de seguridad de! *ro%ecto. 4X2c2) *ero 2b, em*ieza a ser a!go
*arecido a un -)5.
Fina!mente !e *edimos un *e'ue$o esJuerzo % 'ue se Maga cargo de !os SL6
% 'ue revise !a *!aniJicaci(n *ara ver si *odemos reducir e! tiem*o de
*rue"as *or'ue en desarro!!o van ma! de tiem*o. 2X2c,+ % !o *eor de todo
es 'ue ,+b,c +. /uestro KeJe de *ro%ecto Ma muerto *roJesiona!mente)
"ueno rea!mente no) Ma sido *eor) se Ma convertido en un zom"ie *ara e!
resto de! tiem*o 'ue tra"aKe en esa em*resa.
P # P $ % P # P $ % P # P $ % P # P $ %


!!
Esta transJormaci(n !e aJecta *roJundamente) %a 'ue este eP *roJesiona!)
"usca res*uestas en ITIL) en C&&I) en &.88F % !eKos de argumentar s(!o
sa!en 'ueKas de su "oca donde im*!ora a%uda %a 'ue !eKos de! *ro%ecto en
e! 'ue tra"aKa % !a em*resa 'ue !e *aga) se centra en e! *ago de una
Mi*oteca) en deudas *ersona!es) en "odas) re!aciones de *areKa) MiKos %
dems) es decir aMora es e! momento en e! 'ue rea!mente a*arece !a
Q*ersonaR) Masta entonces ePistOa e! *roJesiona!.
#onde radica !a diJerencia en un aPioma mu% senci!!o) !a em*resa Ma
invertido en 'ue ese KeJe de *ro%ecto crezca en *rocesos) en conocimiento)
*ero no en Ma"i!idades.
Es decir si cuando !os resu!tados eran igua! a - en vez de invertir en gesti(n
de !a conJiguraci(n % de !as *rue"as se Mu"iera invertido en Ma"i!idades de
gestionar tiem*o % de !iderazgo *or eKem*!o) !a o*eraci(n Ma"Oa 'uedado
en un 3b,2 cu%o resu!tado QEPtraordinarioR Mu"iera sido ,2.
Es decir) no s(!o Ma% 'ue invertir en !os vNrtices roceso % Tecno!ogOa 'ue
suman) sino en e! de !as *ersonas 'ue a diJerencia de! resto mu!ti*!ica) %
casi casi *odOa decir 'ue en a!gunos casos) inc!uso *otencia) %a 'ue e!
"ienestar % e! Juturo azu! en vez de! Qgris zom"ieR Mace sentirse Je!iz a ese
tra"aKador 'ue em*ieza a desarro!!ar su tra"aKo con asi(n % aMO es e!
momento donde !a em*resa gana de verdad.
Este eKem*!o es v!ido a"so!utamente *ara casi cua!'uier *roceso en !a
organizaci(n TIC) sin em"argo e! res*onsa"!e de ca!idad tiene unas
connotaciones mu% es*ecia!es 'ue vemos a continuaci(n.


!)
3.2 EL 7ES8/S6.LE #E C6LI#6#
Dace casi treinta a$os me toc( viaKar con mi em*resa a Ita!ia) en concreto a
/*o!es. H"amos a conocer una em*resa 'ue vendOa unos com*i!adores de
C8.8L 'ue e! "anco *ara e! 'ue tra"aKamos i"a a em*ezar a usar.
Tran'ui!os no vo% a Ma"!ar de C8.8L ni de *rogramaci(n aMora sino de una
visi(n 'ue tuve entonces % 'ue me Ma acom*a$ado Masta !os dOas de Mo%.
&e Ma"Oan Ma"!ado mucMo de! trJico en !a ciudad) % !a verdad caos se me
'ueda corto *ara !o 'ue a!!O vivO rea!mente. #esorden) *e!igro) temeridad\
se me ocurren mucMos adKetivos 'ue *ensa"a cada vez 'ue tenOa 'ue cruzar
una ca!!eY sin em"argo !!egamos a una gran rotonda *or e! centro de !a
ciudad cerca de !a ?ia de!!dE*omeo % a!!O en medio de un gran atasco % un !Oo
de cocMes como ni si'uiera Me visto en !a India) vi a un *o!icOa de traJico
*erJectamente uniJormado) de "!anco) con unas condecoraciones inc!uso)
Maciendo ga!a de su si!"ato indicando a todos !os cocMes Macia donde tenOan
'ue dirigirse.
or e! as*ecto de su tez) era un se$or maduro con eP*eriencia en !a
materia) su Jorma de com*ortarse tam"iNn desti!a"a ca"a!!erosidadY sin
em"argo nadie) a"so!utamente ningLn conductor !e MacOa e! ms mOnimo
casoY % *recisamente en ese momento me vino a !a ca"eza e! nom"re de
Juan Ezcurra) e! director de Ca!idad de mi em*resa a! cua! igua! 'ue a ese
*o"re agente de trJico nadie Macia ni e! ms mOnimo casoY % eso 'ue Juan
Ma sido *ara mO uno de !os meKores *roJesiona!es 'ue Me conocido en toda
mi carrera.
=:uN !e *odOa ocurrir a Juan entoncesA =:uN Ja!!a"a Mace casi 3+ a$os %
sigue Ja!!ando Mo% en dOaA) *or'ue !o 'ue nadie *uede negar es 'ue !a


!8
Jigura de! res*onsa"!e) o inc!uso) de! *roJesiona! 'ue se dedica a !a ca!idad
se Ma deteriorado de manera considera"!e en !os L!timos a$os.
Se Ma *erdido) si es 'ue a!guna vez se tuvo) !a inJ!uencia directiva) %a casi
todos !os res*onsa"!es de Ca!idad estn Juera de !os comitNs de direcci(n.
Su *roducto suena a Qro!!o metodo!(gicoR a Qms de !o mismoR inc!uso %
con sin nimo de oJender Qa!go cas*osoR.
&ucMas veces su mensaKe no se considera QaterrizadoR % en deJinitiva Man
*erdi( credi"i!idad.
6'uO surge otra J(rmu!a mucMo ms conocida *or todos:
Profe Profe Profe Profesional $ ( & ' ( ) # ) sional $ ( & ' ( ) # ) sional $ ( & ' ( ) # ) sional $ ( & ' ( ) # )
#onde C es e! conocimiento. Cuando contratamos a a!guien vamos a su
currOcu!o r*idamente a ver sus carreras) sus master) sus tOtu!os) 'ue reas
de *roceso conoce % cu!es son sus Ma"i!idades TDU) su eP*eriencia) su
Ma"i!idad dirigiendo e'ui*os) !os *ro%ectos 'ue Ma gestionado) etc.
Es decir 'ue un !icenciado) con un master) con dos idiomas) eP*erto en
gesti(n de !a ca!idad) de *ro%ectos) con !as certiJicaciones &"ooW) 6uditor
% certiJicador ITIL suma en !a *rimera o*eraci(n un 0 Tconocimiento ms
Ma"i!idadesU. Es *erJecto en deJinitiva.
ero nos 'ueda !a 6 de actitud % 'ue encima mu!ti*!icaY es decir ese
"ri!!ante ingeniero es un ti*o triste 'ue carece de em*atOa % encima 'uiere
ser director *or encima de todoY resu!tado 0b+ Igua! a cero. 6 !o meKor
como decimos aMora) en este mundo as'uerosamente Q*o!Oticamente


!&
correctoR) 3%a) *ero es "uena *ersona3) !o 'ue !a menos nos *ermite
mu!ti*!icar *or uno.
&i amigo 7aL! .a!tar dedica todo un ca*itu!o en su magnOJico !i"ro Qe! arte
de! ser Mumano Ten !a em*resaUR) a este tema donde aJirma de manera
contundente Q'ue !a actitud siem*re su*one una diJerenciaR % !o deKa mu%
c!aro a! *rinci*io de! mismo:R Si 'uieres meKorar) si 'uieres avanzar)
entonces ]*ica ade!ante^
Dace unas !Oneas %o Me Ma"!ado de Juan) un "uen *roJesiona!) *ero 'ue
carecOa de actitudes necesarias *ara !a gesti(n de !a ca!idad) un *roJesiona!
'ue a*arecOa cuando todo Ma"Oa Ja!!ado *ara recordarnos 'ue de"erOamos
Ma"er !eOdo !os *rocedimientos) un Mom"re 'ue renovar e! se!!o i"a
directamente a su "onus) *or !o 'ue era su *rioridad) un Mom"re 'ue
*ensa"a 'ue Jormar a gente 'ue Ma"Oa MecMo !a carrera era un error *or'ue
!es MacOa *erder tiem*o) un director 'ue cuando e! *roceso su"Oa a !a red
*ara 'ue todos !os !e%eran *ensa"a 'ue %a esta"a im*!ementado.
Creo sinceramente) 'ue !os res*onsa"!es de Ca!idad) % %o Me sido uno de
e!!os) tenemos gran *arte de cu!*a de esta situaci(n) *or eso 'uizs ePisten
tantas *ersonas desanimadas *or no decir Jrustradas 'ue deam"u!an) otra
vez !os zom"ies) *or !as em*resas como sim*!es mantenedores de renovar
certiJicaciones 'ue no es !o mismo 'ue res*onsa"!es de !as normas aun'ue
su cargo siga siendo e! de res*onsa"!e de Ca!idad.
Evidentemente estas *ersonas) 'ue *oseen una gran conocimiento % so"re
todo visi(n) Man *erdido !a i!usi(n *or su tra"aKo) Man o!vidado !a *asi(n %
*or !o tanto no son Je!ices) estancndose en una *e!igrosa zona de conJort


)0
'ue Man reJorzado con amargura % KustiJicaci(n) emitiendo discursos
cargados de naJta!ina % "uscando cu!*a"!es *or todas *artes.
6'uO es donde de"emos em*ezar a tra"aKar) % so"re todo a *ensar de
manera diJerente) %a 'ue si seguimos Maciendo !as cosas como venimos
MaciNndo!o *ues *osi"!emente consigamos !o 'ue venimos consiguiendo.
La *roJesora de *sico!ogOa de !a universidad de Ca!iJornia) SonKa
L%u"omirsW%) nos cuenta en su Jascinante !i"ro QLos mitos de !a Je!icidadR
'ue Q!os momentos crOticos en nuestra vida !eKos de ser aterradores o
de*rimentes) *ueden ser o*ortunidades *ara renovarse) crecer o cam"iar
signiJicativamente. Sin em"argo !o 'ue im*orta es !a manera en !os 'ue uno
!os reci"eR.
Las investigaciones recientes *onen a! descu"ierto 'ue !as *ersonas 'ue
Man eP*erimentado a!guna QadversidadR son a! Jina! ms Je!ices 'ue
a'ue!!os 'ue no Man suJrido ningLn inJortunio. Tener un Mistoria! de
resistencia a diversos momentos devastadores Qnos curteR % nos Mace estar
meKor *re*arados *ara maneKar a *osteriori !os desaJOos % traumas) grandes
% *e'ue$os. 6dems de Jomentar !a resistencia en genera!) !os
investigadores Man demostrado 'ue encontrar!e sentido a !os desaJOos de !a
vida nos a%uda a deJinir % aJianzar nuestras identidades) !o 'ue a su vez
a*unta!a e! o*timismo so"re nuestro Juturo % nos *ermite maneKar meKor
!as incesantes Juentes de *reocu*aci(n.
recisamente de situaciones negativas como !a 'ue nos aJecta) nuestra
manera de reaccionar *uede ser e! desencadenante de nuestra *ro*ia
Je!icidad. Si nosotros seguimos 'ueKndonos so"re e! QserR % no *asamos a
!a acci(n) QMacerR) vamos a caer en un *ozo sin JondoY sin em"argo


)1
intentado Macer cosas nuevas) viendo c(mo se *ueden Macer de manera
diJerente encontramos i!usi(n % *or !o tanto tenemos retos ante nosotros.
ara Macer esto Merramientas como e! coacMing) /L) &entoring) !iderazgo
u otras ms *ueden a%udarnos mucMo a e!a"orar nuestro *ro*io itinerario
'ue nos mar'ue se nuevo Morizonte % ese cam"io de *ers*ectiva de! 'ue
tanto Ma"!o.
=; 'uN caracterOsticas de"e tener ese cam"ioA =Dacia d(nde de"e
dirigirseA) "ueno vamos a ver!o a continuaci(n.
3.3 :96LIT; C86CD. 9/ /9E?8 87#E/
E! *o!iJacNtico mago % Mumorista Jandro) conocido co!a"orador de!
*rograma de te!evisi(n QE! MormigueroR) nos indica en su de!icioso %
divertido !i"ro QLa oreKa verdeR 'ue Qe'uivocarse es Ma"itua!. Forma *arte
de! *roceso. Sin Ja!!os no Ma% aciertos % sin Jracasos no Ma% NPitosR. ;
curiosamente recomienda varias veces a !o !argo de toda !a o"ra 'ue nos
a!eKemos de !a gente con %ate. Si) con %ate. Todos tenemos mucMos
conocidos) amigos % com*a$eros de tra"aKo 'ue se *asan e! dOa en e! %ate.
/o Macen otra cosa) !es encanta % no se dan cuenta de !o destructivo 'ue
es. E! %ate a! 'ue me reJiero no es una em"arcaci(n de !uKo 'ue surca !os
mares. /o) es un "arco ms *e!igroso) surca !as oJicinas) !os des*acMos %
merodea cua!'uier intento de *ro"ar ideas nuevas. Es e! %ate comLn) ms
conocido como e! Q%a te !o diKeR. Si) Q%a te !o diKeR cuatro *a!a"ras ma!ignas
cu%a com"inaci(n es mortOJera.
La gente con estos Q%atesR tiene un ego grande % una ca*acidad de
destrucci(n *sico!(gica a!ta) son t(Picas % es meKor tener!as !eKos) su veneno


)2
se va introduciendo dentro de nosotros *oco a *oco Masta conseguir 'ue no
intentemos nada nuevo *or'ue =*ara 'uNA) tota! si va a sa!ir ma!\ ero
esto no de"e signiJicar e! Jina!) sim*!emente una ca!!e cortada *or !o 'ue
tendremos 'ue dar marcMa atrs % sa!ir *or otra sa!ida de !a rotonda
anterior.
ara e!!o de"emos dotar a estos *roJesiona!es de !a ca!idad de un nuevo
"aL! de Ma"i!idades % com*etencias) *ara conseguir de nuevo !ograr !a
sosteni"i!idad) inJ!u%endo no s(!o en !o 'ue !a organizaci(n QD6CE de
manera diJerenteR) sino adems en !o 'ue !a organizaci(n QESR.
Estos *roJesiona!es no de"en so!amente crear !os *rocesos % !a Jorma en
'ue Macen !as cosas) sino adems transJormar !a cu!tura) !os va!ores % !a
Jorma de *ensar) !iderar *ersonas % e'ui*os.
En resumen: Qasar de !a cu!tura de! contro! % !a ePigencia a un *aradigma
de com*romiso % sosteni"i!idadR.



)3
Ta! % como sa!e reJ!eKado en !a anterior Jigura nuestras em*resas Man
crecido con !a necesidad de Macer !os *ro%ectos *erJectos % a !a *rimera
TE7FECCI8/U) *or !o cua! visto e! Mistoria! de nuestro sector casi nunca se
Ma conseguido. =; 'uN ocurre cuando no triunJasA ues 'ue !as cosas sa!en
ma! TF76C6S8U) entonces vienen !as !amentaciones. Cuando esto se
*roduce !a em*resa o nuestro res*onsa"!e nos advierte de 'ue esto no
*uede ser) de 'ue Ma% 'ue Macer!o meKor) % 'ue se va a *oner QencimaR de!
tema. Situaci(n curiosa %a 'ue !os !Oderes de"en *onerse Qde!anteR cuando
Ma% *ro"!emas % no QencimaRY % em*ieza a contro!ar!o todo TC8/T78LU) !o
'ue *roduce 'ue e! tra"aKador Maga su Junci(n o"!igado sin i!usi(n
T8.LIG6CIE/UY todo esto adems se *roduce en un estado de Qresi(nR 'ue
*odemos denominar EGIGE/CI6.
Tristemente casi todos Memos vivido a!guna vez estas situaciones) *ero Ma%
otras) *or eKem*!o en vez de "uscar es *erJecci(n a !a *rimera *odemos
tra"aKar de manera incrementa! % meKorando *oco a *oco Masta conseguir!o
T&EJ876 C8/TI/96U) ese estado nos !!eva a descu"rir % a*render cosas
nuevas T67E/#IB6JEUY cuando estamos a*rendiendo adems de Je!ices
ad'uirimos conJianza en nuestro sistema TC8/FI6/B6U !o 'ue es "sico
*ara 'ue nazca e! com*romiso TC8&78&IS8U % renazca !a *asi(n *or e!
tra"aKo. Este estado conocido con e! nom"re de EGCELE/CI6 no es un
*araOso) ni un mundo Je!iz como mucMos se su*onenY sino 'ue de"e ser un
sitio donde Ma%a Qtensi(nR 'ue Maga 'ue !os *roJesiona!es estNn atentos a
cada o*ortunidad % a cada situaci(n nueva.
Este mode!o nos da carisma % nos *roduce em*atOa en !as *ersonas 'ue
estn deseando nuevos retos % nuevos enJo'ues.


)4
Este nuevo mode!o de"e conseguir 'ue cam"ie !a Jorma en 'ue !a
organizaci(n *erci"e a !os tNcnicos % res*onsa"!es de! rea de ca!idad) 'ue
e!!os mismos deKen de ser contro!adores *ara convertirse en Jaci!itadores %
!Oderes de !a meKora continua.
; 'ue ese vNrtice de !a triada: rocesos) deKe de ser un Jin a *erseguir) *ara
convertirse en un medio de a*o%o *ara 'ue !as *ersonas de !a organizaci(n
!ogren !a meKora continua. Los *rocesos de ca!idad se dise$an con !as
*ersonas 'ue van a uti!izar!os) % estos estn a! servicio de !a organizaci(n %
no !a organizaci(n a! servicio de !os *rocesos.
Este cam"io de *ers*ectiva) 'ue *ermita a !os *roJesiona!es de !a ca!idad en
!as em*resas TIC a%udar de manera directa !as direcciones de igua! manera
'ue sucede en otros sectores como e! automovi!Ostico o industria!) de"e de
*roducirse de una Jorma natura! % "aKo unos *armetros necesarios.
La #ra. Si!via Lea! nos eP*!ica en su o"ra QIngenio % asi(nR Q'ue esta
transJormaci(n Te!!a se dirige directamente a !a innovaci(nU no es Jruto
directo de !a Jinanciaci(n) sino e! resu!tado de !a energOa creadora de !as
*ersonas. ara e!!o se "asa en una senci!!a metJora) !a innovaci(n es e!
resu!tado de !a com"usti(n de tres e!ementos: !as *ersonas) !a organizaci(n
% !a motivaci(n. Si estos se gestionan con eJiciencia e! resu!tado ser una
*otente energOa creadora) *ero si no se gestionan "ien) e! resu!tado ser
una sim*!e incineraci(nR.
; *ara e!!o crea un mode!o de gesti(n en tres dimensiones: e! mNtodo
Innova 3#G.


)5
Este mNtodo se considera un *roceso esencia!mente Mumano 'ue de"e ser
gestionado a travNs de tres dimensiones:
E! ecosistema creativo
E! *otencia! innovador
; !a *asi(n) motor "io!(gico 'ue nos im*u!sa a actuar.
#esde otra *ers*ectiva) e! condicionamiento de! entorno) nuestra
ca*acidad % "!o'ueos creativos % nuestra motivaci(n *or !a Ca!idad.
:uiero Macer es*ecia! Minca*iN a !a *rimera dimensi(n: e! ecosistema
creativo. 9n entorno 'ue !evante "arreras Jrente a! com*ortamiento de
Ca!idad inMi"ir e! esJuerzo de todos a'ue!!os 'ue tengan e! ta!ento % !as
Ma"i!idades *ara Macer!o. En estas organizaciones !a cMis*a de !a cu!tura de
ca!idad se a*agar. Eso de"e !!evar a !as em*resas a *re*ararse *ara
identiJicar % e!iminar !os Jrenos a !os 'ue se enJrenta e! *roceso %) *or
su*uesto) *ara *oner en marcMa !os mecanismos necesarios *ara su
ace!eraci(n.
En otras *a!a"ras) !as em*resas 'ue as*iren a !iderar este codiciado terreno
de"ern asegurarse de construir un ecosistema creativo ca*az de desatar
su Juerza innovadora % *ermitir desarro!!ar una cu!tura de ca!idad
sosteni"!e.
ara e!!o necesitaran monitorizar tres Jactores:
La cu!tura cor*orativa Ttecno!(gica) de innovaci(n % Ca!idadU
E! c!ima o entorno !a"ora!) %


)!
E! esti!o de !iderazgo % gesti(n.
8Ko a estos *untos *or'ue *or eKem*!o !a cu!tura cor*orativa) normas)
va!ores % Jorma de *ensar) es un e!emento con c!ara inJ!uencia so"re
nuestro com*ortamiento *roJesiona!. Si es "uena *uede guiarnos)
motivarnos e inc!uso a*asionarnos) *or e! contrario *uede convertirse en
un verdadero !astre si es conJusa o esta desorientada.
3.- C8/CL9SI8/ES
ara terminar me gustarOa deKar c!aro 'ue en ningLn momento trato de
Ja!tar a! res*eto o menos*reciar e! tra"aKo de mi!es de *roJesiona!es de !a
Ca!idad en nuestro *aOs) sino todo !o contrario 'uiero devo!ver!e e! *restigio
% e! va!or 'ue de"e tener.
;o mismo) en !os L!timos a$os de mi vida como *roJesiona! asa!ariado) era
res*onsa"!e de !a ca!idad en una mu!tinaciona! euro*ea. 6!!O se !!ama"a
EPce!encia o*eraciona!) *or a'ue!!o de 'ue e! nom"re de Ca!idad Qno
vendeR) !!egado un momento Jui des*edido % tuve 'ue comenzar una nueva
vida) !o cua! a*rovecMo *ara conJirmar !o anteriormente eP*uesto)
Jantstica 'ue me est *ermitiendo desarro!!ar mis *ro*ios *aradigmas.
Esta Junci(n de Ca!idad en *rinci*io Jue desem*e$ada *or un gru*o
re!ativamente numeroso) *ara terminar siendo desarro!!ado *or !a *ersona
'ue eKercOa como secretaria de mi de*artamento. or un !ado) me a!egro de
no estar a!!O) *ero como *roJesiona! de !a Ca!idad me a*ena *roJundamente
este MecMo 'ue encima) no es ais!ado.


))
or !o 'ue me reaJirmo en 'ue no es necesario crear un nuevo *uesto o un
nuevo *roceso sino sim*!emente en Macer un cam"io de o"servador) e!
res*onsa"!e de Ca!idad de"e ser a!guien Lti! a !a em*resa) 'ue !es Maga
*ensar) 'ue tra"aKe en *rimera !Onea % 'ue *artici*e de manera activa con
res*onsa"i!idad % autoridad dentro de !os *ro%ectos.
ara e!!o ese *roJesiona! adems de cua!iJicado de"e estar a!tamente
motivado) a'uO sO 'ue *ega eso de 'ue Q!a ca!idad es nuestra raz(n de serR.
La Ca!idad de"e ser e! e!emento diJerenciador de nuestra em*resa. ; como
diKo Ca!t #isne% QEntendamos !a Ca!idad como e! conKunto de acciones %
actividades 'ue consiguen 'ue un c!iente 'ue se Ma gastado e! dinero en
nosotros) !o vue!va a MacerR.
Dace Ja!ta tiem*o *ero de"emos oJrecer resu!tados !igados a! negocio
directamente) de"emos ser ca*aces de Q*oner nLmeros a! soJtwareR %
cuando digo nLmeros no me reJiero a mNtricas sino a dinero contante %
sonante.
9na vez un discO*u!o de! Jamoso director de or'uesta ?on FaraKan) se 'ueK(
enNrgicamente a N! recriminndo!e 'ue e! siendo igua! de "ueno co"ra"a
menos cuando dirigOa un concierto. E! gran FaraKan !e res*ondi(: Qa !o meKor
!o 'ue ocurre es 'ue cuando a usted !e contratan usted !es Ma"!a de mLsica)
mientras 'ue %o so!o Ma"!o de dineroR.
:uizs de"amos de deKar de ser tan Q!istosR % en vez de Ma"!ar tanto de!
#C6 % de usar sig!as de"amos Ma"!ar ms de negocio % demostrar !os 'ue
durante a$os Memos venido *redicando so!amente.


)8
; *or L!timo) renovarnos) a'uO sO 'ue todo ese movimiento 6gi!e) o Lean nos
*uede a%udar mucMoY siem*re me resu!ta *arad(Kico 'ue Merramientas %
tNcnicas con ms de cincuenta a$os nos resu!ten ePtraordinariamente
nuevas Mo% en dOa) 'uizs de"emos de deKar de !eer *ara em*ezar a actuar.
&artin Se!igman en su o"ra Q!a autNntica Je!icidadR deKa c!aro 'ue Qcuando
en e! tra"aKo Macemos !os 'ue se nos da "ien % nos sentimos Lti!es) nuestras
*osi"i!idades de ser Je!ices aumentanR. 6sO de senci!!o %) tantas veces) asO de
diJOci!.
6un'ue *ara terminar %a 'ue estamos en tierras ga!!egas !o 'uiero Macer
con una *ersona a !a cua! %o considero e! verdadero em"aKador de !a
Je!icidad en Es*a$a: Santiago ?z'uez 'uien Mace un *ar de a$os *u"!ic(
una o"ra 'ue en mi modesta o*ini(n tardar tiem*o en ser su*erada) % !o
digo no s(!o como *roJesiona! sino como *ersona aJectada *or su !ecturaY
su mensaKe Mizo cam"iar mi Jorma de enJrentarme a! mundo % de ver !as
cosas.
E! !i"ro se titu!a: QLa Je!icidad en e! tra"aKo\% en !a vidaRY en N! Ma% cientos
de ideas *gina tras *ginaY *ero %o so!o 'uiero uti!izar !itera!mente un
*rraJo 'ue es*ero os go!*ee de !a misma Jorma 'ue Mizo conmigo:
QSi vamos a tra"aKar cuarenta o ms a$os) =*odemos renunciar e intentar
ser Je!ices en e! tra"aKoA) =es *osi"!e *!antearse ser Je!ices en !a vida sin ser
Je!ices en e! tra"aKoA




)&
3.5 7EFE7E/CI6S
#%mond) F. 7 9uide to tCe Cmm8 Inderstanding tCe Capa$ilit- Maturit-
Model !or 0o!t"are . ,005. rocess Inc 9S
L%u"omirsW% ) S. Los mitos de la =elicidad. 2+,-. Ed. 9rano
Jandro. La Gre,a Merde. 2+,3. Ed. 6!ienta
.a!tar) 7. l arte de ser Cumano 1en la empresa3. 2+,2. Ed. 6!g(n
Lea!) S) % 9rrea) J. Ingenio - 6asi'n. 2+,3. Ed. LI#.
Se!igman) &. La aut5ntica !elicidad. 2++5. Ed .
?z'uez) S. La !elicidad en el tra$a,oO- en la &ida. 2+,2. Ed. 6ctua!ia.



80
4. BDD" UNIENDO NEGOCIO # PRUEBAS T$CNICAS PARA
ME%ORAR LA CALIDAD DEL SOFTWARE.

7utor8 nrique 0%ncCez

AHeCa&iourD is a more use!ul "ord tCan AtestD
BB +an /ortC

-., EL G76/ 78.LE&6 #EL S8FTC67E
Da% dos *ro"!emas Jundamenta!es a !a Mora de em*ezar un desarro!!o
soJtware:
,. Construir e! soJtware correcto
2. Construir e! soJtware correctamente
Cap*tulo
4


81
En !os !timos aos Ma Ma"ido un im*ortante avance en cmo rea!izar
soJtware de manera correcta. La a*aricin en !os !timos aos de
conce*tos como Continuous Integration TFow!er) 2++0U % ms
recientemente Continuous #e*!o%ment TJez Dum"!e) 2++4U Kunto a !a
a*aricin de tcnicas *ara meKorar !a ca!idad de! soJtware como T##
T.ecWU) G T.ecW) EPtreme rogramming EP*!ained: Em"race CMange)
,000UY % !a a*aricin de JrameworWs de desarro!!o como S%mJon% *ara
D) S*ring *ara Java o 7ai!s *ara 7u"%) Man MecMo 'ue sea ms Jci!
construir e! soJtware correctamente sim*!iJicando e! *roceso % evitando
!a du*!icidad de! cdigo % reduciendo !a com*!eKidad de! mismo.
6 *esar de e!!o) segn StandisM Grou* 7e*ort en e! 2++0
TStud%&ode.com) 2++0U e! 42a de todos !os *ro%ectos soJtware
em*ezados en Estados 9nidos en e! ao anterior Ma"an Jracasado) se
Ma"an cance!ado o sim*!emente Ma"an resu!tados insatisJactorios.
En su artcu!o) FC- did -our pro,ect !ail) TCer*a) 2++0U) !os autores
reJ!ePionan so"re !as causas ms comunes 'ue se Man encontrado a !a
Mora de deJinir un *ro%ecto como eJa!!idoe. En !a ta"!a *odemos
o"servar como !as *rinci*a!es razones de Ja!!o de un *ro%ecto son
*ro"!emas re!acionados con !as JecMas de entrega) !a so"reestimacin %
!os riesgos no contro!ados dentro de! *ro%ecto. 6dems) dentro de !os
motivos 'ue a*arecen) *odemos ver !a im*ortancia 'ue tienen !a
deJinicin *or *arte de! c!iente de unos re'uisitos no rea!istas o
inadecuados % e! cam"io en e! scope de! *ro%ecto durante !a rea!izacin
de! mismo.



82

Ta"!e ,. orcentaKe de errores en *ro%ectos soJtware

Todos estos *ro"!emas tienen un mismo origen: !a Ja!ta de
comunicacin % !a se*aracin 'ue ePiste entre !a *arte de negocio % e!
e'ui*o de desarro!!o.



83
-.2 LE/G96JE 9.IC98
Como Eric Evans descri"e en su !i"ro #omain #riven #esign _,3`:
PIn pro-ecto tiene pro$lemas mu- serios cuando su!re de
!racturaci'n en el lengua,e. Los e.pertos de negocio usan su propia
,erga mientras que el equipo t5cnico tiene su propio lengua,e en el
que entienden el negocio en t5rminos de dise>o... 6or esta di&isi'n
lingQ?stica< los e.pertos de negocio apenas sa$en descri$ir de una
manera &aga qu5 es lo que quieren - los desarrolladores son
!orzados a adoptar un lengua,e nue&o para ellos que apenas llegan
a entender.P
Evans Ma"!a de !a diJicu!tad 'ue a*arece entre !os miem"ros de un e'ui*o
*ara comunicarse de"ido a !a se*araci(n 'ue ePiste entre !os *untos de
vista de cada uno de !os im*!icados. 9na ma!a comunicaci(n *rovoca
ma!entendidos 'ue Macen 'ue e! e'ui*o *ierda tiem*o en reuniones *oco
c!aras reinter*retando re'uisitosY Mace 'ue a*arezcan deJectos 'ue
*rovocan retrasos en !a entrega % Jrustraci(n en e! e'ui*o !o 'ue Mace 'ue
!a *!aniJicaci(n em*eore % se genere un eJecto de eventana rotae mu%
*e!igrosa *ara e! *ro%ecto.
Cuanto ms grande es esta se*araci(n) ms diJOci! es conseguir detectar !os
grandes *ro"!emas 'ue mencion"amos en e! *unto anterior % ms
com*!icado se vue!ve su reso!uci(n.
6na!izando esta se*araci(n *odemos o"servar c(mo !a ma%orOa de !os
errores se *roduzcan en !a *rimera Jase de! *ro%ecto: en !a toma de
re'uisitos. Tavo!ato % ?incena) citando a Tom #e&arco) com*ro"aron


84
'ue e! 54a de todos !os "ugs se gestan dentro de !a eta*a de re'uisitos
TTavo!ato) ,02-U *rovocados *or una ma!a comunicaci(n entre am"as
*artes de! *ro%ecto. Si ana!izamos esto en Junci(n de !a curva de coste
de un cam"io res*ecto a! tiem*o *odemos o"servar como corregir estos
errores en !as *rimeras eta*as de un *ro%ecto es mucMo ms "arato 'ue
Macer!o en !as L!timas: darse cuenta de 'ue una Junciona!idad es *oco
Lti! o tiene un coste mu% grande en tNrminos de desarro!!o) es ms
senci!!o % "arato de corregir en !as eta*as de re'uisitos % dise$o 'ue
cuando !a Junciona!idad %a Ma sido im*!ementada.

Figure ,. Coste de! cam"io res*ecto a! tiem*o
ara evitar esto e! e'ui*o *uede !!evar a ca"o un esJuerzo % ado*tar un
!enguaKe eu$icuoe 'ue *ueda ser entendido *or todo e! mundo im*!icado en
e! *ro%ecto. #e esta manera) cuando e! e'ui*o uti!iza este !enguaKe de


85
manera natura! en sus conversaciones) en !a documentacin % en e! cdigo)
!a "recMa 'ue se*ara a !as diJerentes *artes se minimiza % !as *osi"i!idades
de ma!entendidos se reducen.
-.3 .##
En e! ao 2++4 #an /ortM *u"!ica un artcu!o en !a revista .etter
SoJtware T/ortM) 2++4U eP*!icando !os *ro"!emas 'ue tena a !a Mora de
em*ezar un *ro%ecto. /ortM traza"a un *ara!e!ismo con !as tcnicas de
T## % deca 'ue !e gustara sa"er antes de em*ezar a *rogramar *or
dnde de"era de em*ezar) cmo de"era de *ro"ar % cmo *odra
sa"er si !o 'ue esta"a *ro"ando era !o correcto o no. ara conseguir
esto e! *rimer *aso) segn /ortM) era 'ue Ma"a 'ue o!vidarse de!
conce*to e*ro"are % 'ue Ma"a 'ue em*ezar a *ensar en e! conce*to
com*ortamientoe %a 'ue de esta Jorma se *one e! Joco en cmo e!
soJtware de"era de actuar sin *ararse a *ensar en cmo
im*!ementar!o. E! autor deJiende 'ue Ma% 'ue Ma"!ar de un !enguaKe
comn a todos !os staWeMo!ders de! *ro%ecto 'ue todos *udieran
entender % 'ue *ermitiera detectar !os *ro"!emas mucMo antes de !o
'ue se esta"an detectando.
6 esta tcnica /ortM !a !!am HeCa&ior +ri&en +e&elopment T.##U % !a
deJini de !a siguiente Jorma
.## es una metodo!oga gi! de segunda generacin) outsideBin< pullB
$ased con mltiples staJeColders implicados< multiescala - altamente
automatizada. +escri$e un ciclo de interacciones con unas salidas $ien


8!
de!inidas que conclu-en en la entrega de un so!t"are que !unciona< $ien
pro$ado - &lido. T/ortM) Introducing .##) 2++4U
Esto se resume en deJinir e! soJtware en trminos de! com*ortamiento
deseado uti!izando un !enguaKe PGutsideBInP Tdesde negocio a
desarro!!oU % centrado en deJinir unos e!ementos comunes 'ue todo e!
mundo en e! *ro%ecto *uedan com*render sin diJicu!tad % 'ue Maga 'ue
e! desarro!!o de! soJtware sea ms senci!!o % eJiciente.
-.- GDE7FI/
9na vez deJinido e! *roceso 'ue se va a seguir) !o siguiente a deJinir es e!
cmo Ma de ser este *roceso. ara e!!o) .## deJine una Jorma de
es*eciJicacin con un Jormato mu% senci!!o % 'ue es com*artido *or !a
es*eciJicacin de !as Mistorias de usuario: !a narrativa.
9na narrativa sirve *ara deJinir e! ro! a! 'ue ese dirige !a Mistoria) cu! es
e! eJecto 'ue "usca 'ue tenga !a Mistoria en e! ro! % cu! ser e! va!or de
negocio 'ue !a Mistoria a*ortar. #e esta manera se consigue situar a
todos !os staWeMo!ders de! *ro%ecto en e! mismo *!ano % entender 'u
es !o 'ue se *ersigue *or cada una de !as Mistorias evitando
re'uerimientos inti!es o contradictorios.
6 *artir de una narrativa es necesario deJinir !os escenarios 'ue !a
cu"ren en Jorma de eKem*!os senci!!os 'ue descri"an !as Mistorias de
usuario 'ue se desarro!!arn. En *rinci*io) no ePiste un re'uisito Jorma!
de cmo una Mistoria de"e de ser escrita % se deKa a !os staWeMo!ders 'ue


8)
e!igieran e! su%o *ro*io. ara Macer!o ms senci!!o ePiste una *!anti!!a
mu% senci!!a *or !a 'ue se *uede em*ezar:
T;=38" c!aro % senci!!o) !o ms descri*tivo *osi"!e.
N7997;067" una *e'uea seccin introductoria 'ue es*eciJica !o 'ue se
'uiere rea!izar) 'u actor ser 'uien !o rea!ice % 'u va!or de negocio
derivar de !a Mistoria.
E1@4579081" 9na descri*cin de cada caso es*ecJico 'ue deJine !a
narrativa. #e"en de tener !a siguiente estructura:

Descripcin de !a situaci(n inicia! en !a 'ue se encuentra e! actor.


Esto *uede considerarse un *aso Lnico o varios *asos
de*endiendo de! escenario 'ue se 'uiera *ro"ar.

Accin 'ue rea!iza e! usuario % 'ue *rovoca e! inicio de!


escenario.

Estado Jina! es*erado.



ara sim*!iJicar ms !a escritura de narrativas) .## uti!iza un !enguaKe
semi3Jorma! !!amado GMerWin 'ue *ermite descri"ir e! com*ortamiento
de! soJtware sin entrar en e! deta!!e de c(mo e! com*ortamiento es
im*!ementado. Fue deJinida *or /ortM en e! 2++1 T/ortM) dannortM.net)
2++1U *ara 'ue *udiera ser ado*tado *or !as diJerentes Merramientas
soJtware de .## 'ue esta"an em*ezando a desarro!!arse. Se "asa en e!
conce*to de Husiness :eada$le +0L % deJine una *e'ue$a gramtica
Jorma con mu% *ocos e!ementos *ero mu% c!aros en cunto a uso.


88
S;89D" /om"re de !a Mistoria
I5 89?49 ;8 deJinir un o"Ketivo a rea!izarse
A1 7 ro!<actor im*!icado en !a Mistoria
I E75; ;8 descri*ci(n de !o 'ue se 'uiere o"tener
S@457908" /om"re de! escenario
G0645 un estado *revio en e! 'ue se encuentra e! actor
WF45 e! usuario rea!iza una acci(n o interacci(n
TF45 com*ro"amos 'ue se Ma *roducido un resu!tado correcto
La nica sintaPis 'ue tiene este #SL
,
es !a 'ue a*arece en negrita % 'ue
sirven *ara marcar un *unto de inicio comn *ara todas !as Mistorias de
usuario.
ara redactar un escenario .en indica en su artcu!o PImperati&e &s.
+eclarati&e 0cenarios in user storiesP T&a"e%) 2++2U 'ue !a Jorma de
redactar de"e de ser mediante e! uso de! dec!arativo en !ugar de!
im*erativo % *ensar en un !enguaKe de negocio evitando e! uso de todos
!os e!ementos tcnicos de manera 'ue todo e! mundo *ueda entender

1
#omain3S*eciJic Language: Mtt*:<<martinJow!er.com<ds!.Mtm!



8&
cu! es e! o"Ketivo de! escenario % Macindo!o inde*endiente de !as
tecno!ogas o de !a codiJicacin.
-.5 C9C9&.E7
Cucum"er es una Merramienta *ara eKecutar test automticos en esti!o
.## % escrito en 7u"%. Cucum"er a%uda a !a tarea de deJinir un !enguaKe
u"icuo *ro*orcionando un terreno en e! 'ue negocio % desarro!!o
*uedan encontrarse.
Los tests de Cucum"er interaccionan directamente con e! c(digo
desarro!!ado) *ero son escritos en un !enguaKe 'ue !os staWeMo!ders de
negocio *uedan entender. Esto *ermite !a co!a"oraci(n en !a deJinici(n
de estos tests % *ermitir un Jeed"acW r*ido *or *arte de todo e! mundo
invo!ucrado en e! *ro%ecto. 6! escri"ir estos test antes de em*ezar e!
desarro!!o *odemos eP*!orar % erradicar !os ma!entendidos antes de 'ue
estos !!eguen a *roducirse o a codiJicarse dentro de! c(digo.
-.5., =CE&8 F9/CI8/6A
Cucum"er es una Merramienta de !Onea de comandos. Cuando se eKecuta
"usca arcMivos de tePto !!amados e!eaturese % trata de !eer !as
es*eciJicaciones "uscando escenarios 'ue *ro"ar.
Cada uno de !os escenarios es una !ista de estepse 'ue se traducen desde
9CerJin a un conKunto de Junciones en 7u"% 'ue de!egan en una !i"rerOa
'ue eKecutar !as acciones contra e! sistema a *ro"ar. Esto sue!e im*!icar
e! uti!izar una !i"rerOa de automatizaci(n como !i"rerOas de Hro"ser


&0
7utomation TCa*%"ara) Catir...U) Mo$ile 7utomation TCa!a"asMU o
interactuar directamente con e! sistema a *ro"ar. odemos ver un
diagrama de! Juncionamiento de Cucum"er en !a siguiente imagen

Figure 2. Funcionamiento de Cucum"er


&1
-.4 =CE&8 I&LE&E/T67 9/ 78CES8 .##A
9na vez 'ue Memos Ma"!ado de !a "ase de .## es Mora de *ensar en c(mo
!!evar!a a ca"o dentro de un *ro%ecto.
-.4., #EFI/I7 L8S ESCE/67I8S 6 #ES6778LL67
Es !a *arte Jundamenta! de! *roceso de .## %a 'ue en este caso sa!drn !os
escenarios 'ue guiarn todo e! desarro!!o de! *roducto % sern !os 'ue
generen e! !enguaKe comLn 'ue se usar en e! *ro%ecto.
Los 6cce*tance Criteria T6CU de"en de deJinirse antes de cada s*rint %
de"en de deJinir de Jorma c!ara e ine'uOvoca cua!es sern !as Mistorias de
usuario 'ue servirn *ara dar *or v!ido un s*rint) *or tanto) de"e de
im*!icar a todos !os staWeMo!ders de! *ro%ecto.
La deJinici(n de"e de rea!izarse uti!izando e! !enguaKe GMerWin % a! Jina! de !a
sesi(n de"e de ePistir uno o varios arcMivos eJeaturese 'ue inc!u%an !as
Jeatures % !os escenarios 'ue de"ern de eKecutarse en ese s*rint. Estos
arcMivos no de"erOan de modiJicarse a !o !argo de! desarro!!o sa!vo *ara una
reJactorizaci(n o una sim*!e ac!araci(n o correcci(n de !os *armetros.
-.4.2 C7E67 TESTS 69T8&@TIC8S :9E ?6LI#E/ L6 F9/CI8/6LI#6#
9na vez 'ue %a se Man deJinido !as Jeatures e! siguiente *aso es deJinir una
serie de tests automticos 'ue va!iden estos escenarios. Esto Ma de
rea!izarse antes de em*ezar !a codiJicaci(n % de"e de seguir !os *rinci*ios
de T##:


&2
Escri"ir un test 3f ?er como todos !os test Ja!!an 3f Escri"ir c(digo 3f
7eescri"ir e! test
-.4.3 C7E67 9/ E/T87/8 #E T76.6J8
Casi tan im*ortante como tener crear test automticos 'ue va!iden e!
*roducto es tener un entorno 'ue *ermita 'ue estos test se eKecuten de
manera correcta) eJiciente % eJicaz. Si un test ePiste *ero no se eKecuta
nunca) es inesta"!e *or cu!*a de! entorno o es ePcesivamente !ento) no se
uti!izar % e! esJuerzo *or crear un *roceso eJiciente no servir de nada.
ara crear un entorno de tra"aKo eJiciente Ma% 'ue *ensar en d(nde se
eKecutarn !os tests Ten una m'uina !oca!) en una m'uina de integraci(n
continua...U % con 'uN Jrecuencia se eKecutarn Tse eKecutar en cada
commit) de manera nocturna) cada cierto tiem*o...U. La idea 'ue de"e de
*rimar es 'ue estos tests sern !os 'ue digan si e! s*rint est terminado % es
v!ido *or !o 'ue !os desarro!!adores Man de *oder eKecutar!os cuando
'uieran % 'ue e! resu!tado 'ue *ro*orcionen de"e de ser rea! % agn(stico
de d(nde !o estNs eKecutando. ara a%udar con esto ePisten Merramientas
como ?agrant o #ocWer 'ue *ermiten deJinir m'uinas virtua!es de manera
senci!!a % !igera 'ue *ermiten a! desarro!!ador tener un entorno ede
*roducci(ne en su *ro*io ordenador.
-.4.- E?8L9CIE/ ; 6#6T6CIE/
Siguiendo !os *rinci*ios 'ue .ecW deJine en e! 6gi!e &aniJesto T.ecW)
&aniJesto Jor 6gi!e SoJtware #eve!o*ment) 2++,U Ma% 'ue *oner a !as
*ersonas antes 'ue a !as Merramientas. Es im*ortante ana!izar cmo se
ada*ta e! e'ui*o a este *roceso e ir ada*tndo!o segn va%a


&3
evo!ucionando e! *ro%ecto *ara cu"rir !as necesidades % !as
*ecu!iaridades de cada e'ui*o.
Es im*ortante 'ue !as retros*ectivas de cada s*rint sirvan *ara detectar
cua!es Man sido !os errores % !as meKores 'ue Man de *roducirse en e!
siguiente s*rint % Man de servir *ara ir deJiniendo meKor cmo Man de
escri"irse !os escenarios) 'u Man de cu"rir % 'u tra"aKo Ma de
meKorarse.
-.1 C8/CL9SI8/ES
Demos visto como .## se ada*ta mu% "ien a !as metodo!ogOas gi!es)
a%udando a !os e'ui*os 'ue !o *ractican a meKorar !a comunicaci(n entre
!as diJerentes *artes invo!ucradas) deJiniendo *ara e!!o) un !enguaKe u"icuo
!!amado GMerWin.
La deJinici(n de este !enguaKe) Kunto a !a creaci(n de test automticos antes
de !a codiJicaci(n) Mace 'ue !a codiJicaci(n se ms senci!!a %a 'ue e! e'ui*o
sa"e con eKem*!os 'uN Ma% 'ue Macer % 'uN se es*era de e!!os.
6dems) sim*!iJicamos e! *roceso de desarro!!o aumentando e! Jeed"acW
sin tener 'ue a$adir carga de reuniones % conseguimos tener una
documentaci(n constantemente actua!izada sin necesidad de tener 'ue
rea!izar un esJuerzo ePtra.
En resumen) .## se *uede a*!icar en cua!'uier *roceso reduciendo costes
o*erativos % meKorando !a im*!icaci(n de !a gente en e! *ro%ecto.



&4
-.2 7EFE7E/CI6S
.ecW) F. T,000U. .treme 6rogramming .plained8 m$race CCange.
6ddison3Ces!e%.
.ecW) F. T2++,U. Mani!esto !or 7gile 0o!t"are +e&elopment. 6gi!e
6!!iance.
.ecW) F. Ts.J.U. 2estB+ri&en +e&elopment $- .ample. 2++3: 6ddison
Ces!e% 3 ?aseem.
Cer*a) /. a. T2++0U. CM% #id ;our roKect Fai!A Commun. 7CM) ,3+3
,3-.
Evans) E. T2++-U. +omainB+ri&en +esign R 2acJling Comple.it- in tCe
Seart o! 0o!t"are. 6ddison3Ces!e%.
Fow!er) &. T2++0U. Continuous Integration. 6ractices.
Jez Dum"!e) C. 7. T2++4U. TMe #e*!o%ment roduction Line. 6roceedings
o! 7gile.
&a"e%) .. T,0 de &a% de 2++2U. $enma$e-.com. 8"tenido de
Mtt*:<<"enma"e%.com<2++2<+5<,0<im*erative3vs3dec!arative3
scenarios3in3user3stories.Mtm!
/ortM) #. T&arcM de 2++4U. Introducing .##. Hetter 0o!t"are.
/ortM) #. T,1 de Jun de 2++1U. dannortC.net. 8"tenido de Introducing
r"eMave: Mtt*:<<dannortM.net<2++1<+4<,1<introducing3r"eMave<


&5
Stud%&ode.com. T2++0U. CCaos :eport.
Tavo!ato) . a. T,02-U. 6 rotot%*ing &etModo!og% and Its Too!. In
7pproacCes to 6rotot-ping.



&!
5. LA CALIDAD DEL PRODUCTO DESDE LAS PRUEBAS # EN
RENDIMIENTO.

7utor8 6edro 0e$asti%n Mingo

ALas prue$as de rendimiento anticipan el comportamiento del so!t"are en un
entorno realD
BB 6edro 0e$asti%n Mingo
5., I/T78#9CCIE/
En este ca*Otu!o est descrita una a*roPimaci(n a !as *rue"as de
rendimiento de soJtware desde una *ers*ectiva organizativa % uti!itarista:
descri"imos !os e!ementos necesarios *ara rea!izar *rue"as de rendimiento
% *ro*onemos unos eKem*!os 'ue i!ustran c(mo se a*!ican *ara su "uen
entendimiento % a*!icaci(n. La idea es 'ue cua!'uiera 'ue conozca e!
a*orte de va!or 'ue *ro*orcionan !as *rue"as sea ca*az de identiJicar !as
situaciones en !as 'ue !as *rue"as de rendimiento Jorman *arte de !a
so!uci(n.
Cap*tulo



&)
5.2 ELE&E/T8S .@SIC8S
E! *rimer e!emento en 'ue aMondar este ca*Otu!o es !a SI&9L6CIE/ 'ue es
!a Jorma 'ue tienen !as *rue"as de rendimiento) es decir) en 'uN Ma% 'ue
*ensar *ara dise$ar unas "uenas *rue"as. 6 *artir de aMO sa!en e! resto de
!os e!ementos) 'ue tam"iNn estn descritos en cada una de !as secciones:
DE776&IE/T6S *ara !!evar !as *rue"as a ca"o) 8.JETI?8 con e! 'ue se
Marn !as *rue"as % E/T87/8 en e! 'ue se van a eJectuar. Con todos estos
e!ementos *odemos articu!ar % com*render unas *rue"as de rendimiento
'ue estNn a !a a!tura de !as eP*ectativas.
5.3 L6S 79E.6S S8/ SI&9L6CIE/
Lo *rimero 'ue Ma% 'ue tener en cuenta a !a Mora de *!aniJicar *rue"as de
rendimiento es 'ue !as *rue"as nos van a *ermitir conocer e!
com*ortamiento de! soJtware en condiciones de uso. Estas *rue"as sern
c!ave *ara reca"ar !a inJormaci(n necesaria *ara tomar decisiones so"re !a
ar'uitectura soJtware % Mardware de !a a*!icaci(n.
or !o tanto en e! origen de !as *rue"as est e! an!isis de !as condiciones en
!as 'ue e! soJtware *restar servicio: cuantos usuarios !a uti!izarn) con 'uN
Jrecuencia) 'uN Junciona!idades sern ms costosas desde e! *unto de vista
de !os recursos de! sistema) con 'uN inJraestructura se cuenta) 'uN
comunicaciones estarn dis*oni"!es) etc.
En resumen) se trata de crear un escenario de *rue"as 'ue reJ!eKe !as
caracterOsticas signiJicativas de !a rea!idad) de! dOa a dOa de soJtware en
*roducci(n. Las *rue"as de"en simu!ar !as situaciones a !as 'ue se *uede


&8
tener 'ue enJrentar e! sistema: *icos de tra"aKo) Junciona!idades 'ue
consumen mucMos recursos) caOda de e!ementos de inJraestructura)
conocer e! tiem*o de recu*eraci(n de! sistema en condiciones de demanda)
etc. E! nLmero de escenarios es inJinito % res*onde a !as necesidades de
conocimiento 'ue tengan !os e'ui*os de desarro!!o de !as a*!icaciones.
5.- /ECESIT6&8S DE776&IE/T6S
E! *unto de *artida de !a simu!aci(n de escenarios a !os 'ue va a tener 'ue
Macer Jrente !a a*!icaci(n nos deJine e! *rimer reto: =C(mo Mago *ara
simu!ar !a carga de tra"aKo 'ue ,++ usuarios generan en e! sistemaA
8"viamente no es Jci! em*!ear usuarios rea!es *ara Macer !as *rue"as) asO
'ue !a res*uesta a este reto nos !a tiene 'ue dar !a tecno!ogOa: 9ti!izando
Merramientas 'ue generen concurrencia % carga de tra"aKo en Junci(n de
!as necesidades de! escenario.
Las Merramientas 'ue necesitamos de"en cum*!ir con !as siguientes
caracterOsticas: *osi"i!idad de *arametrizaci(n de !a Junciona!idad de!
soJtware a *ro"ar Tuso de datos diJerentes % usuarios diJerentesU) eKecutar
dicMa Junciona!idad de manera concurrente *ara generar carga de tra"aKo
TmL!ti*!es Mi!os de eKecuci(nU) conJigurar e! escenario *ara simu!ar
diJerentes *erJi!es de eKecuci(n T*icos % va!!es de tra"aKo asO como carga
incrementa! sostenidaU %) *or L!timo) de"e ser ca*az de reco!ectar !os
resu!tados de !as *rue"as *ara su *osterior an!isis.
/o es e! o"Ketivo de este tePto recomendar ni se$a!ar ninguna Merramienta
en *articu!ar) %a 'ue !a e!ecci(n de*ende de! contePto de uso) de !as
necesidades % de! *resu*uesto dis*oni"!e. Se trata sim*!emente identiJicar
este e!emento) KustiJicar su necesidad % g!osar sus caracterOsticas. Lo 'ue sO


&&
es de uti!idad % conviene remarcar es 'ue es *osi"!e tanto uti!izar una so!a
Merramienta 'ue cu"ra de ePtremo a ePtremo !as necesidades de! e'ui*o)
como una com"inaci(n de Merramientas es*ecia!izadas en distintas
Junciona!idades TMerramientas de scri*ting) de monitorizaci(n) etc.U.
5.5 #EFI/I&8S 8.JETI?8S
7esu!ta evidente se$a!ar 'ue *ara !a rea!izaci(n de !as *rue"as de
rendimiento) asO como de cua!'uier otro ti*o de *rue"a) de"emos marcar
un o"Ketivo) ='uN *retendemos conseguirA =:uN 'ueremos demostrarA
=:uN resu!tado nos va a va!idar !a *rue"aA /orma!mente !as res*uestas a
estos o"Ketivos estn en !os re'uisitos de !a a*!icaci(n.
Si *ensamos 'ue !os re'uisitos son !a descri*ci(n Junciona! % tNcnica de !a
a*!icaci(n) !a "ase so"re !a 'ue se constru%e e! soJtware) es !(gico !!egar a !a
conc!usi(n de 'ue !os re'uisitos de"ern ser nuestra guOa *ara dise$ar !as
*rue"as % *ara va!idar sus resu!tados. /o o"stante) inc!uso en e! meKor
escenario *osi"!e) es Jrecuente encontrarse con re'uisitos im*recisos desde
e! *unto de vista de rendimiento.
#esde a'uO me *ermito recomendar a !ector 'ue *iense en !a simu!aci(n
como !a *rue"a 'ue Ma% 'ue Macer *ara 'ue e! o"Ketivo sea e! resu!tado
mOnimo 'ue de"emos o"tener. 6!go asO como e! nive! 'ue !a a*!icaci(n tiene
'ue su*erar *ara considerar !a *rue"a como v!ida. retendemos simu!ar
una situaci(n % *ara e!!o Ma% 'ue eKecutar 3 Junciona!idades con un nLmero
concreto de usuarios % durante un *eriodo de tiem*o) e! o"Ketivo serOa
veriJicar si !a a*!icaci(n res*onde siem*re) inc!uso en e! momento de
mPima carga) en menos de , segundo. /ecesitamos sa"er 'uN Ma% 'ue


100
Macer % 'uN resu!tado indicar 'ue e! resu!tado de !a *rue"a Ma sido
satisJactorio.
9n eKem*!o *ara i!ustrar esta recomendaci(n: !a simu!aci(n serOa e! de*orte
'ue tiene 'ue *racticar !a a*!icaci(n % e! o"Ketivo *odrOa ser !a marca
necesaria) a!go como sa!to de a!tura su*erando !os 2)2+ metros.
5.4 C8/ST79I&8S EL E/T87/8
Demos em*ezado *!aniJicando !as *rue"as como una simu!aci(n de una
situaci(n rea!) Memos !!egado a !a conc!usi(n 'ue *ara !!evar a ca"o !a
simu!aci(n necesitamos Merramientas % o"Ketivos % nos Ja!ta e! L!timo
e!emento: E! entorno.
E! entorno es e! !a"oratorio donde vamos a eKecutar !as *rue"as) asO 'ue
de"er reunir una serie de caracterOsticas deJinidas *or !as *rue"as 'ue se
*retenden !!evar a ca"o. 6! igua! 'ue sucede con !os o"Ketivos) !a
caracterizaci(n de! entorno tiene 'ue ser conocida % mu% *recisa *ara 'ue
!os resu!tados o"tenidos sean conc!u%entes.
L(gicamente *odemos *artir de !a c!asiJicaci(n c!sica de !os entornos:
#esarro!!o) Integraci(n) re*roducci(n % roducci(n) *ero Ma% 'ue ser
conscientes de 'ue esta es una c!asiJicaci(n !imitada a! uso 'ue se !a da a!
entorno. Cuando Ma"!amos de entorno como e!emento "sico se trata de
a!go ms *roJundo) ms *reciso: Ma"!amos de !a Junciona!idad de! entorno
% tam"iNn de !os com*onentes de !a inJraestructura) de !os contro!adores
de dis*ositivos) de !as comunicaciones) de to*o!ogOas de red)\ en resumen)
Ma"!amos de !as caracterOsticas tNcnicas 'ue *ueden deJinir e! ti*o de
simu!aci(n 'ue 'ueremos !!evar a ca"o.


101
?o!viendo a !a metJora de*ortiva usada en e! *unto anterior) e! sa!to de
a!tura de 2)2+ metros) *odrOamos considerar a! entorno como !a *ista en !a
'ue se va a *roducir ese sa!to % deJinir una *ista de tierra) de tartn) en
a!titud) con !!uvia) con viento\ Todas estas condiciones individua!mente o
com"inadas Macen 'ue !a *rue"a sea diJerente.
5.1 EGL8T6/#8 L6S 79E.6S #E 7E/#I&IE/T8
Los e!ementos anteriormente descritos se com"inan de distintas Jormas %
resu!tan en distintas *rue"as. Como es !(gico todo este conKunto de
*rue"as tra"aKan a! servicio de !a ca!idad de! *roducto soJtware %a 'ue
cuanta ms simu!aciones Ma%amos *revisto % eKecutado) ma%or inJormaci(n
tendremos de! com*ortamiento de !a a*!icaci(n % meKor *re*arado estar
e! soJtware *ara Macer!e Jrente.
En este *unto vamos a deta!!ar a!gunos eKem*!os tO*icos de *rue"as 'ue se
*ueden rea!izar) cada una con su *ro*ia com"inaci(n de e!ementos. Como
se Ma mencionado anteriormente) e! nLmero de com"inaciones % de
escenarios *osi"!es es *rcticamente inJinito) asO 'ue !os eKem*!os a'uO
eP*uestos *retenden servir de *uerta de entrada *ara 'ue e! !ector sea
ca*az de ada*tar!os a sus circunstancias % necesidades. ensando a ms
!argo *!azo) inc!uso serOa *osi"!e 'ue e! !ector Juese ca*az de dise$ar sus
*ro*ias *rue"as de rendimiento "asndose en !os cuatro e!ementos
Tsimu!aci(n) Merramientas) o"Ketivos % entornosU % en !os eKem*!os descritos
a continuaci(n.



102
5.2 79E.6S #E C8&8/E/TES
E5;8958. #esarro!!o
O2G4;068. ?eriJicar e! *unto de ru*tura 'ue cada com*onente ePterno
Tdrivers % otros e!ementosU tiene cuando !a carga de tra"aKo aumenta sin
!Omite. Se a!canza un *unto de ru*tura Te! com*onente deKa de res*onderU o
e! tiem*o de res*uesta su*era un !Omite *reesta"!ecido.
4997B045;71. Las deJinidas *or e! *roduct3owner.
S0B=37@0C5. E! com*onente est insta!ado % reci"e *eticiones dentro de!
marco de! sistema.
D41@90:@0C5. Este ti*o de *rue"as se !!eva a ca"o so"re cada com*onente
de manera ais!ada antes de integrar!o en !a inJraestructura *ara identiJicar
% cata!ogar e! rendimiento de cada uno. La idea es a*roPimarse a !os !Omites
de cada uno de estos com*onentes *ara conocer !os *untos dN"i!es % !a
ca*acidad mPima 'ue *odr aJrontar e! sistema.
Este ti*o de *rue"as se *uede Macer tam"iNn con e! o"Ketivo de veriJicar
'ue !a inJraestructura "ase de! sistema est "ien dise$ada o si necesita
a!gLn ti*o de am*!iaci(n o reJuerzo en a!guna de !as *artes 'ue !a
com*onen.



103
5.0 79E.6S #E 78FILI/G
E5;8958. uede ser e! de #esarro!!o o inc!uso e! de Integraci(n. Es
im*ortante 'ue e! m(du!o estN ais!ado % tra"aKando en !as condiciones ms
asN*ticas *osi"!e.
O2G4;068. Son unas *rue"as *arecidas a !as anteriores %a 'ue su o"Ketivo es
someter a !a mPima ePigencia a !os m(du!os construidos *or e! e'ui*o de
desarro!!o en un entorno ais!ado *ara veriJicar su dise$o Junciona! % su
estructura interna. En condiciones norma!es o*timiza !a construcci(n
meKorando e! uso de recursos Tmemoria) disco) acceso a datos) etc.U % !os
tiem*os de res*uesta.
4997B045;71. Las deJinidas *or e! *roduct3owner.
S0B=37@0C5. :ueremos simu!ar !a mPima carga 'ue so*orta e! m(du!o *ara
veriJicar si su dise$o es e! 'ue *ro*orciona un ma%or rendimiento. Este ti*o
de *rue"as tam"iNn oJrece !a *osi"i!idad de enJrentar dos construcciones
diJerentes *ara e!egir !a 'ue meKor cum*!a con e! o"Ketivo de rendimiento.
Las *rue"as de *roJi!ing % !as *rue"as de com*onentes se *ueden a*!icar en
e! caso de migraciones % mantenimientos *ara asegurar 'ue e! nuevo
com*onente o m(du!o no degrada e! rendimiento de! anterior antes inc!uso
de integrar!o.
9n tema im*ortante a tener en cuenta en este caso) es 'ue e! tama$o de
!os m(du!os !o de"e determinar e! contePto: *uede Ma"er m(du!os mu%
*e'ue$os 'ue !ancen transacciones im*ortantes 'ue tienen 'ue ser


104
*ro"adas % m(du!os ms grandes 'ue rea!icen tareas de so*orte en !os 'ue
e! rendimiento no sea un Jactor crOtico.
5.,+ 79E.6S #E #I&E/SI8/6&IE/T8
E5;8958. Se *uede usar un entorno de Integraci(n siem*re 'ue dis*onga de
todas !as conePiones con sistemas ePternos % 'ue tenga una com*osici(n
esca!a"!e. Si no cum*!iera con estas caracterOsticas e! entorno ms
adecuado serOa e! de re*roducci(n.
O2G4;068. E! o"Ketivo de estas *rue"as es esta"!ecer cu! es e! tama$o de !a
inJraestructura 'ue so*ortar a! soJtware de !a a*!icaci(n. L(gicamente)
adems de! tama$o) este ti*o de *rue"as de"erOa servir *ara *ro"ar !as
conJiguraciones de cada e!emento de !a inJraestructura Tcom*onentesU o !a
ar'uitectura 'ue se de"e ado*tar *ara o*timizar !a res*uesta de !a
a*!icaci(n Tservidores en c!uster) "a!anceadores) red de "acWu*) etc.U.
4997B045;71. Las deJinidas *or e! *roduct3owner.
S0B=37@0C5. En este ti*o de *rue"a se trata de simu!ar diJerentes
circunstancias a !as 'ue tendr 'ue Macer Jrente !a a*!icaci(n como
conKunto. E! *!anteamiento estndar serOa Macer *rue"as de carga con
varios nive!es de carga) *rue"as de vo!umen % *rue"as de estrNs "uscando
e! *unto en e! 'ue !a inJraestructura deKa de a"sor"er carga de tra"aKo.
Este ti*o de *rue"as est es*ecia!mente recomendadas en des*!iegues de
a*!icaciones nuevas %a sean ti*o "ig"ang Ttoda !a a*!icaci(n en una so!a
JaseU o en distintas Jases T*or *aOs) *or ca!endario) etc.U %a 'ue *ermiten
conocer !a inJraestructura mOnima inc!uso sin datos anteriores. 6dems en


105
des*!iegues *or Jases o*timizan !a inJraestructura necesaria *ara cada Jase
de! des*!igue.
5.,, 79E.6S #E 7ESILIE/CI6
E5;8958. re*roducci(n o Integraci(n. 7e'uieren de un entorno !o ms
com*!eto *osi"!e %a 'ue vamos a Kugar con !a dis*oni"i!idad de !a
inJraestructura % es necesario dis*oner de e!ementos rea!es o mu% simi!ares
a !os rea!es.
O2G4;068. Conocer e! com*ortamiento de !a a*!icaci(n en condiciones de
*Nrdida de a!guno de !os e!ementos de !a inJraestructura. Se trata de
veriJicar 'ue se *uede seguir *restando servicio % en 'uN condiciones) si
a!gLn e!emento se cae) deKa de *restar servicio o Ma% 'ue reiniciar!o.
4997B045;71. Las deJinidas *or e! *roduct3owner.
S0B=37@0C5. En !as *rue"as de resi!iencia se *one a Juncionar e! sistema en
condiciones norma!es %) cuando a!canza un determinado nive! de carga de
tra"aKo se corta o se !imita e! servicio de a!guno de !os com*onentes:
e!iminar un servidor de! c!uster) tirar !a "ase de datos) ra!entizar !as
res*uestas) Jorzar e!iminaci(n de cacMN) etc.
La idea es *ro"ar 'ue e! sistema sigue o*erativo dentro de !os *armetros
es*erados en condiciones de carencia o restricci(n de servicio *or
circunstancias ms o menos Jortuitas.
7esu!ta ms 'ue evidente se$a!ar 'ue este ti*o de *rue"as son
es*ecia!mente Lti!es en sistemas de a!ta dis*oni"i!idad) comercio
e!ectr(nico) seguridad) redundancia) etc.


10!
5.,2 79E.6S #E E?8L9CIE/
E5;8958. roducci(n.
O2G4;068. Este ti*o de *rue"as veriJican 'ue !a a*!icaci(n no tiene
*ro"!emas de rendimiento tiem*o des*uNs de sa!ir a *roducci(n. E!
rendimiento de un sistema de inJormaci(n una vez 'ue sa!e a *roducci(n)
se *uede deteriorar *or un aumento en e! nLmero de usuarios) *or una
ma!a gesti(n de! a!macenamiento) *or deterioro en !as estructuras de
a!macenamiento. E! o"Ketivo de estas *rue"as es com*ro"ar c(mo Ma
evo!ucionado e! sistema) en 'uN nive! de servicio est des*uNs de sa!ir a
*roducci(n. En mi o*ini(n Ma% dos "eneJicios directos:
,. Toma de decisiones *roactiva. En un Jormato grJico esta !Onea Mace
*osi"!e !a *redicci(n a medio % !argo *!azo de am*!iaciones de
ca*acidad de! sistema. Inc!uso si e! a!gLn momento e! deterioro e!
ma%or de! es*erado se *ueden esta"!ecer nive!es de a!erta *ara
activar *rotoco!os de actuaci(n.
2. 6Kustar e! coste de inJraestructura a !as necesidades de! servicio. Si
conocemos % monitorizamos e! nive! de servicio *odemos aKustar
aumentando o disminu%endo !a ca*acidad de! sistema en Junci(n
de !as circunstancias. Sin ade!antar inversiones ni asumir e! riesgo
de 'uedarnos sin *resu*uesto) odemos esta"!ecer *autas de
estaciona!idad 'ue *ermitan J!uctuar !a inJraestructura de so*orte
en Junci(n de !a demanda.
4997B045;71. Las deJinidas *or e! *roduct3owner.


10)
S0B=37@0C5. En este ti*o de *rue"as es *osi"!e uti!izar !as mismas *rue"as
'ue Ma"remos rea!izado en entornos *rivados con anterioridad a !a sa!ida a
*roducci(n. Evidentemente !anzaremos !as *rue"as en circunstancias
contro!adas TJuera de Morario comercia!) en Moras de "aKa demandaU % con
un !Omite de concurrencia *ara evitar *Nrdidas de servicio en rea!.
8tro enJo'ue *ara rea!izar *rue"as en *roducci(n es uti!izar sondas en
tiem*o rea! 'ue monitoricen e! trJico de !os usuarios rea!es. Inc!uso
*odrOamos usar como sonda !as *rue"as) !anzndo!as *eri(dicamente %
veriJicando 'ue !os resu!tados estn dentro de !os va!ores es*erados *ara
cada rango Morario.
Sea cua! sea e! enJo'ue e!egido) en este caso !a simu!aci(n !o 'ue Mace es
ca*tar inJormaci(n rea! de! nive! de servicio *ara com*arar!a a *osteriori
con !os resu!tados de !as *rue"as % Jaci!itar !a toma de decisiones con
res*ecto a !a inJraestructura.









108

!. MIDIENDO LA CALIDAD DE CDIGO EN WTF'M05=;8.
E%EMPLOS DE CDIGO REAL (UE PODRAN
OCASIONARTE UN DERRAME CEREBRAL.

7utor8 +a&id 9'mez


4., L6 6/T8L8GH6 #EL #IS676TE.
Dace %a a!gunos a$os *as( *or mis manos una reJerencia a un !i"ro titu!ado
QLa anto!ogOa de! dis*arateR) una o"ra escrita con e! o"Ketivo de recoger !as
res*uestas ms vario*intas dadas *or a!umnos en ePmenes.
Cuando !eO a!gunos de sus contenidos) *ensN 'ue eran res*uestas cMistosas
% ocurrentes) *ero 'ue *ro"a"!emente no serOan rea!es. Tiem*o des*uNs
*ude com*ro"ar 'ue !a rea!idad su*era mucMas veces !a Jicci(n % 'ue) !os
a!umnos de cua!'uier edad % asignatura) eran ca*aces de res*uestas como
!as 'ue recoge e! !i"ro\ % de mucMo ms.
Cap*tulo
,


10&
La Qanto!ogOa de! dis*arateR es un Jen(meno 'ue *uede a*!icarse) no s(!o a
!as res*uestas de a!umnos en ePmenes) sino en *rcticamente cua!'uier
*roJesi(n % m"ito.
8curre cuando) *or sa!ir de! *aso) % *or tratar de cum*!ir con e! tra"aKo
asignado) se "usca !a so!uci(n ms a mano 'ue *odrOa Juncionar.
&ucMas veces !a so!uci(n a*!icada aca"a siendo una "ar"aridad) un
dis*arate o un sinsentido) sin 'ue e! autor sea consciente de 'ue !o 'ue
est evidenciando es una Ja!ta de conocimiento) de tiem*o o de cuidado
'ue genera un *roducto Ja!to de ca!idad.
=:uiNn no Ma oOdo) o dicMo) dentro de! m"ito de su tra"aKo a'ue!!o de
Qa!gLn dOa tengo 'ue recoger todas !as "ar"aridades 'ue me encuentro en
e! dOa a dOaRA
4.2 &E#I#6S #E C6LI#6# F87&6LES E I/F87&6LES.
#urante !os estudios Jorma!es de IngenierOa) ePisten asignaturas dedicadas
a 'ue !os a!umnos TJuturos ingenierosU com*rendan cu! es e! conce*to de
ca!idad % c(mo medir!a % asegurar!a.
En ingenierOas tradiciona!es !a ca!idad se *uede medir a*!icando una serie
de mNtricas: nLmero de *iezas deJectuosas) um"ra!es de estrNs o *resi(n
de !as mismas) etc\
En e! caso de! sotJware) tam"iNn se uti!izan varia"!es 'ue *ermiten medir !a
ca!idad de! soJtware uti!izado: /Lmero de !Oneas de c(digo *or
com*onente) aco*!amiento de! dise$o) com*!eKidad cic!omtica de !os


110
a!goritmos) im*acto de memoria "aKo determinadas circunstancias) tiem*os
medios de res*uesta) etc\
Se trata de medidas de ca!idad QJorma!esR) 'ue nos *ermiten medir %
com*arar e! resu!tado de un *roceso de desarro!!o soJtware.
EPiste) sin em"argo) otro ti*o de ca!idad: !a ca!idad 'ue *erci"imos cuando
intentamos !eer % seguir e! c(digo 'ue Jorma *arte de !a a*!icaci(n. Es una
medida de !a ca!idad no menos im*ortante 'ue todas a'ue!!as medidas
Jorma!es) *or'ue en e! *roceso de desarro!!o es im*ortante recordar 'ue
*asaremos ms tiem*o !e%endo c(digo %a escrito 'ue escri"iendo c(digo
nuevo.
or tanto) !a Jaci!idad 'ue tenemos *ara !eer) seguir % entender e! c(digo
'ue Memos escrito To 'ue Memos Meredado % tenemos 'ue mantenerU de"e
ser tenida en cuenta como otro Jactor ms de ca!idad de! *roceso de
desarro!!o.
&ucMas de !as medidas de ca!idad Jorma!es 'ue uti!izamos tratan
*recisamente de identiJicar no s(!o !a eJiciencia de! a!goritmo) sino tam"iNn
c(mo de Jci! de"iera ser entender % seguir e! c(digo a otro desarro!!ador.
4.3 L6 I/IC6 &E#I#6 ?@LI#6 #E C6LI#6# #E CE#IG8: CTF<&I/
E! conce*to de !a Qca!idad g!o"a! de! c(digoR !o *odemos redeJinir en "ase a
!a vi$eta de Tom Dowe!dar 'ue titu!a"a QTMe on!% va!id measurement oJ
code 'ua!it% is CTF<&inR.


111

Mtt*:<<www.osnews.com<stor%<,0244<CTFsgm
En esta vi$eta) TMom Do!werda) recoge e! conce*to de medir !a ca!idad de
un desarro!!o *or e! nLmero de Qdis*aratesR 'ue encontramos a! !eer e!
c(digo.
E! *roceso *ara medir e! c(digo de"erOa *asar *or encerrar en una
Ma"itaci(n a un desarro!!ador distinto a! 'ue escri"i( e! c(digo origina!)


112
*idiendo 'ue revise todo e! c(digo de !a a*!icaci(n) mientras nosotros
es*eramos tran'ui!amente Juera de !a Ma"itaci(n.
&ientras dure e! *roceso de revisi(n de c(digo) e! su*ervisor 'ue est Juera
de !a Ma"itaci(n) ir contando e! nLmero de ePc!amaciones 'ue se o%en a
medida 'ue e! *roceso de revisi(n de! c(digo avanza.
6! Jina! de !a revisi(n) e! nLmero de estas ePc!amaciones) nos dar una
"uena indicaci(n de !a ca!idad g!o"a! de! c(digo % de !a Jaci!idad 'ue tiene
*ara ser seguido % entendido. Esta Jaci!idad nos dar !a idea de c(mo de
Jci! es mantener % evo!ucionar e! desarro!!o rea!izado.
/atura!mente) Nsta mNtrica de! CTF<min es un va!or a!go su"Ketivo e
inJorma!) *ero da una idea a!ternativa % adiciona! 'ue *ermite 'ue
tengamos un o"Ketivo divertido con e! 'ue mantener un c(digo !im*io % de
ca!idad.
4.- EJE&L8S ; C8/T76EJE&L8S 676 E?IT67 CTFS.
En e! *roceso de desarro!!o % revisi(n de c(digo Ma% a!gunas reas donde es
Jci! encontrar *atrones % reg!as 'ue nos Magan ePc!amar Q='uN es estoAR a
medida 'ue !eemos dicMo c(digo.
7evisamos a!guno de estos *untos donde recurrentemente *odemos Ja!!ar
a! tratar de escri"ir c(digo de ca!idad.



113
4.-., C8&E/T67I8S.
Los comentarios a! c(digo son una Merramienta mu% *otente) *or'ue nos
*ermite a$adir anotaciones 'ue no sern tenidas en cuenta *or e!
com*i!ador o *or e! entorno de eKecuci(n) *ero 'ue *ueden a*ortar
inJormaci(n de uti!idad *ara !a *ersona 'ue !eer e! c(digo % 'ue tiene 'ue
mantener!o o evo!ucionar!o.
Los comentarios *ueden servir tam"iNn *ara generar documentaci(n de un
6I) de Jorma automtica) a travNs de Merramientas 'ue ana!izan e! c(digo %
dicMos comentarios.
Sin em"argo) !os comentarios son tam"iNn una de !as Merramientas 'ue
ms Jci!mente *ierden su uti!idad a! no ser usadas correctamente:
Comentarios 'ue re*iten ePactamente !o 'ue est escrito en e!
c(digo. En este caso) !a inJormaci(n es redundante) %a 'ue !a
misma inJormaci(n se *uede ePtraer directamente de! c(digo.
Comentarios 'ue Man 'uedado o"so!etos) indicando una cosa
distinta a !o 'ue dice e! c(digo. Este sue!e ser un caso en e! 'ue
derivan !os comentarios de! *unto ,) cuando e! c(digo se modiJica
% e! desarro!!ador o!vida modiJicar e! comentario origina!.
Comentarios de *artes de c(digo. Cundo e! comentario se uti!iza
*ara desactivar una *arte de c(digo % 'ue no sea inter*retado *or
e! com*i!ador !a !egi"i!idad de! c(digo se ve aJectada.


114
Comentario *rocedente de *!anti!!as) generados directamente *or
e! I#E) 'ue aca"an 'uedando como "!o'ues sin ningLn signiJicado
'ue a!argan e! c(digo % no a*ortan ningLn va!or.
Este ma! uso de !os comentarios) *uede aca"ar Maciendo 'ue un
desarro!!ador o revisor) !os considere inLti!es % aca"e *or no !eer ninguno
de !os comentarios *or deJecto.
Los comentarios de"erOan ser uti!izados en !os casos en 'ue
#escri"an !a motivaci(n de! dise$o o deKen inJormaci(n adiciona! a!
*ro*io c(digo) *or eKem*!o) cuando e! c(digo est im*!ementando
un hworWaroundd a un ma! com*ortamiento de !a tecno!ogOa
su"%acente.
Indi'uen inJormaci(n so"re *recondiciones) invariantes o *ost3
condiciones. or eKem*!o) *or 'uN es o no necesario Macer una
determinada va!idaci(n) "asada en una *recondici(n.
EP*!ican !os casos de uso de! Jragmento de c(digo o e! Jundamento
de! a!goritmo.
#e"ern Jormar *arte de !a documentaci(n de un 6I




115
4.-.2 EGCECI8/ES.
En mucMos !enguaKes de *rogramaci(n) ePiste e! conce*to de EPce*ci(n)
como mecanismo *ara gestionar !os casos de error.
6un'ue no es mu% Ma"itua!) es *osi"!e encontrar casos donde !a ePce*ci(n
se uti!iza *ara contro!ar e! J!uKo de! c(digo o "uscan eJectos !atera!es a! J!uKo
norma! de! desarro!!o.
6!gunos eKem*!os de ma! uso de !as ePce*ciones !os *odemos encontrar en
7om*er !a eKecuci(n norma! de! J!uKo) Jina!izando "uc!es o
*rovocando !a sa!ida de una *i!a de !!amada de mNtodos) 'ue no
est ocasionada directamente *or un error.
9ti!iza !a creaci(n de una ePce*ci(n *ara acceder a !a inJormaci(n
so"re !a *i!a de !!amadas u otra inJormaci(n so"re e! entorno de
eKecuci(n.
Este uso de !as ePce*ciones su*one una ma!a *rctica) *or'ue rom*en !a
!Onea natura! de! a!goritmo % e! seguimiento 'ue *odemos Macer de! c(digo.
La reg!a genera! siem*re de"e ser 'ue !as ePce*ciones de"en ser generadas
s(!o cuando se Ma%a *roducido una situaci(n de error) o un caso no
contem*!ado en !a casuOstica norma! 'ue *uede gestionar e! c(digo.
or otro !ado) !as ePce*ciones s(!o de"en tratar de ca*turar!as cuando se
tenga !a *osi"i!idad de gestionar !a situaci(n de error % tomar a!guna acci(n
correctiva.


11!
Las ePce*ciones no de"en ser ignoradas nunca) *or'ue *ueden ocu!tar e!
motivo de un ma!Juncionamiento 'ue !uego no *odamos de*urar.
4.-.3 /8&.76#8
E! nom"re 'ue *onemos de !os e!ementos 'ue Jorman *arte de nuestra
a*!icaci(n es mu% im*ortante % de"emos siem*re tratar de 'ue sean
descri*tivos de:
!o 'ue Macen Ten e! caso de Junciones o mNtodosU)
de !o 'ue contienen Ten e! caso de varia"!es o atri"utosU)
de !o 'ue re*resentan Ten e! caso de ti*os o c!asesU.
Siem*re Ma% 'ue recordar !a mPima de 'ue Q9n Jragmento de c(digo se
!ee mucMas ms veces de !as 'ue se escri"eR. or tanto) e! esJuerzo 'ue
dedi'uemos *ara "autizar un ti*o) una varia"!e) o un mNtodo tendr su
rendimiento *osterior en !a ra*idez con !a 'ue se !ea % com*renda e!
c(digo) !o 'ue redundar) a su vez) en !a Jaci!idad de! mantenimiento de!
mismo.
Es Jci! no encontrar e! meKor nom"re a !a *rimera) *or !o 'ue no de"emos
renunciar a! renom"rado de atri"utos o c!ases % a !a reJactorizaci(n de
mNtodos cuando) a! vo!ver so"re c(digo %a escrito) encontremos un
nom"re meKor.


11)
4.-.- CE#IG8 I//ECES67I8.
8tro *unto Jrecuente 'ue reduce !a ca!idad de !os desarro!!os es e! c(digo
innecesario) redundante) du*!icado o c(digo muerto Te! c(digo 'ue nunca
!!ega a eKecutarseU.
6! igua! 'ue !os comentarios 'ue su*onOan una rN*!ica de! c(digo) e! c(digo
innecesario su*one una distracci(n eJectiva a !a Mora de !eer % entender
'uN Mace un com*onente soJtware.
6!gunos casos 'ue de"en ser evitados *or'ue *rovocan !a a*arici(n de
c(digo innecesario son:
Tratamiento tem*rano de ePce*ciones. Cuando !as ePce*ciones se
ca*turan en *untos en !os 'ue no *ueden ser tratadas con NPito)
aca"a generando c(digo 'ue sim*!emente re!anza !a ePce*ci(n.
E! recu"rimiento directo de 6Is o de !i"rerOas de terceros. Si %a Ma%
un 6I *L"!ica) o una !i"rerOa comLn 'ue oJrece una Junciona!idad)
*uede uti!izarse directamente.
E! intento de ePcesiva o*timizaci(n de! c(digo. #e*endiendo de!
entorno de eKecuci(n) este intento de o*timizaci(n de c(digo
*uede ser) en rea!idad) contra*roducente.
La reJactorizaci(n % sim*!iJicaci(n *rogresiva de! c(digo) 'ue *uede
*rovocar 'ue c(digo auPi!iar inicia!) Ma%a deKado de ser necesario.



118
4.5 &EJ876 #EL 78CES8 #E #ES6778LL8 ; 6SEG976&IE/T8 #E L6
C6LI#6# #E CE#IG8.
4.5., C96/#8 SE &I76 L6 C6LI#6# SEL8 6L FI/6L.
Es Jrecuente encontrarse con *ro%ectos % *rocedimientos en e! 'ue !as
auditorOas % medici(n *ara asegurar !a ca!idad de c(digo se rea!iza a! Jina!
de! *roceso) cuando %a es tarde *ara tomar medidas correctivas o tomar!as
im*!ica un retraso en !a *uesta en *roducci(n % un im*acto econ(mico en
e! *ro%ecto.




11&
4.5.2 I/TEG76CIE/ 78G7ESI?6 #E L6 C6LI#6# E/ EL 78CES8
ara evitar 'ue nuestro c(digo suJra de Ja!ta de ca!idad) 'ue no sea !egi"!e
com*!i'ue su Jaci!idad *ara mantener!o % evo!ucionar!o) es interesante
incor*orar en nuestro *roceso de desarro!!o) M"itos 'ue *ermitan !!egar a!
Jina! de !a construcci(n con !a garantOa de 'ue !a ca!idad es *arte integra!
de! *roceso.
Sin em"argo) ese o"Ketivo desea"!e no es Jci! de im*!ementar de go!*e. En
esos casos) *odemos *!antear una serie de cam"ios 'ue) *rogresivamente)
va%an meKorando !a Jorma en 'ue aseguramos !a ca!idad de! soJtware en
nuestro *roceso.
Estos *asos se *ueden ir a"ordando *oco a *oco) consiguiendo una meKora
*rogresiva de !a ca!idad de! c(digo % de !a Jorma en 'ue se incor*ora !a
misma en e! *roceso.
4.5.2., Eva!uaci(n intermedia de !a ca!idad
E! *rimer *aso consiste en ir rea!izando !a revisi(n de! c(digo % !a
com*ro"aci(n de ca!idad en *untos intermedios de !a *!aniJicaci(n de!
desarro!!o.
#e esta Jorma) !os inJormes % !as conc!usiones de ca!idad se *ueden
incor*orar antes de! Jina! de! desarro!!o) se *ueden corregir !os deJectos %
*atrones incorrectos antes de 'ue estNn demasiado ePtendidos *or !a "ase
de c(digo % se *ueden incor*orar recomendaciones *ara evitar 'ue se sigan
re*roduciendo.


120
4.5.2.2 6utomatizaci(n de !os contro!es de ca!idad
9na vez 'ue se Man incor*orado en !a *!aniJicaci(n !os contro!es manua!es
de ca!idad) e! siguiente *aso natura! es e! automatizar !a eKecuci(n de estos
tests de ca!idad.
Esta automatizaci(n) *uede Macerse a travNs de:
Merramientas es*ecOJicas como &#) cMecWst%!e) % reg!as so"re e!
c(digo.
de *rocesos *!aniJicados con un cron %
de !a integraci(n) a travNs de !a automatizaci(n de! *roceso de
construcci(n) de !a eKecuci(n de !os tests de ca!idad.
4.5.2.3 7ecogida de medidas de ca!idad a travNs de Merramientas.
9na vez 'ue tenemos automatizada !a eKecuci(n de !os contro!es de ca!idad)
es recomenda"!e introducir en e! ecosistema de desarro!!o Merramientas
'ue *ermitan recoger !os resu!tados de estas eKecuciones % mantener un
Mist(rico de !as mismas.
#e esta Jorma) tendremos un contro! de c(mo Ma ido evo!ucionando e!
desarro!!o % !a ca!idad de! mismo a !o !argo de! tiem*o.
6!gunas Merramientas mu% Lti!es *ara este *unto son Sonar'u"e % !a
*osi"i!idad de integraci(n 'ue *ermite con JenWins.


121
4.5.2.- E!ecci(n de va!ores um"ra! so"re !a ca!idad.
9na vez 'ue Memos automatizado !os contro!es de ca!idad % !os resu!tados
de estos se recogen con Merramientas como Sonar'u"e) e! siguiente *aso
es deJinir unos va!ores 'ue nos a*orten una idea Qmedi"!eR de c(mo
evo!uciona !a ca!idad de! c(digo.
ara !a e!ecci(n de estos va!ores) *odemos tomar medidas de ca!idad
Jorma!es como !as 'ue Ma"!amos a! *rinci*io:
Com*!eKidad cic!omtica
/ive! de anidamiento de "!o'ues de c(digo
Longitud mPima % media de mNtodos % c!ases
/ive! de aco*!amiento entre com*onentes.
9so de varia"!es !oca!es.
?io!aciones de reg!as % *atrones de c(digo.
orcentaKe de co"ertura de c(digo *or !os tests...
\
La vio!aci(n de determinadas medidas o !a su*eraci(n de determinados
um"ra!es *ueden deJinir criterios de ace*taci(n o no de un entrega"!e *ara
ser des*!egado en !os entornos de *roducci(n de! c!iente.


122
4.5.2.5 ConJiguraci(n de 6!armas cuando !os va!ores um"ra! de ca!idad son
su*erados.
Con !a deJinici(n de va!ores medi"!es % um"ra!es de ca!idad 'ue no estamos
dis*uestos a 'ue sean su*erados) es *osi"!e conJigurar a!armas
automticas 'ue nos su*ongan una notiJicaci(n a !os desarro!!adores % a !os
res*onsa"!es de! desarro!!o de Jorma 'ue e! mero MecMo de Ma"er "aKado
!os nive!es recomendados o ace*ta"!es de ca!idad no *asen desa*erci"idos
% *uedan ser su"sanados cuanto antes dentro de! *roceso de desarro!!o.
4.5.2.4 Creaci(n de un *ane! de contro!
L!egados a este *unto) s(!o 'ueda recoger !a inJormaci(n de todas estas
mNtricas % va!ores medidos en una conso!a centra!izada) inc!uso *ara todos
!os *ro%ectos) de Jorma 'ue toda !a ca!idad de !os *rocesos de desarro!!o
*ueda ser revisada en un Lnico sitio.
Este *unto Mace 'ue !a gesti(n de! desarro!!o % go"ierno de *ro%ectos sea
mucMo ms senci!!a) *ermitiendo tener una visi(n g!o"a! de 'uN *ro%ectos
necesitan ms esJuerzo % su*ervisi(n % cu!es estn siguiendo un *roceso
ms adecuado.
9na vez 'ue com*!etamos estos *asos) Ma"remos conseguido meKorar
nuestro *roceso de desarro!!o integrando de Jorma senci!!a) *rogresiva %
natura! e! aseguramiento de !a ca!idad durante !a construcci(n.


123











124

). LA E*PERIENCIA DEL CORTE INGL$S EN LA GESTIN DE
LA CALIDAD SOFTWARE.

7utor8 @esEs Sernando

ACualquiera puede escri$ir c'digo que un ordenador pueda entender. Los $uenos
programadores son aquellos que escri$en c'digo que los Cumanos puedan
entenderD
Martin =o"ler
La evo!uci(n constante de !as nuevas tecno!ogOas) cana!es de comunicaci(n
% e! constante cam"io de !os mercados) Macen 'ue se mu!ti*!i'ue !a
com*!eKidad de! desarro!!o. ?e!ocidad) inesta"i!idad) incertidum"re) unido a
!a necesidad de entrega de va!or constante a! /egocio) a !a *ar 'ue
Cap*tulo
-


125
disminuir e! QTime to &arWetR
2
, inducen a desarro!!ar soJtware<*roductos
'ue no a!canzan !os mOnimos de ca!idad es*erado TCisMJu! tMinWing
3
U.




1., C6LI#6# #EL S8FTC67E
Los *rocesos de /egocio de nuestras 8rganizaciones) estn sustentados *or
6roductos 0o!t"are) siendo estos uno de !os Jactores diJerenciadores Jrente
a sus com*etidores.
1.,., #I&E/SI8/ES #E L6 C6LI#6# #EL S8FTC67E
Cuando nos reJerimos a HC730?7? S8A;E794I, su"%acentemente nos
reJerimos a cuatro ti*os de ca!idad:
,. La de! roceso
2. La de! roducto
3. La de !as ersonas<E'ui*os.

2
Moluntad de querer cumplir de cualquier manera un determinado o$,eti&o por imposi$le
que sea
3
0o!t"are !uncionando cuanto antes
*&uando encontr las
respuestas me cambiaron las
preguntas+


12!
-. La de! Servicio
#iJerenciemos c!aramente:

ConJundir Ca!idad de! roceso % roducto) con!!eva a Ja!sas eP*ectativas en
e! desarro!!o de! soJtware.
Da% *oca evidencia de 'ue cum*!ir un mode!o de *rocesos asegure !a
ca!idad de! *roducto
-
, es ms) consideramos 'ue estandarizaci(n de !os
*rocesos garantiza uniJormidad en !a sa!ida) !o 'ue *uede inc!uso
instituciona!izar !a creaci(n de ma!os *roductos.




-
TitcCenCam - 6!leeger< 1**#


12)
1.,.2 /87&6TI?6S E/ EL @&.IT8 E&7ES67I6L TTIU
&arco /ormativo de reJerencia de! Sector TI:

=Cu! es !a reJerencia de Ca!idad de roducto SoJtwareA

1.,.3 =:9> ES 9/ 78#9CT8A
9n roducto no es s(!o !a im*!ementaci(n
soJtware) escrito en un determinado
!enguaKe de *rogramaci(n) de un conKunto
de Junciona!idades) c!aras % eP*!icitas) 'ue
*ermiten esta"!ecer un *roceso de negocio
en nuestras Com*a$Oas) con e! Jin de crear
-7389.



128
Todo !o generado en !a Cadena de ?a!or) en aras a !a generaci(n de un
activo soJtware) Jorma *arte inMerente de! mismo. 6 este *oo! de asset !o
denominamos P98?=@;8
5
.
or ende) cuando Ma"!amos de Ca!idad de! SoJtware) no s(!o nos estamos
reJiriendo a! soJtware en sO) nos reJerimos a !a Calidad de todos los
elementos que se construyen a lo largo del ciclo de vida de un proyecto:
ingenierOa de re'uisitos) dise$o) ar'uitectura) documentos de des*!iegue)
desarro!!o) *!an de *rue"as)\ todo !o re!ativo a! *roducto.
1.,.- C6LI#6#
La Ca!idad es !a suma de todos a'ue!!os as*ectos o caracterOsticas de un
*roducto o servicio) 'ue inJ!u%en en su ca*acidad *ara satisJacer !as
necesidades de !os usuarios. La satisJacci(n de! usuario est determinada
*or !a diJerencia entre !a ca!idad *erci"ida % !a ca!idad es*erada) cuando
Nste Mace uso de un *roducto o servicio.
6!gunas deJiniciones re!evantes de Ca!idad de! SoJtware:
La concordancia con !os re'uisitos Junciona!es % de rendimiento
eP*!Ocitamente esta"!ecidos) con !os estndares % *rocesos de
desarro!!o eP*!Ocitamente documentados % con !as caracterOsticas
im*!Ocitas 'ue se es*era de todo soJtware desarro!!ado
*roJesiona!mente
4
.

5
Con,unto de !uncionalidades altamente coCesionadas que dan soporte e un proceso de
negocio. Implementadas en una o &arias plata!ormas
4
:oger 0. 6ressman 10o!t"are ngineering8 7 6ractitionerUs 7pproacC. Mc9ra"BSillU


12&
E! conKunto de caracterOsticas de una entidad 'ue !e conJieren su
a*titud *ara satisJacer !as necesidades eP*resadas % !as im*!Ocitas
TI0G 8402 1I/ ##B 001B *23U
La ca!idad de! soJtware no es a!go en !o 'ue se em*ieza a *ensar una vez
'ue se Ma generado e! c(digo. SegLn 7 ressman
1
e! 6seguramiento de !a
Ca!idad es una Q7@;060?7? ?4 :98;4@@0C5R 'ue se a*!ica a !o !argo de todo e!
*roceso de ingenierOa soJtware % eng!o"a:
9n enJo'ue de gesti(n de !a ca!idad.
Tecno!ogOa de ingenierOa de! soJtware o de! conocimiento eJectivo
TmNtodos % MerramientasU.
7evisiones tNcnicas Jorma!es 'ue se a*!ican durante cada *aso de
!a ingenierOa de! soJtware o de! conocimiento. 6*o%ado en una
estrategia de *rue"as *or nive!es.
rocesos de gesti(n de !a conJiguraci(n. E! contro! de !a
documentaci(n de! soJtware % de !os cam"ios rea!izados.
9n *rocedimiento 'ue asegure un aKuste a !os estndares de
desarro!!o de! soJtware Tcuando sea *osi"!eU.
&ecanismos de medici(n % de inJormaci(n.
6sO) se de"e <7975;0>79 !a ca!idad de cada uno de !os su"*roductos de!
#esarro!!o % con e!!o 'ue !os a*!icativos @=B:345 @85 381 94J=010;81

1
0o!t"are ngineering8 7 6ractitionerUs 7pproacC. Mc9ra"BSill


130
es*eciJicados *or e! 9suario % 'ue :=4?45 149 :=41;81 45 8:497@0C5) *ara
Juncionar ?4 7@=49?8 7 38 41:497?8) de manera correcta % eJiciente) 105
7A4@;79 381 101;4B71 'ue actua!mente estn 45 8:497@0C5.
1.2 7EFE7E/CI6 E/ L6S 87G6/IB6CI8/ES 676 EL C8/T78L #E L6
C6LI#6#
La a*arici(n de !a nueva Jami!ia de normas IS8<IEC 25+++ 3 S(=7RE
2
)
esta"!ece un marco de tra"aKo comLn *ara eva!uar !a ca!idad de! *roducto
soJtware.
GuOa e! *roceso en "ase a su"caracterOsticas) denotadas en !a siguiente
imagen:

Es im*ortante indicar 'ue !a Jami!ia inc!u%e) a! margen de! mode!o de !a
ca!idad de! *roducto) !a deJinici(n de un *roceso *ara !!evar a ca"o !a
eva!uaci(n de! *roducto soJtware T/orma IS8<IEC 25+-+U

8
0o!t"are product 4ualit- :equirements and &aluation


131
1.3 @&.IT8 E&7ES67I6L
l 5.ito no se logra s'lo con cualidades especiales. s so$re todo un tra$a,o de
constancia< de m5todo - de organizaci'n
1@.6 0ergent3
1.3., L6/ #E 6SEG976&IE/T8 #E L6 C6LI#6#
La ca!idad es una cua!idad esencia! de cua!'uier *roducto generado *or una
organizaci(n) 'ue va a ser usado *or otros. Es *or e!!o 'ue una de !as
Jases<actividades *rinci*a!es de !a e!a"oraci(n de un roducto) es e!
aseguramiento de !a ca!idad: P375 ?4 A14<=97B045;8 ?4 37 C730?7? ?43
P98?=@;8 KS(APL
0
. 6! igua! 'ue e! conKunto de re'uisitos esta"!ecen !as
Junciona!idades % !os !Omites de! roducto) e! S:6 descri"e !os um"ra!es de
ca!idad asociados a! roducto) % marca !os aPiomas<!Omites de ace*taci(n
*ara su tras*aso a Servicio Continuo. Es o"vio 'ue estos) de*enden en gran
medida de! o"Ketivo Jina! de! roducto % e! soJtware de! mismo: soJtware de
sistemas) tiem*o rea!) gesti(n) ingenierOa % cientOJico) inte!igencia artiJicia!)
etc. E! soJtware) de"e ser entendido como P98?=@;8 D @8B8 S4960@08) % *or
ende es Jundamenta! e! aseguramiento de !a generaci(n de roductos de
Ca!idad) *revio *aso a transici(n a Servicio continuo.


9
6lan de 7seguramiento de la Calidad del 6roducto


132
1.3.2 &8#EL8S #E #ES6778LL8 87IE/T6#8S 6 78#9CT8: C6LI#6#
C8/CE7T6#6
6sO) de"emos ir a un modelo orientado al producto no al proyecto) "asado
en una calidad concertada) 'ue contem*!e *rue"as de ca!idad en todo e!
cic!o de desarro!!o.
Entendiendo *or calidad concertada) el compromiso de entrega del
desarrollo de un producto< con el cumplimiento estricto de lo descrito en el
plan de aseguramiento de la calidad del mismo< 0476< con las e&idencias
que se consideren necesarias< pasadas por e.Causti&os planes de prue$as
por parte del pro&eedor.
1.3.3 C6T6L8G6CIE/ #E 78#9CT8S
#e"emos cata!ogar nuestros activos de roductos % deJinir c!ara %
concisamente e! *!an de aseguramiento de !a ca!idad TS:6U de cada uno
de e!!os. Este de"e ser conocido % com*artido con todos % cada uno de !os
*artici*antes en e! cic!o de vida de desarro!!o) "ien sea dentro o Juera de
nuestra 8rganizaci(n.








133
ara 'ue !os :98?=@;81 *uedan atender nuevas *eticiones de negocio de
Jorma 4A0@7> es necesario gestionar !a inJormaci(n re!ativa a:
C797@;49M1;0@71 ?43 :98?=@;8" Junciona!idades) reg!as de negocio) \
C8B:8545;41 ?43 :98?=@;8" ar'uitectura) mode!os) c(digo) \
S(AP ?43 :98?=@;8" nive! de ca!idad) casos de *rue"a)
veriJicaciones) \





134
1.3.- L6/ #E CE7TIFIC6CIE/
E! P375 ?4 C49;0A0@7@0C5 ?4 =5 P98?=@;8 Taseguramiento de 'ue e! mismo
cum*!e con !o esta"!ecido en su S:6U de"e estar a!ineada con cuatro
*i!ares "sicos de un entorno de desarro!!o soJtware: ar'uitecturas %
tecno!ogOas en !as 'ue se "asan) Merramientas de desarro!!o % de a*o%o a!
mismo) metodo!ogOa a seguir) % 6lan de 7seguramiento de la Calidad con e!
'ue se medir !a ca!idad de !os *ro%ectos % de !os *roductos Tcada conKunto
de *ro%ectos 'ue den !ugar a un nuevo *roducto o a un evo!utivo de uno
ePistente) tomar como reJerencia e! S:6U.
ara e!!o) % en "ase S:ua7E deJinir
un *roceso de V&V
,+
1&eri!icaci'n -
&alidaci'n3) sin Mitos) sin "arreras)
'ue sea *roactivo % en !a medida de
!o *osi"!e automatizado dentro de
su cadena *roductiva.
E! contro! de !a ca!idad de! *roducto
soJtware) es aLn ms re!evante)
teniendo *resente 'ue !as grandes organizaciones a dOa de Mo%) im*!antan
dentro de sus Cic!os de ?ida de desarro!!o) mode!os de 8=;18=9@05< %<o
8=;;71N05<.

,+
Pruebas de verificacin8 orientadas a garantizar la calidad de todos los 7ssets No
Softare generado en la &ida del pro-ecto - que !orman parte insepara$le del 6roducto.
Pruebas de validacin8 orientadas a garantizar la calidad todos los 7ssets Softare
generado en la &ida del pro-ecto - que !orman parte insepara$le del 6roducto
La &alidad es inherente al Producto,
forma parte inseparable del mismo, es
un factor diferenciador para nuestras
,rgani-aciones.
La &alidad no se negocia.


135










Los productos tienen definido un nivel de calidad nivel de calidad nivel de calidad nivel de calidad que determina:
el umbral umbral umbral umbral para las tareas de aseguramiento de la calidad
las caracter"sticas caracter"sticas caracter"sticas caracter"sticas de calidad que re.ne el producto


13!
1.3.5 G798 #E :96LIT; 6SS976/CE T:6U
Es im*rescindi"!e una gesti(n uniJicada de !os distintos nive!es de *rue"as)
de manera 'ue todos !os resu!tados se recoKan en un inJorme eKecutivo 'ue
certi!ique !a ca!idad g!o"a! de! roducto.
or ende) en !as 8rganizaciones) de"erOa ePistir un G9=:8 ?4 (=730;D
711=975@4 T(AU) e! cua!) tomando como "ase e! S:6 de! roducto %
S:ua7E) certiJi'ue !a Ca!idad de! roducto *revio *aso a
8*eraciones<Servicio Continuo.
E! o"Ketivo *rinci*a! de! Gru*o de :ua!it% 6ssurance) es <7975;0>79 37
C730?7? ?43 P98?=@;8 S8A;E794 asO como 381 1=2:98?=@;81 necesarios *ara
su evo!uci(n en !a vida de este.
CertiJicar !a ca!idad de !as roductos a*!icando un !an de
aseguramiento de !a ca!idad TS:6U.
Entregar roductos esta"!es % va!idadas.
Contro!ar !a ca!idad de !os entrega"!es de !os e'ui*os de
desarro!!o.
8"tener inJormes % estadOsticas de ca!idad *ara monitorizar e!
*roceso.
6segurar:
o :ue e! roducto soJtware cum*!e con !os re'uisitos
es*eciJicados *or e! usuario.


13)
o :ue e! roducto Juncionar de acuerdo a !o es*erado de
manera correcta % eJiciente.
o :ue !a o*eraci(n de! *roducto no aJectar a! resto de
sistemas ePistentes.
o :ue !a evo!uci(n de! *roducto a !o !argo su vida ser via"!e
% senci!!a garantizando !a ca!idad de toda !a inJormaci(n
tNcnica necesaria *ara su evo!uci(n.
1.- 69T8&6TIB6CIE/ #EL CICL8 #E ?I#6 #E #ES6778LL8
0e alcanza el 5.ito con&irtiendo cada paso en una meta - cada meta en un paso
1C.C Cort5z)
En un Juturo) a corto % medio *!azo) teniendo en mente e! estado *resente
% Juturo de !a IngenierOa de SoJtware en !as 8rganizaciones Em*resaria!es)
inducen a !as com*a$Oas a dis*oner de *!ataJormas 7LM Tapplication
li!ec-cle management3 'ue automatice % *roJesiona!ice) *artes de sus
actividades de desarro!!o.
Las organizaciones de"erOan esta"!ecer e! siguiente *!an estratNgico:
?isi(n roducto Jrente a *ro%ectos
#iJerenciaci(n de mode!os de Ca!idad de roceso) roducto %
Servicio
Esta"!ecimiento de! roceso de! S:6 % !a Jami!ia S:ua7E
#is*oner de una *!ataJorma de Continuous Integration
Constituci(n de! Gru*o de :6: CertiJicaci(n de roductos


138
Continuous #e!iver%: reducci(n de! time to marWet.

Todo e!!o) sustentado "aKo e!
*ensamiento Lean % !a meKora
Continua.
#e manera *ara!e!a) !as 8rganizaciones
de"en tener deJinido e im*!antado !os
*rocesos de Gesti(n de! Cam"io)
Gesti(n de! #es*!iegue % Gesti(n de !a ConJiguraci(n TIS8 2++++U en aras a
Javorecer !a transici(n a servicio continuo.
ara conseguir este Jin) !a comunicaci(n) integraci(n % co!a"oraci(n entre
!os gru*os de desarro!!o de *roductos soJtware % e! entorno de !as
o*eraciones) transciende a !os si!os tNcnicos % re'uiere !a medici(n
continua % !os o"Ketivos de e'ui*o: D46O:1.
1.-., I/TEG76CIE/ C8/TI/96
Se necesite una IngenierOa de SoJtware:
IngenierOa Concurrente: contro! QcontinuoR de! c(digo
Costes de no Ca!idad: an!isis de !a situaci(n en eta*as tem*ranas.
EKecuci(n dinmica de *rue"as
Gesti(n de! com*i!ado) em*a'uetado % des*!iegue
Gesti(n Integrada de! Cic!o de rue"as


13&
Todas estas actividades ?[? T?a!idaci(n
% ?eriJicaci(nU de"erOan estar integradas
dentro de un *roceso *roactivo)
e!iminando %<o minimizando !os costes
de no ca!idad) sin Mitos) ni "arreras)
integrado en e! Cic!o de ?ida de
desarro!!o.
6sO Ma"!amos de automatizaci(n de! Cic!o de ?ida de #esarro!!o TP37;7A89B7
?4 I5;4<97@0C5 C85;05=7 KICL, O9045;7?7 7 37 C730?7? ?43 S8A;E794L.
1.-.,., !ataJorma
9n eKem*!o de ecosistema de *roductos) 'ue nos *uede a%udar a! contro!
*roactivo de !a Ca!idad de roducto SoJtware:









140
1.-.,.2 9so de !as Merramientas en e! mode!o
La siguiente imagen) es*eciJica !as res*onsa"i!idades de !os roductos de!
ecosistema en !o 'ue se reJiere a:
7e'uisitos % CaracterOsticas de roducto
Gesti(n de !a actividad
Gesti(n de rue"as
Gesti(n de !a ConJiguraci(n
Gesti(n de 6ctivos SoJtware
:ue constitu%en !a "ase de! *roceso de ingenierOa de SoJtware o cadena de
va!or:










141
1.-.,.3 ?isi(n *roducto
PRO#ECTOS TI" ConKuntos de @7B2081 TcCange requestsU so"re :98?=@;81 TI
'ue tiene sentido im*!ementar desde e! *unto de vista de! /egocio o de
Sistemas de InJormaci(n.

RELEASES DE PRODUCTO" @onKuntos de @7B2081 entregados *ara atenci(n
de !as *eticiones< so!icitudes reci"idas 'ue conJiguran distintas 649108541
de !os *roductos TI.








142









Los roductos cata!ogados son evo!ucionados *or n *ro%ectos 'ue se
eng!o"an en un conKunto de re!eases) 'ue dan *aso a travNs de Gesti(n de!
Cam"io % Gesti(n de #es*!iegue a un conKunto de servicios de certiJicaci(n.
E! siguiente grJico muestra !a rea!izaci(n de dicMos servicios de
certiJicaci(n en !os *ro%ectos de desarro!!o % de integraci(n de versi(n:


143

1.-.2 E/T7EG6 C8/TI/96
En esta !Onea) !a com*etitividad) ca!idad % e! 2ime to MarJet< conducen a !as
organizaciones a dis*oner de un *roceso de entrega de 67389 constante a!
/egocio 10o!t"are !uncionando cuanto antes VVV3 es decir) un *roceso de
C85;05=8=1 D430649D KCDL a*o%ado en e! *roceso de Integraci(n Continua)
donde e! contro! de !a Ca!idad de manera automatizada co"ra aLn si ca"e)
ms re!evancia



144
1.5 TECD/IC6L :96LIT; &6/6GE&E/T 7836CTI?8 ; C8/TI/98
E! mode!o de CertiJicaci(n de roductos) "aKo Ca!idad Concertada %
tomando como "ase e! S:6) se rea!iza en "ase a una seria de servicios
eKecutados a !o !argo de !a Cadena de ?a!or TS:6PU:






La 8Jicina de CertiJicaci(n T8dCU u oJicina de :6) de Jorma *roactiva) actLa
so"re !as evidencias de aseguramiento de !a ca!idad generadas durante !a
eKecuci(n de! *ro%ecto con e! Jin de eva!uar % certiJicar e! nive! de ca!idad de
!os *roductos resu!tantes.
7ea!iza e! contro! % eva!uaci(n de ca!idad de acuerdo a! Q&ode!o de Ca!idad
de roductoR) 'ue Jundamenta !a eva!uaci(n en una serie de caracterOsticas
% su"caracterOsticas de !a ca!idad de *roducto Tadecuaci(n Junciona!)
rendimiento) Jia"i!idad) etc.U. La rea!izaci(n de dicMas acciones Mar *osi"!e
'ue !a 8dC emita un inJorme conc!u%ente de !a ca!idad de! *roducto) *ara !a
toma de decisi(n de !a transici(n de! *roducto<s a servicio.


145

E! siguiente grJico i!ustra e! conKunto de actividades rea!izadas a !o !argo
de! C? *ara !a CertiJicaci(n:




14!
1.4 7EFE7E/CI6S
I Jornadas de Ca!idad de roducto SoJtware
Mtt*:<<ca!idadde!*roductosoJtware.com<
Mtt*:<<www.Kaviergarzas.com<
IEEE Mtt*:<<www.ieee.org<indeP.Mtm!
&I Mtt*:<<www.*mi.org<
IS8 25+++ Mtt*:<<iso25+++.com<
C&&i Mtt*:<<www.sei.cmu.edu<cmmi<
ITIL Mtt*:<<www.iti!3oJJicia!site.com<
Co"it 5 Mtt*:<<www.isaca.org<C8.IT<ages<deJau!t.as*P
Scrum 6!!iance Mtt*:<<mem"ers.scruma!!iance.org<
CaterJa!!) Lean<Fan"an) and Scrum
Mtt*:<<WenscMwa"er.word*ress.com<2+,+<+4<,+<waterJa!!3!eanWan"an3
and3scrum32<
Mtt*:<<www.soJtware3'ua!it%3assurance.org<indeP.Mtm




14)
8. +(U$ CALIDAD TIENE REALMENTE EL SOFTWARE, LA
E*PERIENCIA DE E-ALUAR LA CALIDAD DE 1000
PRO#ECTOS BA%O LA ISO 25000.

7utor8 7na Mar?a 9arc?a

2., =87 :9> 6/6LIB67 L6 C6LI#6# #E ,+++ 78;ECT8S S8FTC67EA
Cada cierto tiem*o so!emos tener noticias de a!gLn Jiasco soJtware
derivado de !a Ja!ta de *reocu*aci(n *or !a ca!idad en cua!'uiera de sus
dimensiones T*roducto) *rocesos o *ersonasU *ero\ =Sa"emos rea!mente
cu! es e! estado genera! de !a ca!idad de !os *ro%ectos soJtwareA =Los
*rogramadores siguen "uenas *rcticas de *rogramaci(nA =Cu!es son !as
*rinci*a!es carencias de ca!idad 'ue ms se re*iten entre !os *ro%ectosA
roJesiona!mente) en !o 'ue a ca!idad de! *roducto soJtware se reJiere) nos
so!emos encontrar con 'ue no se sa"e cu! es e! estado genera! de !a
ca!idad de !os *ro%ectos soJtware.
Cap*tulo
.


148
or otra *arte) no ePisten um"ra!es de mNtricas de ca!idad recomendados %
ace*tados universa!mente. ; si Ma% cosas de este ti*o sue!en estar
desactua!izadas.
or e!!o) desde un tiem*o a esta *arte) Man surgido distintas iniciativas
orientadas es*ecOJicamente a estudiar distintos as*ectos de ca!idad de
*ro%ectos concretos.
or eKem*!o) desde 2++4) Coverit% !!eva a ca"o e! *ro%ecto Coverit% Scan)
Kunto con e! de*artamento de Seguridad Interna de Estados 9nidos) con e!
o"Ketivo de a%udar a !a comunidad de desarro!!o o*en3source a meKorar !a
ca!idad de! soJtware 'ue !!evan a ca"o.
Cada a$o) Coverit% com*ara !a ca!idad % seguridad de !os *ro%ectos o*en3
source con !a de *ro%ectos comercia!es. Su L!timo inJorme TCoverit%) 2+,3U)
o"tenido con un muestreo de 3++ *ro%ectos o*en3source % 3++
comercia!es) conc!u%( 'ue todavOa !os *ro%ectos o*en3source tenOan ms
densidad de deJectos TdeJectos *or cada ,+++ !Oneas de c(digoU 'ue !os
*ro%ectos comercia!es de !a muestra.
En 2+,3) T6!mossawi) 2+,3"U ana!iz( !a manteni"i!idad de FireJoP) e Mizo
accesi"!e esta inJormaci(n a travNs de su *gina we" T6!mossawi) 2+,3aU.
En ese mismo a$o) TG(mez) 2+,3U ana!iz( !a com*!eKidad de !as
im*!ementaciones Todo&?C.
Sin em"argo) vemos 'ue !as iniciativas de este ti*o son escasas % !os
muestreos de *ro%ectos ana!izados) *e'ue$os. 6dems son iniciativas 'ue
no estn g!o"a!mente ace*tadas) o son de*endientes de Merramientas
comercia!es concretas) como en e! caso de Coverit%.


14&
&otivado *or todo esto) se Ma rea!izado este caso de estudio) ana!izando
as*ectos de ca!idad de! soJtware Tconcretamente !a manteni"i!idad de!
soJtwareU.
Los o"Ketivos *rinci*a!es Man sido detectar cu!es son !as carencias de
ca!idad ms comunes entre !os *ro%ectos soJtware) % si ePisten re!aciones
entre distintas mNtricas de manteni"i!idad.
ara !!evar!o a ca"o) se Ma tomado como muestra !os ,+++ *ro%ectos meKor
va!orados *or !os usuarios de GitDu".
GitDu") 'ue Jue creado en 2++2) es un servicio de a!macenamiento
soJtware 'ue Ma a!canzado una gran *o*u!aridad en estos L!timos a$os.
Con 3 mi!!ones de usuarios
,,
% ,,.2 mi!!ones de re*ositorios
,2
) GitDu" es
uno de !os servicios de a!oKamiento de c(digo o*en3source ms uti!izados.
or otra *arte) *ro%ectos tan Jamosos como e! Werne! de LinuP) &ongo#. %
/eo-K estn a!oKados en GitDu".
6dems) mucMos de estos *ro%ectos % !i"rerOas se estn uti!izando cada vez
ms como "ase *ara otros desarro!!os.
Esto Mace 'ue GitDu" sea una mu% "uena Juente *ara o"tener *ro%ectos
rea!es con !os 'ue estudiar !os *ro"!emas 'ue aJectan a !a ca!idad de!
c(digo.

11
6 JecMa de 21 de marzo de 2+,-) se rea!iz( en e! "uscador de GitMu" !a consu!ta
QJo!!owers:efc+eR T*ara encontrar !os usuarios con ningLn o ms de + seguidores) es decir)
todos !os usuarios registradosU 'ue devo!vi( 3-154,2 usuarios.
,2
Esta inJormaci(n se Ma o"tenido de Mtt*s:<<gitMu".com<Jeatures


150
2.2 EL C6S8 #E EST9#I8
Este caso de estudio se Ma dise$ado de acuerdo a !as guOas de casos de
estudio *resentadas *or T.rereton et a!.) 2++2U.
Cuando Ma"!amos de ca!idad) nos reJerimos a ca!idad de caKa "!anca. E!
*rinci*a! o"Ketivo es ins*eccionar e! c(digo Juente % o"tener mNtricas de
manteni"i!idad re!acionadas con N!.
ara *oder recoger todos !os datos necesarios *ara !!evar a ca"o e! estudio)
se Man uti!izado varias Merramientas:
GitDu") donde estn a!oKados !os *ro%ectos de! eP*erimento.
9na !i"rerOa 'ue *ermite acceder a !a 6I de GitDu" a travNs de
Java.
Git) *ara c!onar esos *ro%ectos en disco % *oder ana!izar!os
*osteriormente.
&# % Simian) Merramientas 'ue sirven *ara ana!izar e! c(digo de
!os *ro%ectos % o"tener inJormes de distintas mNtricas de ca!idad.
9na serie de scri*ts 'ue !!evan a ca"o todo e! *roceso.
&ientras 'ue Simian es una Merramienta 'ue detecta e! c(digo du*!icado
*ara cua!'uier !enguaKe de *rogramaci(n) &# es ePc!usivo *ara Java.
or otra *arte) &# o"tiene ms variedad de mNtricas) 'ue se agru*an en
conKuntos) como *or eKem*!o tama$o de c(digo) comentarios) dise$o etc.


151
ara e! caso de estudio) se Man e!egido !as reg!as ms re*resentativas de
cada conKunto de reg!as) 'ue inJ!u%en en !a manteni"i!idad de! soJtware.
>stas *ueden verse en !a Ta"!a 2.
S0B075
D=:30@7;4? @8?4
L0541 8A @8?4
PMD
CD@38B7;0@C8B:34O0;D
C8?4 10>4
T88M75DM4;F8?1
C8BB45;S0>4
C8BB45;R4J=094? C8BB45;1
C8BB45;C85;45;
C8=:305<B4;E445O2G4@;1
EO@411064IB:89;1
L8814C8=:305<
C8=:305<
L7EOAD4B4;49


152
U14U;030;DC3711
SE0;@FD4510;D
A680?D44:3DN41;4?IAS;B;1
D410<5
A21;97@;C3711W0;F8=;A21;97@;M4;F8?
T88F4EB975@F41F89ASE0;@FS;7;4B45;

C8B:794O2G4@;1W0;FEJ=731
EB:;DC7;@FB38@N
EB:;DIAS;B;
EB:;DWF034S;B;
EB:;DT9DB38@N
EB:;DF05733DB38@N
EB:;DSE0;@FS;7;4B45;1
EB:;DSD5@F9850>4?B38@N
EB:;DS;7;4B45;N8;I5L88:
EB:;D @8?4
EB:;DI50;0730>49


153
EB:;DS;7;4B45;B38@N
EB:;DS;7;0@I50;0730>49
%U50;S;7;0@S=0;4
%U50;S:43305<
%U50;A1149;0851SF8=3?I5@3=?4M4117<4
%U50;T41;1SF8=3?I5@3=?4A1149;
T41;C3711W0;F8=;T41;C7141
U554@41179DB883475A1149;085
U14A1149;EJ=731I51;47?OAA1149;T9=4
U14A1149;S7B4I51;47?OAA1149;T9=4
U14A1149;N=33I51;47?OAA1149;T9=4
S0B:30ADB883475A1149;085
%U50;T41;C85;7051T88M75DA1149;1
%U50;
U14A1149;T9=4I51;47?OAA1149;EJ=731
U5=14? @8?4 U5=14?P9067;4F043?


154
U5=14?L8@73-7907234
U5=14?P9067;4M4;F8?
U5=14?F89B73P797B4;49

U5=14?M8?0A049
Ta"!a 2. ConKuntos de reg!as % reg!as de &# ana!izadas en e! caso de estudio.
2.3 =CE&8 SE D6/ ELEGI#8 L8S 78;ECT8S 6/6LIB6#8SA
E! criterio *ara !a se!ecci(n de !os *ro%ectos de! caso de estudio Ma sido 'ue
estuvieran escritos en Java T!enguaKe *ara e! 'ue actua!mente Ma% mu!titud
de Merramientas de an!isis de c(digo) 'ue o"tienen mNtricas de todo ti*oU)
*L"!icos Taccesi"!es a todo e! mundoU % a!oKados en GitDu".
GitDu") *ermite acceder a !a inJormaci(n 'ue a!macena de mu% diversas
Jormas. Como so*orta Git) *odemos c!onar !os re*ositorios a!oKados en N!
con esa Merramienta % uti!izar todos !os comandos 'ue *ro*orciona.
or otra *arte) ePiste un 6I *ara *oder comunicar nuestras a*!icaciones
con GitDu". 6dems) Ma% dis*oni"!es !i"rerOas *ara acceder a! 6I con
distintos !enguaKes de *rogramaci(n) entre e!!os Java.



155
2.- 6/6LIB6/#8 L8S 7ES9LT6#8S
E! tama$o de !os *ro%ectos estudiados osci!a entre ,+ !Oneas de c(digo
Masta casi 2 mi!!ones de !Oneas de c(digo) con una media de 35,2+ !Oneas de
c(digo. &s de !a mitad de !os *ro%ectos T50.0-aU tienen un tama$o de
entre ,+ % ,++++ !Oneas de c(digo.

Figura 2. #istri"uci(n de !os *ro%ectos *or su tama$o en !Oneas de c(digo.

?eamos 'uN ca!idad tienen estos *ro%ectos soJtware.


15!
2.-., C67E/CI6S #E C6LI#6# &@S 7EETI#6S E/T7E L8S 78;ECT8S
Los resu!tados de! caso de estudio reJ!eKan 'ue !as reg!as de ca!idad ms
inJringidas entre !os *ro%ectos son !as re!acionadas con comentarios %
aco*!amiento.
C8B45;79081
En genera!) !os *ro%ectos de !a muestra de"erOan meKorar !a documentaci(n
de !as 6Is *L"!icas TmNtodos % atri"utos *L"!icosU.
Este tema aJecta *or un !ado a !a manteni"i!idad de !os *ro*ios *ro%ectos
de GitDu") %a 'ue si e! c(digo no se entiende "ien % adems est ma!
documentado) Mar ms diJOci! continuar su desarro!!o.
or otra *arte) como !os *ro%ectos de GitDu" se estn uti!izando cada vez
ms como "ase de otros desarro!!os) si e! c(digo de estos *ro%ectos est
ma! documentado) diJicu!tar nuevamente e! desarro!!o de !os nuevos
*ro%ectos.
A@8:37B045;8
Con res*ecto a! aco*!amiento) se Ma encontrado un nLmero mu% a!to de
*osi"!es vio!aciones de !a Le% de #emeter.
La Le% de #emeter TLo#U TLie"erMerr et a!.) ,021U es una reg!a de esti!o *ara
dise$ar sistemas orientados a o"Ketos. Esta reg!a se "asa en 'ue: QSo!o
Ma"!es con tus amigosR.
SegLn esta reg!a) un mNtodo de un o"Keto so!o de"e invocar !os mNtodos de
!os siguientes o"Ketos T/ortMeastern 9niversit%) ,024U:


15)
,. >! mismo.
2. Los o"Ketos 'ue se *asan como *armetros de! mNtodo.
3. Cua!'uier o"Keto 'ue N! crea.
-. Sus com*onentes directos.
or eKem*!o) no de"erOa escri"irse una cadena de mensaKes de !a Jorma
o"Keto6.metodo#e6TU.metodo#e.TU.metodo#eCTUY en otra c!ase distinta de
!a c!ase a.
uede 'ue *ienses 'ue a!go asO est "ien) 'ue tener mucMas !!amadas
encadenadas de mNtodos es mucMo ms !egi"!e % ocu*a menos !Oneas\
ero tiene sus *ro"!emas.
Cuando escri"es c(digo de este ti*o) ests eP*uesto a !os *osi"!es cam"ios
'ue *uedan ocurrir en !a c!ase de! o"Keto6) de! o"Keto. % de! o"KetoC.
3 =:uN *asa si e! o"Keto6 en e! Juturo cam"ia) % %a no necesita una
reJerencia a! o"Keto.A
3 =; si !uego e! o"Keto. %a no necesita una reJerencia a! o"KetoCA
3 6dems) esta c!ase no es reuti!iza"!e) *or'ue *ara usar!a necesitas
tam"iNn !as c!ases . % C.
%U50;
En cuanto a vio!aciones de J9nit) es mu% Jrecuente 'ue !os *ro%ectos de !a
muestra no uti!icen mensaKes en !as aserciones de J9nit.


158
9na aserci(n TmNtodo assertU consiste en com*ro"ar e! resu!tado es*erado
de! test con su resu!tado rea!. Sue!e ser una de !as !!amadas Jina!es a !a Mora
de crear una *rue"a unitaria en J9nit.
Es recomenda"!e inc!uir un mensaKe en !as aserciones de J9nit) 'ue se
mostrar *or *anta!!a en e! caso de 'ue !a *rue"a Ja!!e.
Si no !os inc!uimos nos costar ms esJuerzo detectar *or 'uN !os casos de
*rue"a no Man *asado.
CC?0<8 67@M8
8tra de !as carencias de ca!idad ms destacadas es deKar "!o'ues catcM
vacOos.
En este caso) mucMos *ro%ectos estn ca*turando !as ePce*ciones de!
c(digo) *ero no !as estn tratando adecuadamente.
Esto *uede ser un sOntoma de 'uerer si!enciar !os errores en !ugar de
detectar sus causas % so!ucionar!os.







15&
2.-.2 7EL6CI8/ES E/T7E &>T7IC6S
R437@0C5 45;94 37 @8B:34G0?7? @0@38BP;0@7 D 371 3M5471 ?4 @C?0<8.

Figura 3. 7e!aci(n entre !a com*!eKidad cic!omtica % !as !Oneas de c(digo.
En este caso) ePiste una re!aci(n entre !a com*!eKidad cic!omtica % !as
!Oneas de c(digo. Esto indica 'ue una gran cantidad de !a com*!eKidad
cic!omtica de !a muestra *roviene directamente de! tama$o de !os
*ro%ectos.
La com*!eKidad cic!omtica T&cCa"e) ,014U se "asa en ca!cu!ar e! nLmero
de rutas !inea!mente inde*endientes de! c(digo.
or eKem*!o) si e! c(digo Juente no contiene *untos en !os 'ue Ma%a 'ue
decidir si tomar un camino u otro Tsentencias iJ) swticM) "uc!es Jor etc.U !a


1!0
com*!eKidad cic!omtica ser ,) %a 'ue so!o Ma% un Lnico camino en todo e!
c(digo. En cam"io) si *or eKem*!o Ma% un iJ con una Lnica condici(n) !a
com*!eKidad cic!omtica ser 2) %a 'ue Ma% dos caminos en e! c(digo: e!
camino 'ue se sigue cuando !a condici(n es cierta) % e! camino 'ue se sigue
cuando !a condici(n es Ja!sa.
La com*!eKidad cic!omtica se mide en !os *ro*ios a!goritmos) *or !o 'ue se
*uede ca!cu!ar inde*endientemente de! !enguaKe de *rogramaci(n 'ue
estemos tratando. Esta mNtrica *ermite a*reciar !a ca!idad de! dise$o
soJtware) de una manera r*ida % con inde*endencia de! tama$o de !a
a*!icaci(n.
/orma!mente) una com*!eKidad cic!omtica a!ta es un sOntoma de un ma!
dise$o de! soJtware.
6dems) a medida 'ue !a com*!eKidad cic!omtica aumenta) e! c(digo es
ms diJOci! de entender Te! *rograma se divide en varios caminos a tomarU)
con !o 'ue !a manteni"i!idad se reduce.
Tam"iNn) se vue!ve ms diJOci! *ro"ar e! soJtware) %a 'ue como e! c(digo
tiene ms caminos 'ue seguir) aumenta e! nLmero de casos de *rue"a 'ue
Ma"rOa 'ue im*!ementar *ara conseguir una co"ertura de *rue"as de!
,++a. or e!!o) este c(digo tam"iNn es ms *ro*enso a contener errores.
Como se Ma comentado) e! a!goritmo de com*!eKidad cic!omtica de
&cCa"e se ca!cu!a con ciertos Jactores 'ue crecen a medida 'ue aumenta
!a cantidad de c(digo) *or !o 'ue es norma! 'ue esta mNtrica estN
re!acionada con e! tama$o de! *ro%ecto *ara !a 'ue est ca!cu!ada.


1!1
Si un *rogramador 'uisiera reJactorizar e! c(digo) no tendrOa 'ue JiKarse
so!o si !a com*!eKidad cic!omtica es mu% a!ta. En su !ugar) tendrOa 'ue
ana!izar *or cunto so"re*asa !a com*!eKidad cic!omtica actua! e! va!or
es*erado de com*!eKidad *ara e! nLmero de !Oneas de c(digo de! m(du!o
'ue se 'uiere reJactorizar.
R437@0C5 45;94 43 @C?0<8 ?=:30@7?8 D 371 3M5471 ?4 @C?0<8.

Figura -. 7e!aci(n entre !as !Oneas de c(digo % e! c(digo re*etido.
EPiste tam"iNn una *osi"!e re!aci(n entre e! nLmero de !Oneas de c(digo
re*etido % e! tama$o de! c(digo Juente.
Sin em"argo Ma% 'ue reca!car 'ue esto no im*!ica 'ue a ma%or nLmero de
!Oneas de c(digo ma%or cantidad de c(digo re*etido) sino 'ue) a medida


1!2
'ue e! nLmero de !Oneas de c(digo aumenta) Ma% ma%or *ro"a"i!idad de
tener ms cantidad de c(digo re*etido.
2.-.3 7EL6CIE/ E/T7E L6 C8&LEJI#6# CICL8&@TIC6 ; EL CE#IG8
7EETI#8.

Figura 5. 7e!aci(n entre !a densidad de !a com*!eKidad cic!omtica % !a densidad de c(digo
re*etido.
La densidad de !a com*!eKidad cic!omtica) consiste en dividir !a
com*!eKidad cic!omtica entre e! nLmero de !Oneas de c(digo. #e !a misma
manera) !a densidad de c(digo re*etido es !a divisi(n de! va!or de c(digo
re*etido entre e! nLmero de !Oneas de c(digo.
Como vimos anteriormente) %a 'ue como !a com*!eKidad cic!omtica % !as
!Oneas de c(digo tienen re!aci(n con !as !Oneas de c(digo de! *ro%ecto)
de"emos usar !as densidades *ara com*arar!as entre sO.


1!3
8"servando !a grJica) vemos 'ue no Ma% re!aci(n entre !as mNtricas de
densidad de !a com*!eKidad cic!omtica % densidad de! c(digo re*etido. or
e!!o) un ma%or va!or de com*!eKidad cic!omtica no signiJica 'ue aumente e!
c(digo re*etido.
En !a muestra) !as !Oneas de c(digo re*etidas) co*iadas de un sitio % *egadas
en otro) *or !o genera! no son !Oneas 'ue generan mucMa com*!eKidad
cic!omtica.
2.5 7EFE7E/CI6S
6!mossawi) 6. T2+,3aU. &olution o! tCe =ire!o. code$ase. 2+,-. #is*oni"!e
en: Mtt*:<<a!mossawi.com<JireJoP<
6!mossawi) 6. T2+,3"U. So" maintaina$le is tCe =ire!o. code$ase) 2+,-.
#is*oni"!e en: Mtt*:<<a!mossawi.com<JireJoP<*rose<
.rereton) .) FitcMenMam) ..) .udgen) #.) [ Li) B. T2++2U. 9sing a *rotoco!
tem*!ate Jor case stud% *!anning. 6roceedings o! &aluation and
7ssessment in 0o!t"are ngineering 2008< ) ,32.
Coverit%) I. T2+,3U. 7nnual Co&erit- scan report !inds open source and
proprietar- so!t"are qualit- $etter tCan industr- a&erage !or second
consecuti&e -ear. 2+,-. #is*oni"!e en: Mtt*:<<www.coverit%.com<*ress3
re!eases<annua!3coverit%3scan3re*ort3Jinds3o*en3source3and3*ro*rietar%3
soJtware3'ua!it%3"etter3tMan3industr%3average3Jor3second3consecutive3
%ear<
G(mez) 7. T2+,3U. So" comple. are 2odoMMC implementations. 2+,-.
#is*oni"!e en: Mtt*:<<"!og.coderstats.net<todomvc3com*!ePit%<


1!4
Lie"erMerr) F.) IIo!!and) I.) [ 7ie!) 6. T,021U. 8"Kect3oriented *rogramming.
an o"Kective sense oJ st%!e.
&cCa"e) T. T,014U. 6 com*!ePit% measure.
/ortMeastern 9niversit%. T,024U. G$,ect !orm o! tCe la" o!
demeter.#is*oni"!e en:
Mtt*:<<www.ccs.neu.edu<researcM<demeter<demeter3
metMod<Law8J#emeter<o"Kect3Jormu!ation.Mtm!
7eJerencias
6m"!er) S. T2++2U. 7cceleration8 7n agile producti&it- measure. FecMa de
consu!ta: ,1 ma%o 2+,2. #is*oni"!e en:
Mtt*s:<<www.i"m.com<deve!o*erworWs<m%deve!o*erworWs<"!ogs<am"!er<e
ntr%<metricgacce!erationA!angcen
6**!eton) .. T2++0U. 7gile sel!Borganizing teams. FecMa de consu!ta: ,1
enero 2+,-. #is*oni"!e en: Mtt*:<<"rada**."!ogs*ot.com.es<2++0<+4<agi!e3
se!J3organizing3teams.Mtm!
6ustin) 7. #. T2++1U. CMM &ersus agile8 MetCodolog- "ars in so!t"are
+e&elopment TCase stud% /o. 034+13+2-U. Darvard) 9S6. Darvard .usiness
ScMoo! ress.
.ecW) F. T,000U. .treme programming e.plained8 m$race cCange. 9S6.
6ddison3Ces!e% roJessiona!.
.ecW) F.) et a!. T2++,U. 7gile mani!esto. FecMa de consu!ta: ,1 ma%o 2+,2.
#is*oni"!e en: Mtt*:<<agi!emaniJesto.org


1!5
.ran) S. T2++0U. 6gi!e documentation) an%oneA I 0o!t".< 2#T4U) ,,3,2.
.rooWs. T,015U. 2Ce m-tCical manBmontC. 6ddison3Ces!e%.
C&&I roduct Team. T2+,+U. In C&&I roduct TeamEditors TEd.U) CMMI !or
de&elopment &ersion 1.3. impro&ing processes !or de&eloping $etter
products and ser&ices. itts"urg) IL) 9S6. Carnegie &e!!on 9niversit%.
CocW"urn) 6. T2++2U. 7gile so!t"are de&elopment. .oston) &6) 9S6.
6ddison3Ces!e% Longman u"!isMing Co.) Inc.
CocW"urn) 6. T2++2U. FC- I still use use cases. FecMa de consu!ta: ,1 ma%o
2+,2. #is*oni"!e en: Mtt*:<<a!istair.cocW"urn.us<CM%XIXsti!!XuseXuseXcases
CoMn) &. T2++-U. Iser stories applied8 =or agile so!t"are de&elopment
6ddison3Ces!e%.
CoMn) &. T2++5U. 7gile estimating and planning. 9**er Sadd!e 7iver) /J)
9S6. rentice Da!! T7.
CoMn) &. T2++0U. Hugs on tCe product $acJlog. FecMa de consu!ta: ,1 enero
2+,-. #is*oni"!e en: Mtt*:<<www.mountaingoatsoJtware.com<"!og<"ugs3
on3tMe3*roduct3"acW!og
#osMi) D. T2+,+U. 2emplate o! tasJ $reaJdo"n !or a user stor-. FecMa de
consu!ta: ,1 ma%o 2+,2. #is*oni"!e en:
Mtt*:<<www.*racticeagi!e.com<2+,+<+2<tem*!ate3oJ3tasW3"reaWdown3Jor3
user.Mtm!
Fow!er) &. T2++5U. 2Ce ne" metColog-. FecMa de consu!ta: ,1 ma%o 2+,2.
#is*oni"!e en: Mtt*:<<martinJow!er.com<artic!es<new&etModo!og%.Mtm!


1!!
Fow!er) &. T2++2U. Is design dead) FecMa de consu!ta: ,1 ma%o 2+,2.
#is*oni"!e en: Mtt*:<<martinJow!er.com<artic!es<design#ead.Mtm!
Garzs) J. T2+,+U. +esarrollo %gil o tradicional (e.iste el punto intermedio).
FecMa de consu!ta: ,1 ma%o 2+,2. #is*oni"!e en:
Mtt*:<<www.Kaviergarzas.com<2+,+<+2<agi!es3Jorma!es3e3Mi"ridos.Mtm!
Garzs) J. T2+,,U. +os razones por las que !a$ricar so!t"are no es lo mismo
que !a$ricar cocCes o construir casas. FecMa de consu!ta: ,1 ma%o 2+,2.
#is*oni"!e en: Mtt*:<<www.Kaviergarzas.com<2+,,<+2<diJerencias3soJtware3
Ja"ricacion3tradiciona!3,.Mtm!
Garzs) J.) Irraz"a!) E.) [ Santa Esco!stica 7. T2+,,) GuOa *rctica de
su*ervivencia en una auditorOa C&&I. Holet?n +e La 20II< Ini&ersidad :e-
@uan Carlos< 002) ,333.
Garzs) J.) [ au!W) &. T2+,2U. Can scrum Me!* to im*rove tMe *roKect
management *rocessA 6 stud% oJ tMe re!ationsMi*s "etween scrum and
*roKect management *rocess areas oJ C&&I3#E? ,.3. 0o!t"are
ngineering 6rocess 9roup< &adrid. **. ,3,2.
Garzs) J. T2+,3U. C'mo so$re&i&ir... 7 la plani!icaci'n de un pro-ecto %gil.
&adrid. 233gradosdeTI.
G!azer) D.) 6nderson) #.) 6nderson) #. J.) Fonrad) &.) [ SMrum) S. T2++2U.
C&&I i or agi!e : CM% not em"race "otM^ I 2ransactions on 9eoscience
and :emote 0ensing< 33T/ovem"erU) -2. 7etrieved Jrom
Mtt*:<<www.sei.cmu.edu<!i"rar%<a"stracts<re*orts<+2tn++3.cJm


1!)
Daugen) /. C. T2++4U. 6n em*irica! stud% oJ using *!anning *oWer Jor user
stor% estimation. 6rtOcu!o *resentado en 7gile Con!erence< 200#< **. 0.
DigMsmitM) J. T2++,U. Sistor-8 2Ce agile mani!esto. FecMa de consu!ta: ,1
ma%o 2+,2. #is*oni"!e en: Mtt*:<<www.agi!emaniJesto.org<Mistor%.Mtm!
Dossain) E.) .a"ar) &. 6.) [ D%e3%oung aiW. T2++0U. 9sing scrum in g!o"a!
soJtware deve!o*ment: 6 s%stematic !iterature review. 6rtOcu!o *resentado
en =ourtC I International Con!erence on 9lo$al 0o!t"are ngineering<
200*. **. ,15.
IS8. T2++2U. I0GKIC 1220782008 s-stems and so!t"are engineering BB
so!t"are li!e c-cle processes.
JaWo"sen) C. 7.) [ JoMnson) F. 6. T2++2U. &ature agi!e witM a twist oJ C&&I.
6rtOcu!o *resentado en 6roceedings o! tCe 7gile 2008< **. 2,232,1.
#is*oni"!e en: Mtt*:<<*orta!.acm.org<citation.cJmAidc,--322,.,--3-01
JaWo"sen) C. 7.) [ SutMer!and) J. T2++0U. Scrum and C&&I going Jrom good
to great. 6rtOcu!o *resentado en 6roceedings o! tCe 200* 7gile Con!erence<
**. 3333331.
JeJJries) 7. T2++,U. ssential N68 Card< con&ersation< con!irmation. FecMa de
consu!ta: ,1 ma%o 2+,2. #is*oni"!e en:
Mtt*:<<P*rogramming.com<artic!es<eP*cardconversationconJirmation<
Fni"erg) D. T2++1U. 0crum and N6 !rom tCe trencCes.
Fni"erg) D. T2++0U. Is -our team crossB!unctional enougC) 2+,-. #is*oni"!e
en: Mtt*:<<"!og.cris*.se<2++0<+2<21<MenriWWni"erg<,2351402-++++


1!8
Fu*Ma!) &. T2+,,U. 7gile planning8 M- top !i&e tips on decomposing user
stories into tasJs.#is*oni"!e en:
Mtt*:<<mWu*Ma!.word*ress.com<2+,,<+5<,3<agi!e3*!anning3m%3to*3Jive3
ti*s3on3decom*osing3user3stories3into3tasWs<
L. FertM) /. T2++,U. roKect retros*ectives: 6 Mand3 "ooW Jor team reviews.
&arca!) 6.) Furtado) F.) [ .e!cMior) 6. T2++1U. &a**ing C&&I *roKect
management *rocess areas to SC79& *ractices. 6rtOcu!o *resentado en
6roceedings o! tCe 31st I 0o!t"are ngineering ForJsCop< **. ,3322.
&cConne!!) S. T2++4U. 0o!t"are estimation8 +em-sti!-ing tCe $lacJ art.
7edmond) C6) 9S6. &icrosoJt ress.
au!W) &. C. T2++,U. EPtreme *rogramming Jrom a C&& *ers*ective. I
0o!t"are< 18T4U) ,0324.
iattini) &.) &anzano) J.) Cervera) J.) [ Fernndez) L. T2++3U. 7n%lisis -
dise>o de aplicaciones in!orm%ticas de gesti'n L una perspecti&a de
ingenier?a del so!t"are T2j ed.U. &adrid. 7a3&a.
icM!er) 7. T2+,+U. 7gile product management "itC 0crum8 Creating
products tCat customers lo&e. 6ddison3Ces!e% roJessiona!.
otter) /.) [ SaWr%) &. T2+,,U. Implementing 0crum 1agile3 and CMMIW
togetCer. FecMa de consu!ta: ,1 ma%o 2+,2. #is*oni"!e en:
Mtt*:<<www.agi!eKourna!.com<artic!es<co!umns<co!umn3artic!es<510-3
im*!ementing3scrum3agi!e3and3cmmi3togetMer
ScMwa"er) F.) [ SutMer!and) J. T2+,2U. SoJtware in 3+ da%s.


1!&
ScMwa"er) F. T2++-U. 7gile pro,ect management "itC scrum &icrosoJt ress.
ScMwa"er) F.) [ SutMer!and) J. T2+,+U. 0crum guide. FecMa de consu!ta: ,1
ma%o 2+,2. #is*oni"!e en:
Mtt*:<<www.scrum.org<storage<scrumguides<Scruma2+Guidea2+3
a2+ES.*dJkviewcJit
ScMwa"er) F.) [ SutMer!and) J. T2+,3U. 0crum guide. FecMa de consu!ta: ,5
enero 2+,-. #is*oni"!e en:
Mtt*s:<<www.scrum.org<orta!s<+<#ocuments<Scruma2+Guides<2+,3<Scru
m3Guide3ES.*dJkzoomc,++
Stace%) 7. #. T2++2U. 0trategic management and organisational d-namics8
2Ce cCallenge o! comple.it- T3rd ed.U rentice Da!!.
Ste!!man) 6. T2++0U. :equirements 1018 Iser stories &s use cases. FecMa de
consu!ta: ,1 ma%o 2+,2. #is*oni"!e en: Mtt*:<<www.ste!!man3
greene.com<2++0<+5<+3<re'uirements3,+,3user3stories3vs3use3cases<
SutMer!and) J. T2++,U. 6gi!e can sca!e: Inventing and reinventing Scrum in
Jive com*anies. Cutter IT Journa! 14T,2U
SutMer!and) J. T2+,+U. 7gile principles and &alues. FecMa de consu!ta: ,1
ma%o 2+,2. #is*oni"!e en: Mtt*:<<msdn.microsoJt.com<en3
us<!i"rar%<dd001512.as*P
SutMer!and) J.) JaWo"sen) 7.) [ JoMnson) F. T2++2U. Scrum and C&&I !eve! 5:
TMe magic *otion Jor code warriors. 6rtOcu!o *resentado en Sa"aii
International Con!erence on 0-stem 0ciences< 6roceedings o! tCe 41st
7nnual< **. -44.


1)0
SutMer!and) J.) [ ScMwa"er) F. T2+,,U. 2Ce scrum papers8 /ut< $olts< and
origins o! an agile !rame"orJ. FecMa de consu!ta: ,1 ma%o 2+,2. #is*oni"!e
en: Mtt*:<<KeJJsutMer!and.com<Scruma*ers.*dJ
SutMer!and) J.) [ JoMnson) F. T2+,+U. Ising 0crum to a&oid $ad CMMIB+MW
implementation. FecMa de consu!ta: 20 octu"re 2+,+. #is*oni"!e en:
Mtt*:<<a*!ndc.com<eventS!ides<JeJJSutMer!andC&&I3#E?.*dJ
SutMer!and) J.) JaWo"sen) C. 7.) [ JoMnson) F. T2++1U. Scrum and C&&I !eve!
5: TMe magic *otion Jor code warriors. 6rtOcu!o *resentado en 79IL 2007<
**. 2123212.
?ersion8ne Inc. T2+,3U. 0tate o! agile sur&e- 2013. FecMa de consu!ta: ,4
2+,-. #is*oni"!e en: Mtt*:<<www.versionone.com<*dJ<1tM36nnua!3State3oJ3
6gi!e3#eve!o*ment3Surve%.*dJ
CaWe) .. T2++3U. I/M02 in good stories< and 0M7:2 tasJs. FecMa de
consu!ta: ,1 ma%o 2+,2. #is*oni"!e en: Mtt*:<<P*,23.com<artic!es<invest3
in3good3stories3and3smart3tasWs<








1)1

Las emresas en !eneral" # en articular las $IC" incluidas las
administraciones %&licas" # or tanto sus rofesionales" se
enfrentan a un nuevo aradi!ma en los servicios 'ue restan a sus
clientes o a los ciudadanos con la utilizaci(n de las %ltimas
tecnolo!as)
La velocidad de aarici(n # de adoci(n de las nuevas tecnolo!as
reercute en un aumento exonencial de las oortunidades de
ne!ocio" ero tam&i*n de los ries!os en t*rminos de se!uridad"
imlantaci(n # usa&ilidad de las mismas)
Las temticas a a&ordar versarn so&re asectos como IS+ ,-./"
ES+ .0111" 2euda t*cnica" 3*tricas" Inte!raci(n continua" 4!ilidad"
4uditoras" Externalizaci(n del 2esarrollo" etc
Con esta iniciativa se roone un marco de reuni(n" de&ate #
divul!aci(n ara investi!adores" emresas" universidades #
rofesionales interesados en aumentar el valor 'ue acercan a sus
ne!ocios" en &ase al control # otimizaci(n de la Calidad de los
Productos 'ue lo sustentan

Vous aimerez peut-être aussi