PROCESO PERSONAL DE SOFTWARE EN LA FORMACION

Anuncio
PROCESO PERSONAL DE SOFTWARE EN LA FORMACION DEL PROFESIONAL INFORMATICO
MSc. Dario E. Soto Duran
Tecnológico de Antioquia
Calle 78B No. 72A – 220, Medellín, Colombia
Tel.: (034) 4547039
E-mail: [email protected]
MSc. Adriana X. Reyes Gamboa
Politécnico Colombiano Jaime Isaza Cadavid
Carrera 48 N° 7-151, Medellín, Colombia
Tel.: (034) 3197900 Ext. 445
E-mail: [email protected]
RESUMEN
Existe en los estudiantes de programas informáticos un
desconocimiento en la gestión del tiempo, la
planificación y la gestión de la calidad en los proyectos
de desarrollo de software, y esto se puede evitar si se
aplica el Proceso de Software Personal (PSP) el cual
contribuye a alcanzar disciplina en el trabajo individual.
Este artículo propone un conjunto de consideraciones
para introducir las prácticas de PSP, de forma paulatina e
incremental en la formación del profesional en la
universidad; con el objetivo de crear las bases para
introducir métodos disciplinados de trabajo en equipo y
cumplir con los requerimientos de la industria.
Se plantean algunas estrategias para su implementación
en el ámbito de la Universidad desde el área de
conocimiento de la algoritmia y la programación.
Palabras claves: PSP, Ingeniería de Software, Proceso,
Calidad y Gestión.
1. INTRODUCION
El software se ha convertido en un tema relevante en la
sociedad mundial. Todos parecen necesitar mejores
software en menos tiempo y a menor costo, los
programas se vuelven cada vez más complejos en todos
los aspectos del ciclo de vida del software. Los métodos
intuitivos de desarrollo de software que se usan
actualmente son, básicamente, aquellos que los propios
individuos artesanalmente siguen, los cuales sólo
servirán mientras la sociedad pueda tolerar la falta de
predicción que ellos acarrean. Por tal motivo el
desarrollo de software debe ser un proceso definido,
repetible, en lugar de una actividad ad hoc reinventada
para cada nuevo proyecto.
El ciclo de vida es algo que tiene en común cada
software que se desarrolla y es algo por lo que
inevitablemente deben de pasar [1]. El software
desarrollado o que se desarrollará tiene normalmente el
siguiente ciclo de vida:
Análisis de requerimientos, Diseño, Programación,
Pruebas, Implantación, Operación.
En algunas metodologías y procedimientos este ciclo de
vida llega a sufrir algunos cambios, sin embargo en
esencia ha sido, sigue y seguirá siendo lo mismo. Los
programadores deben de tener en cuenta que este ciclo
de vida requiere de un control absoluto en cada paso que
se dé. Sin embargo la cultura de desarrollo de software
en nuestro país no está consciente de este aspecto.
En la actualidad muchos programadores tienen la idea
errónea de que llevar un registro representa una pérdida
de tiempo muy grande y que por lo tanto es innecesario
realizar esta tarea. Ha llegado a observarse que cuando se
desarrollan programas pequeños y que no se lleva un
registro, se resuelven de manera más rápida que si se
llevara éste. Sin embargo, puede que exista una mayor
rapidez de desarrollo pero la calidad resulta ser menor
así como la eficiencia y eficacia del programa
desarrollado. Por lo tanto no cubre con los máximos
requerimientos del ciclo de vida. También es cierto que
el próximo programa que se desarrolle no contará con
una estimación de todos los parámetros que se
involucran en la primera etapa de desarrollo. Esto
permite deducir que es mejor desarrollar programas con
una metodología o un modelo bien definido, y así
incrementar la calidad en la construcción de productos
de software, implementando la aplicación de mejores
prácticas a nivel individual, como la metodología PSP
que se deriva del Modelo de capacidad y madurez,
ambos desarrollados por Watts S. Humphrey en el
Instituto de Ingeniería del Software SEI. Partiendo de la
necesidad de entregar productos de software con alto
nivel de calidad, es evidente garantizar que los procesos
que conlleva a estos desarrollos deben surgir de un
proceso maduro a nivel personal como es la
planificación, y ejecución de acuerdo con dicho plan.
Los resultados serán productos de alta calidad ajustados
a un presupuesto y a unos plazos.
Para lograr este objetivo es necesario articular la
educación tecnológica y profesional con estándares
reconocidos a nivel mundial, para de esta forma lograr
consolidar una cultura de calidad en los procesos
asociados al desarrollo del software. En la mayoría de las
profesiones el trabajo competente requiere el uso de
prácticas establecidas, planes y procedimientos que traen
orden y eficiencia a cualquier trabajo y permite a los
trabajadores concentrarse en producir productos de la
más alta calidad.
2. PSP: PROCESO PERSONAL DE SOFTWARE
El proceso personal de software (PSP, Personal Software
Process) es un proceso de auto mejoramiento diseñado
para ayudar a controlar, administrar y mejorar la forma
en que se trabaja individualmente. Está estructurado por
formularios, guías y procedimientos para desarrollar
software. Si es usado apropiadamente, brinda los datos
históricos necesarios para trabajar mejor y lograr que los
elementos rutinarios del trabajo sean más predecibles y
eficientes [2].La disciplina del PSP provee un marco
estructurado para desarrollar habilidades personales y
métodos que se necesitarán más adelante para ir forjando
al profesional informático. Es importante que la calidad
del software desarrollado abarque hasta el más mínimo
detalle, por muy pequeño que éste sea, ya que si no se
hace así, puede dañar el sistema entero.
El Proceso Personal de Software, PSP, indica a los
profesionales de software cómo:
•
Administrar la calidad de los proyectos de
desarrollo de software.
•
Reducir defectos en los productos.
•
Estimar y planear el trabajo.
PSP, fue diseñado para ayudar al profesional informático
a hacer bien el trabajo, aplicar métodos avanzados de
ingeniería en su labor diaria, a utilizar métodos
detallados de planificación y estimación y controlar
rendimientos frente a los tiempos planeados[3]. PSP es
disciplina del trabajo con alta calidad. El trabajo del
profesional informático según PSP, se puede resumir en
planificar el trabajo, hacer el trabajo de acuerdo al plan y
producir productos de calidad.
Principios de PSP
El diseño de PSP se basa en los siguientes principios de
planeación y de calidad. [4]
•
•
•
Cada ingeniero es esencialmente diferente; para ser
más precisos, los ingenieros deben planear su
trabajo y basar sus planes en sus propios datos
personales.
Para mejorar constantemente su funcionamiento, los
ingenieros deben utilizar personalmente procesos
bien definidos y medidos.
Para desarrollar productos de calidad, los ingenieros
deben sentirse personalmente comprometidos con la
calidad de sus productos.
•
•
•
Cuesta menos encontrar y arreglar errores en la
etapa inicial del proyecto que encontrarlos en las
etapas subsecuentes.
Es más eficiente prevenir defectos que encontrarlos
y arreglarlos.
La manera correcta de hacer las cosas es siempre la
manera más rápida y más barata de hacer un trabajo.
Para hacer un trabajo de ingeniería de software de la
manera correcta, los ingenieros deben planear de la
mejor manera su trabajo antes de comenzarlo y deben
utilizar un proceso bien definido para realizar la
planeación del trabajo.
Para que los desarrolladores lleguen a entender su
funcionamiento de manera personal, deben medir el
tiempo que pasan en cada proceso, los defectos que
inyectan y remueven de cada proyecto y finalmente
medir los diferentes tamaños de los productos que llegan
a producir.
Para producir constantemente productos de calidad, los
ingenieros deben planear, medir y rastrear
constantemente la calidad del producto y deben centrarse
en la calidad desde el principio de un trabajo.
Finalmente, deben analizar los resultados de cada trabajo
y utilizar estos resultados para mejorar sus procesos
personales.
Niveles de PSP
PSP tiene un marco de proceso de evolución similar al
que tiene CMMI. El Instituto de Ingeniería del Software
(SEI) ha desarrollado el Proceso Personal del Software
para definir y reparar la holgura que existe entre el
modelo CMMI y el individuo. Por lo tanto, es ideal
utilizarlo junto con CMMI, pero no es obligatorio, ya
que es un proceso y no un modelo como lo es CMMI. [5]
Para desarrollar software con calidad, cada componente
individual también debe contar con procesos definidos
de calidad. La estrategia total de PSP es cerciorarse de
que todos los componentes individuales se desarrollen
con calidad. PSP logra esto proporcionando un marco de
proceso personal ya definido, que el programador puede
utilizar. Este marco es:
•
Desarrollar un plan para cada proyecto y/o
componente.
•
Registrar su tiempo de desarrollo.
•
Registrar sus defectos
•
Conservar sus datos en informes del proyecto
•
Utilizar sus datos para planear los proyectos y/o los
componentes futuros.
•
Analizar sus datos para desarrollar sus procesos con
más calidad para mejorar su desempeño.
En la figura 1 se muestra un diagrama que contiene todos
los niveles de PSP. Asimismo, se muestra que cada nivel
cuenta con sus propios requerimientos pertenecientes
únicamente a PSP.
A nivel académico, la conducta del educando frente al
proceso de software debe ser producto de una
planificación madura, que permita el cumplimiento de
compromisos inicialmente en el ámbito educativo, pero
que trasciendan al plano laboral, como un hábito
permanente dentro del quehacer profesional.
4. COMO IMPLEMENTAR PSP EN EL PROCESO
DE FORMACION
PSP hace uso de un gran número de formatos los cuales
son muy útiles para que se haga un análisis a fondo del
programa que se desarrollará. Todo programa se
desarrolla siguiendo una serie de pasos definidos para ir
cumpliendo con los requerimientos del cliente de manera
uniforme y disciplinada [7].
Para ir cumpliendo con estos pasos es necesario tener en
cuenta lo siguiente:
FIGURA 1 Evolución en el proceso personal de software
(Humphrey 2000)
•
3. IMPACTO DE PSP EN EL CONTEXTO
EMPRESARIAL Y ACADEMICO
•
•
•
En la actualidad, las instituciones de educación superior
de nuestro país y especialmente en nuestra región,
ofrecen al mercado, egresados con actitudes y aptitudes
para desempeñarse en diversos campos de la Informática,
con tendencias principalmente en el desarrollo de
Software, pero a la vez, con grandes deficiencias para
enfrentar una globalización, a nivel de la metodología
adecuada para implementar la construcción de productos
de software que cumplan con niveles de calidad
aceptables.
Por esta razón, las empresas que ofrecen soluciones
informáticas consideran que los mayores problemas que
afectan el crecimiento del sector es la falta de aplicación
de estándares de calidad que autoregulen los procesos
asociados con el desarrollo de software [6]. Partiendo de
este planteamiento, es pertinente centrarnos en una
metodología que impacte a nivel individual y permita
crear una conciencia en la necesidad de adoptar otras
metodologías a nivel grupal y corporativo.
Siendo coherentes con las necesidades del sector
productivo y académico, la metodología PSP surge
como objeto de estudio, porque crea en el individuo un
trabajo disciplinado y tiene mecanismos que permiten
medir la efectividad del trabajo e identificar las
debilidades y fortalezas del proceso, como también
adquirir habilidades y métodos que aseguren la calidad
en el producto.
Este trabajo disciplinado que ofrece la metodología se
convierte en un plus para la internacionalización del
sector, garantizando que el talento humano que construye
soluciones informáticas tiene una fundamentación
enfocada en la optimización de los recursos y procesos
que implican la construcción de productos de software.
•
•
Determinar de qué forma se va a resolver el
programa.
Decidir cómo se va a "atacar" el problema.
Resolverlo.
Estar seguro de que se solucionó de la forma
correcta.
Arreglar los problemas que se han encontrado.
Entregar el resultado final.
Está claro que éstos pasos toman mucho tiempo, sin
embargo cuando está bien definido lo que se va a hacer,
sólo resta diligenciar los formatos hasta obtener el
resultado deseado. Está comprobado que procesos
automatizados ayudan a resolver el problema de la
manera más simple y fácil. Pero el problema central
reside en la cultura que se ha formado en los
profesionales informáticos de no seguir procesos
automatizados, por este motivo es que se hace necesario
atacar este problema desde su raíz y esto se busca con la
implementación de la metodología PSP, los métodos de
calidad lleva tiempo aprenderlos y practicarlos, pero
ayudaran al educando durante su carrera a mejorar
consistentemente la calidad del desarrollo.
El objetivo primordial es la ejercitación y el desarrollo,
por parte de los estudiantes, de los roles, habilidades y
funciones que deberán desplegar en su vida como
profesional de la informática. Es por ello que el
acercamiento a las técnicas de PSP se debe realizar de
forma vivencial en las diferentes asignaturas que cursan
en su formación, incrementando en complejidad de
forma paralela a la experiencia y conocimiento
adquiridos por cada uno de ellos.
Cuando el estudiante inicia su formación se busca que
identifique las diferentes fases del proceso las cuales son
planeación, desarrollo y post-proceso, al igual que vaya
incorporando en su conducta y trabajo diario el control
del tiempo, no solo de trabajos de programación sino de
la vida en general, que interioricen la necesidad de
gestionar el tiempo, los compromisos y las
programaciones como una vía para mejorar la calidad del
software. Con esta iniciación se pretende que los
estudiantes reconozcan el valor de registrar los datos de
esfuerzo y tamaño y que puedan usar estos datos en la
planificación de sus proyectos y analizar su efectividad
personal. Esto permite que a medida que se avanza en la
formación se interiorice esta conducta y se asuma como
un estilo de vida permitiendo lograr que la estimación de
trabajos futuros, tenga como principio la referencia de
los trabajos anteriores.
5. CONCLUSIONES
Para asegurar que los productos sean de calidad, los
procesos con los cuales se construyen, deben cumplir
con lineamientos de calidad. Estos lineamientos parten
de la disciplina y de la definición que debe tener un
proceso utilizado por un profesional informático.
Partiendo de esta necesidad la academia debe promover
prácticas probadas y aceptadas por la industria,
impartiéndolas en los currículos académicos de forma
incremental y paulatina con la enseñanza de los
conceptos de algoritmia y programación.
Estas prácticas solo son adoptadas por el profesional
informático cuando son aplicadas de forma periódica,
permitiendo evidenciar las ventajas que conlleva
trabajarlas.
Este marco de buenas prácticas provee datos que
permiten autoregular el desempeño del programador,
permitiendo asumir una conducta orientada al control y
el cumplimiento de compromisos resultado de las
tendencias de los datos.
Por estas razones los fundamentos de calidad del
software, no se deben impartir como una asignatura
aislada al final del currículo académico, sino por el
contrario, como una filosofía vivencial y transversal en
la construcción cualquier producto de software.
El proceso de desarrollo de software es, sin lugar a
dudas, uno de los elementos fundamentales para tal
propósito por lo que los estudiantes deben comenzar a
entenderla y aplicarla desde el inicio de la carrera.
REFERENCIAS
[1] P.I. Velasco, PSP: Una Alternativa para Mejorar los
Procesos del Software. LANIA. Año 12, Vol. 39 y 40.
2003.
[2] J.J. Peláez, El Modelo de Capacidad de Madurez y su
Enfoque al Proceso Personal de Software (PSP).
Capítulo 2. Proceso Personal de Software.
http://www.pue.udlap.mx/~tesis/lis/pelaez_r_jj/capitulo2
.pdf [13 Julio 2005].
[3] Carnegie Mellon University. What is PSP?
http://www.sei.cmu.edu/tsp/psp.html [24 Junio 2006]
[4] W.S. Humprey, Introducción al Proceso Software
Personal. Addison Wesley, 2005.
[5] SEI, Software Engineering Institute. Publications.
http://www.sei.cmu.edu/publications/publications.html
[09 Julio 2006].
[6] L. Chapela, Calidad y Competitividad en la Industria
del Software. Newsletters Primavera Verano, Año 12,
Vol. 39 y 40. 2003.
http://www.lania.mx/biblioteca/newsletters/2003primavera-verano/psp.html [24 Junio 2006]
[7] I. Jacobson, G. Booch, J. Rumbaugh. El Proceso
Unificado de Desarrollo de Software, Addison Wesley
Madrid, 2000.
Descargar