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.
,.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.
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
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
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
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.
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!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