Ton
o
Revist
a
Técnic
a
de l
a
E
mpres
a
de Telecomunic
a
ciones de Cub
a
S.A.
41
M
e
t
o
d
o
l
o
g
í
a
s
de
D
i
s
e
ñ
o
E
l de
s
arrollo de
s
oftware ha
tran
s
itado por tre
s
e
s
pacio
s
bien definido
s
. El primero de ello
s
,
conocido como codificar y corregir,
fue factible mientra
s
lo
s
programa
s
eran pequeños y lo
s
requi
s
ito
s
cam-
biaban con poca frecuencia; pero
los si
s
temas fueron creciendo, y la
dificultadparaagregarnueva
s
caracterí
s
ticas y realizar modifi-
caciones aumentó de forma expo-
nencial.
Afortunadamente,
s
urgió una nue-
va alternativa para contrarre
s
tar lo
s
efecto
s
negativo
s
de codificar y
corregir: las metodología
s
. Una
metodología impone el proce
s
o di
s
-
ciplinado en el desarrollo de un
s
oft-
ware para lograr que e
s
te
s
ea lo má
s
predecible y eficaz po
s
ible. La
utilización de metodología
s
da lugar
a un proce
s
o que requiere del aná-
lisis detallado, haciéndo
s
e hincapié
especialmente en la planificación del
producto a desarrollar.
Al igual que el primer e
s
pacio, el
constante cambio de lo
s
requi
s
ito
s
en un
s
i
s
tema provoca tran
s
forma-
cione
s
s
ignificativa
s
en lo
s
docu-
mentos de
s
arrollado
s
que hacen u
s
o
de las metodología
s
. Ademá
s
, en la
etapa de diseño e
s
prácticamente im-
posible prever cada uno de lo
s
puntos con lo
s
que
s
e deberá lidiar
en el momento de programar, por lo
tanto, despué
s
de comenzada la co-
dificación, irán apareciendo, cada
vez con más frecuencia, evidencias
que cue
s
tionen el diseño realizado.
E
s
to provoca, en el desarrollo de un
proyecto, que la mayor parte del
tiempo
s
e concentre en la docu-
mentación burocrática del proceso
en vez de en su codificación.
La
s
conocidas metodologías lige-
ra
s
o de poco peso —lightweight
methodologies— han ganado auge
en lo
s
últimos tiempos.
S
urgen
como contraparte de sus dos ante-
ce
s
ore
s
, en la búsqueda de un
punto central entre la inexistencia
de un proceso y un proceso exage-
radamente grande. Las metodo-
logía
s
ligeras —también conocidas
como metodologías ágiles (agile
methodologies)— realzan la impor-
tancia de la programación del
código más que la documentación
del proce
s
o.
En Cuba, el desarrollo de soft-
ware
s
e ha convertido en una
actividad fundamental como medio
de
s
oporte a la actividad interna
de la
s
entidades que conforman
la
s
empresas cubanas. En un mun-
do en constante revolución, la
bú
s
queda de soluciones para po-
tenciar el desarrollo de sistemas
de computación ocupa un lugar
preponderante en la agenda del
per
s
onal involucrado.
P
or este
motivo, con el objetivo de intro-
ducir
s
u utilización en la empresa
de
s
oftware cubana, se analiza uno
lo
s
exponentes más populares de
lasmetodologíaságilesexis-
tentes: la
P
rogramación Extrema.
P
r
o
g
r
a
m
a
c
i
ó
n
E
x
t
r
e
m
a
La
P
rogramación Extrema, cono-
cida coloquialmente como X
P
—del
inglés eXtreme Programming, y
nada tiene que ver con el término
utilizado por Microsoft en Win-
dows X
P
que viene de la palabra
eXPerience—, pone de manifiesto
un grupo de principios y prácticas
que aceleran el proceso de desarro-
llo de software, con la eliminación
de las técnicas utilizadas innece-
sariamente por las metodologías
pesadas. X
P
ha rejuvenecido la
noción del diseño evolutivo con
prácticas que permiten que dicha
evolución se transforme en una
estrategiadediseñoviabley
segura.
Durante años, uno de los prin-
cipales problemas en el desarrollo
de software ha sido el costo de
realizar modificaciones en un sis-
tema, pues durante su desarrollo
se incrementa exponencialmente
con el tiempo. Los requisitos de
los usuarios o clientes cambian y
serán diferentes cada año, cada
mes o cada día.
S
i el sistema no
puede cambiar rápidamente, en
corto tiempo perderá la órbita
prevista. La
P
rogramación Extrema
acoge el cambio y permite trans-
formar la dirección, violenta y
frecuentemente, del desarrollo de
P
o
r
I
n
g
.
S
a
n
t
i
a
g
o
L
u
i
s
V
a
l
d
a
rr
a
m
a
d
e
l
P
i
no
D
e
p
a
r
t
a
m
e
n
t
o
d
e
G
e
s
t
i
ón
y
A
d
m
i
n
i
s
t
r
a
c
i
ón
d
e
A
p
li
c
a
c
i
on
e
s
F
ili
a
l
d
e
T
e
c
no
l
o
g
í
a
y
S
o
f
t
w
a
r
e
,
G
e
r
e
n
c
i
a
T
e
rri
t
o
ri
a
l
C
a
m
a
g
ü
e
y
,
E
T
E
C
S
A
s
v
p
i
no
@
c
m
g
.
e
t
e
c
s
a
.c
u
Progra
m
ación
e
xtr
e
m
a
e
np o c o s
m
i n u t o s :
planifica
n
do la tra
n
sició
n
42
Tono Revista Técnic
a
de l
a
Empres
a
de Telecomunic
a
ciones de Cub
a
S.A.
P
l
a
n
e
a
m
i
e
n
t
o
de
l
J
u
e
g
o
El
P
laneamiento del Juego —
T
he
Planning Game— es la etapa
donde clientes y desarrolladores
con
s
truyen un plan inicial para el
de
s
arrollo del proyecto y en la
medida que este avanza, se refina
ha
s
ta
s
u culminación. El proceso
de planificación puede verse como
un juego, donde el cliente y los
de
s
arrolladores son los jugado-
re
s
; las fichas, pequeños requi-
s
ito
s
escritos sobre tarjetas, y una
toda
s
e
s
tas per
s
ona
s
y la
s
lleva
juntas al éxito.
En
s
u libro “Ext
r
eme P
r
og
r
am-
mingExplained:Emb
r
acethe
Change”, Kent Beck
s
ubraya lo
s
valore
s
fundamentale
s
de la
P
ro-
gramación Extrema. E
s
to
s
valore
s
pueden
s
er resumido
s
de la
s
i-
guiente forma:
1. Comunicació
n
: no puede
exi
s
tir un equipo de de
s
a-
rrollo exito
s
o
s
in la pre
s
encia
de una buena comunicación
entre su
s
miembro
s
. La
s
u-
pervisión debe concentrar
s
e
meno
s
en decirle a la
s
per-
sona
s
qué hacer, y má
s
en
potenciar la comunicación
para lograr que la
s
per
s
ona
s
lleguen a re
s
pue
s
ta
s
creati-
vas por ello
s
mi
s
mo
s
. El
modelo de trabajo de la
P
ro-
gramación Extrema impo
s
i-
bilita la exi
s
tencia de una
comunicación pobre.
2. Retroalime
n
tació
n
: para
lograr el éxito e
s
nece
s
aria
una retroalimentación con
s
-
tante que mantenga al equipo
informado de la
s
ituación
actual en la que
s
e encuentra.
Una buena retroalimentación
logrará que cliente
s
y de
s
a-
rrolladore
s
avancen todo el
tiempo por el camino de la
victoria.
3. Simplici
d
a
d
: do
s
de lo
s
principio
s
má
s
citado
s
de la
Programación Extrema
s
on
“Haga la co
s
a má
s
s
imple que
posiblemente funcione” —Do
the
s
implest thing that could
4. Coraje: si el equipo de
proyecto no se mueve con la
máxima velocidad, el trabajo
fallará sin remedio alguno. El
coraje es un arma fundamen-
tal en la
P
rogramación Extre-
ma para hacer frente a situa-
ciones difíciles donde una
decisión puede significar el
éxito o el fracaso del pro-
yecto.
Algo realmente impresionante de
X
P
e
s
que entre las prácticas que
propone hay poca novedad. Cada
uno de sus principios ha sido
utilizado y discutido durante mu-
cho tiempo; sin embargo, puestos
en conjunto, logran perfecta armo-
nía que hacen de la
P
rogramación
Extrema una disciplina organizada
que ofrece una vía para incre-
mentar velocidad y eficiencia en el
de
s
arrollo de software.
P
ara lograr entender qué es y
cómo hacer X
P
, debe prestarse
atención a cada una de las doce
prácticas de la
P
rogramación Ex-
trema.
la aplicación
s
in afectar el pro-po
s
sibly work— y “Usted noserie de movimientos válidos que
ducto final y el calendario pre-vaanecesitarlo”—
Y
ouincluyen cada una de la
s
respon-
visto.a
r
en’tgoingtoneeditsabilidades de los jugadores. La
Por otra parte, un de
s
arrollo de(YAGNI)—. La idea funda-planificación será realizada fre-
software exito
s
o e
s
el producto demental que se persigue concuentemente durante el proceso
un e
s
fuerzo de equipo, no
s
ola-e
s
tos principios es no mal-de desarrollo, permitirá que el
mente de su
s
de
s
arrolladore
s
,
s
inoga
s
tar esfuerzos con la adi-equipo de trabajo perfeccione su
también de
s
us directivo
s
y clien-ción de funcionalidad que noconcepción acerca del sistema, y
tes. XP e
s
un proce
s
o de de
s
a-
s
e necesitará en el productobrindará un excelente control al
rrollo de software
s
imple que une aplanificado.desarrollo de este.
P
r
u
eb
a
s
Las
P
ruebas —
T
esting— son
divididas en dos grupos durante la
aplicación de la
P
rogramación Ex-
trema; el primero de ellos es el que
comprende la escritura de pruebas
unitarias —
T
est Units—; el segun-
do es la escritura de pruebas de
aceptación —Acceptance
T
ests—.
Los desarrolladores escribirán las
pruebas unitarias en la medida que
escriban el código. El cliente escri-
birá las pruebas de aceptación
mientras que defina los requisitos
del sistema. Mantener un conjunto
de pruebas durante la construc-
ción del proyecto, y correrlas a
intervalos regulares para validar
los resultados obtenido
s
, asegu-
rará mantener la calidad esperada
del producto final.
P
r
o
g
r
a
m
a
c
i
ó
n
e
n
P
a
r
e
j
a
s
Una de las prácticas más discu-
tidas es la
P
rogramación en
P
arejas
—Pair Programming—. La produc-
ción de código en un proyecto con
el empleo de
P
rogramación Extrema
será realizada en parejas de desa-
rrolladores, los cuales compartirán
un mismo ordenador, monitor y
teclado.
P
odría parecer ineficiente
la utilización de dos programadores
en la realización de una misma tarea,
pero la realidad ha demostrado todo
lo contrario. Investigaciones rea-
lizadas en este campo demuestran
que dos programadores que traba-
jan en conjunto generan, en el mis-
mo espacio de tiempo, códigos de
mejor calidad que el producido
Ton
o
Revist
a
Técnic
a
de l
a
E
mpres
a
de Telecomunic
a
ciones de Cub
a
S.A.
43
R
e
f
a
c
t
o
r
i
z
a
c
i
ó
n
D
i
s
e
ñ
o
S
i
m
p
l
e
P
r
o
p
i
ed
a
d
C
o
l
e
c
t
i
v
a
de
l
C
ó
d
i
g
o
La Propiedad Colectiva del Código
—CollectiveCodeOwne
rs
hip
—
establece que cualquier miembro del
equipo de desarrollo tendrá la auto-
ridad y la capacidad de realizar
cambio
s
en el código del proyecto
para lograr
s
u mejoramiento. Cada
uno de los miembro
s
del equipo de
desarrollo rotará en la implemen-
tación de cada módulo, y logrará
una completa capacitación en todo
el producto. Cada de
s
arrollador
estará informado de la
s
modifica-
I
n
t
e
g
r
a
c
i
ó
n
C
o
n
t
i
nu
a
C
li
e
n
t
e
e
n
e
l
L
ug
a
r
E
n
t
r
e
g
a
s
P
eq
u
e
ñ
a
s
La
s
Entregas
P
equeñas —Small
Relea
s
e
s
— son la planificación y la
entrega de versiones estables y
funcionales del código del proyecto
de
s
pué
s
de culminar cada iteración,
de e
s
ta forma se logra una constante
retroalimentaciónporpartedel
cliente que ayude a mantener al
equipo de desarrollo al tanto de la
actividad proyectada. La entrega de
cuando se trabaja de forma
s
epa-cione
s
realizadas en todas lasversionespequeñasconllevaal
rada.
s
eccione
s
implementadas.análisis más rápido y efectivo por
parte del cliente, y evita malen-
tendidos con los requisitos po
r
parte
de los desarrolladores. Además,
podrán tomarse decisiones que no
afecten o den al traste con el t
r
abajo
de varios días en caso de que el
resultado no satisfaga las necesi-
dades proyectadas.
40
H
o
r
a
s
a
l
a
S
e
m
a
n
a
La Refactorización —Refacto
r
ing
—
es el proce
s
o de cambiar un
s
i
s
tema
de software de modo que el compor-
tamiento externo del código no
s
ea
alterado. En la aplicación de la
Programación Extrema, lo
s
miem-
bros del equipo de de
s
arrollo refac-
torizarán el código del proyecto
La Integración Continua—Con-
tinuo
s
Integration— estipula que
deberán realizarse cada día varias
integraciones del código del pro-
yecto. E
s
ta práctica evitará la
mayor parte de los problemas que
ocurren cuando un equipo integra
el trabajo pasado largo tiempo, y
de e
s
ta forma corregirlos inme-
diatamente.
siempre y cuando sea nece
s
ario. Elcomienzan los errores sin queLas 40 Horas a la
S
emana —40-
principal objetivo de la refacto-nadie
s
epa dónde y por qué. Lahours Week— establecen el tiempo
rización en XP es lograr un códigoIntegración Continua mantendrá alpromedio de trabajo del equipo de
más simple y legible, para eliminarequipo de desarrollo moviéndose,desarrollo del proyecto en 5 días
cualquier ve
s
tigio de duplicado
s
. Lapara evitar congelamientos dehábiles. Una persona promedio,
refactorización eliminará fuente
s
código y una gran fuente poten-independientemente de su capaci-
potenciale
s
de errore
s
y di
s
minuirácial de errores. Una integracióndad laboral, disminuye su rendi-
posible
s
problema
s
a futuro
s
de
s
a-frecuente aumentará la posibilidadmiento pasadas las 8 horas diarias
rrolladores guiándolo
s
en la direc-de de
s
cubrir desde el principio losde trabajo. Esto provoca que, para-
ción correcta.errore
s
que surjan en el proyecto ylelamente, disminuya la calidad del
código producido. Una sobredosis
en el tiempo de desarrollo no es la
respuesta adecuada a los problemas
en un proyecto, sino que es un
síntoma de un problema aún más
grave. La correcta dosificación del
tiempo logrará que los recursos
humanos se comporten a su máxima
capacidad y mantengan sin irrita-
ciones la calidad del producto final.
E
st
á
n
d
a
r
e
s
de
C
ó
d
i
g
o
El Di
s
eño Simple —Simple De-
sign— establece que
s
iempre deben
ser realizadas las tarea
s
de la forma
más
s
imple posible.
P
ara lograr un
diseño
s
imple, nunca
s
erán adicio-
nadas caracterí
s
tica
s
funcionale
s
que no formen parte de la propue
s
ta
de requi
s
ito
s
analizada en la plani-
ficación del juego. En la
P
rogra-
mación Extrema un buen di
s
eño e
s
El Cliente en el Lugar —On-site
Cu
s
tome
r
— establece que para lo-
grar el funcionamiento óptimo, el
equipo de
P
rogramación Extrema
deberá contar con el cliente a su
lado durante todo el proceso de
planificación para aclarar posibles
duda
s
y tomar decisiones críticas en
ción. Una comunicación cara a cara
entre el cliente y el desarrollador
elimina malentendidos, así como
po
s
ible
s
cuellos de botella que
retra
s
en el desarrollo del proyecto.
esencial para asegurar el éxito.la
s
regla
s
de negocio de la aplica-La aplicación de Estánda
r
es de
Código —Coding Standards— lo-
gra un ambiente familiar en el
código entre cada uno de los miem-
bros del equipo de desarrollo.
S
in la
aplicación de estos será muy difícil
la realización de refactorizaciones,
construcción de pruebas unitarias y
la comprensión por parte de otros
programadores. El objetivo de esta
práctica es lograr de cada pieza de
código un espejo de sus vecinas en
cuanto a claridad y simplicidad, sin
importar la persona que la realice.
M
e
t
á
f
o
r
a
La Metáfora —Metaphor— es
análoga o lo que la mayoría de las
44
Tono Revista Técnic
a
de l
a
Empres
a
de Telecomunic
a
ciones de Cub
a
S.A.
L
a
T
r
a
n
s
i
c
i
ó
n
La introducción de la
P
rograma-
ción Extrema en nue
s
tra empre
s
a
de de
s
arrollo de
s
oftware
s
upone
un paso de avance en materia de
ingeniería, pero introduce dificul-
tade
s
con las que lo
s
directivo
s
encargados de equipo
s
de pro-
yecto tendrán que lidiar. X
P
ha
polarizado la indu
s
tria de de
s
arro-
llo de software, e
s
difícil encontrar
desarrolladore
s
neutrale
s
s
obre
tema
s
relacionado
s
con la
P
rogra-
mación Extrema, debido a que
mucha
s
de su
s
práctica
s
difieren
de las forma
s
tradicionale
s
de
programación.
P
or ejemplo, la pro-
gramación en pareja
s
y la intro-
ducción de prueba
s
unitaria
s
, en
la medida en que
s
e de
s
arrolla el
sistema, son práctica
s
que lo
s
desarrolladore
s
quetratande
aplicar XP comentan la
s
dificul-
tade
s
de llevarla
s
a cabo.
El éxito en la tran
s
ición hacia el
de
s
arrollo de software guiado por la
Programación Extrema
s
e encuentra
centrado en tres concepto
s
funda-
mentales: método
s
, aprendizaje y
dirección. El primero de ello
s
,
s
e
refiere a
s
eguir lo
s
principio
s
y
e
s
trategias de la
P
rogramación Ex-
namiento del
s
i
s
tema a travé
s
de
una evocativa y
s
imple de
s
crip-
ción. Si no
s
e encuentra una va-
riante para la con
s
trucción de la
metáfora de un proyecto, el equipo
de XP usará un
s
i
s
tema de nom-
bre
s
comune
s
para a
s
egurar
s
e de
que cada miembro comprende el
modo de funcionamiento general
del
s
istema.
nuevos conocimientos que propi-
cien el desarrollo; y el tercero
re
s
alta la necesidad de un líder en el
equipo que vea el proceso como un
todo y llame la atención de los
miembros para impedir el desvío
por caminos errados.
Elhombretemeequivocarse.
Cuando no conoce, prefiere mante-
ner
s
e al margen; pero la equivoca-
ción e
s
esencial para el aprendizaje.
El error más grande que se comete
e
s
temer constantemente a equivo-
car
s
e. Este comportamiento hace
que los desarrolladores estén en
con
s
tante defensiva, sin tener el
coraje para probar otras alternativas
y
s
er creativos y, de ese modo, no
funciona X
P
.
P
ara la utilización de
X
P
s
implemente deben aplicarse sus
principios.Contarconbuenos
comunicadores y tener a los miem-
bro
s
del equipo en el lugar correcto
e
s
fundamental para la aplicación de
la
P
rogramación Extrema. Con la
ayuda del personal capacitado, X
P
debe convertirse es un gran desafío
para, poco a poco, llegar a aplicar
s
u
s
prácticas al más alto nivel.
P
or último, y posiblemente lo más
importante, contar con un equipo de
per
s
onas que se relacionen bien en-
tre
s
í, ayudará en gran medida a la
adopción de las prácticas más
difíciles de X
P
. La
P
rogramación Ex-
trema es una forma social de
de
s
arrollo de software. Gran parte
de
s
u éxito se encuentra concen-
trado en las personas relacionadas
con el producto que se pretende
de
s
arrollar. Todo esto es importante
para la creación de una cultura
donde los miembros del equipo no
metodología
s
llaman arquitectura.trema. El segundo hace referencia asientan temor de ayudarse unos a
Brindará al equipo de de
s
arrollola necesidad de dejar a un lado losotros para realizar las tareas que
una vi
s
ión común del funcio-viejo
s
conceptos y salir en busca delleven el proyecto al éxito final.
¿D
ó
n
de
e
n
c
o
n
t
r
a
r
m
á
s
i
n
f
o
r
m
a
c
i
ó
n
?
B
i
b
li
o
g
r
a
f
í
a
A
u
e
r
,
K
e
n
;
M
ill
e
r
,
R
o
y
.
E
x
t
r
eme
P
r
o
g
r
a
mm
i
n
g
A
pp
li
ed
.
U
S
A
:
A
dd
i
s
o
n
-
W
e
s
l
e
y
P
r
of
e
ss
io
n
a
l
,
2002.
B
e
c
k
,
K
e
n
t
.
E
x
t
r
eme
P
r
o
g
r
a
mm
i
n
g
E
x
p
l
a
i
n
ed
:
E
m
b
r
a
c
e
t
h
e
C
h
a
n
g
e
.
U
S
A
:
A
dd
i
s
o
n
-
W
e
s
l
e
y
P
r
of
e
ss
io
n
a
l
,
1999.
Colli
n
s
,
C
h
r
i
s
;
M
ill
e
r
,
R
o
y
.
“
X
P
D
i
s
till
e
d
”
.
D
i
s
p
o
n
i
b
l
e
e
n
:
h
tt
p
:
//
www
.
r
ol
em
o
d
e
l
s
oftw
a
r
e
.
c
o
m
/
m
o
r
e
a
b
o
u
t
u
s
/
p
u
b
li
c
a
tio
n
s
/
x
pd
i
s
till
e
d
.
p
h
p
.
2001
(
Co
n
s
u
lt
a
d
o
:
10
-
11
-
04
)
.
F
owl
e
r
,
M
a
r
ti
n
.
“
T
h
e
N
e
w
M
e
t
h
o
d
olo
g
y
”
(
j
u
lio
,
2000
)
.
D
i
s
p
o
n
i
b
l
e
e
n
:
h
tt
p
:
//
www
.
m
a
r
ti
n
fowl
e
r
.
c
o
m
/
a
r
ti
c
l
e
s
/
n
e
w
me
t
h
o
d
olo
g
y
.
h
t
m
l
(
Co
n
s
u
lt
a
d
o
:
5
-
11
-
04
)
.
J
e
ff
r
i
e
s
,
R
o
n
.
“
W
h
a
t i
s
E
x
t
r
eme
P
r
o
g
r
a
mm
i
n
g
?
”
(n
o
v
i
em
b
r
e
,
2001
)
.
D
i
s
p
o
n
i
b
l
e
e
n
:
h
tt
p
:
//
www
.
x
p
r
o
g
r
a
mm
i
n
g
.
c
o
m
/
x
p
m
a
g
/
w
h
a
ti
s
x
p
.
h
t
m
(
Co
n
s
u
lt
a
d
o
:
6
-
11
-
04
)
.
Acerca de X
P
, varios autores han
escrito diferentes artículo
s
y libros.
Estos materiales, conjuntamente con
algunos sitios en Internet, son de vi-
tal importancia para la comprensión
del proceso de desarrollo de soft-
ware con el empleo de metodologías
ágiles, específicamente, con la
P
ro-
gramación Extrema.
Lograr un impulso en el desarrollo
actual de la producción de software
es responsabilidad de todo el per-
sonal involucrado en esta esfera
que cada día es más importante. A
menudo, las cosas pequeñas son las
que logran a largo plazo grandes
diferencias.