Características, ventajas y desventajas de PSP

* Es una metodología de la Ingeniería de Software con fundamentos de CMMI
* Esta orientado hacia la producción de software de calidad
* Ayuda a los procesos de estimación, planeación y desarrollo de software.
* Esta enfocado en mantener una mejora continua
* Se puede implementar junto con los modelos de calidad TSP y CMMI
* Ayuda a medir la mejora.
* Involucra actividades de revisión e inspección.
* Esta diseñado para uso individual.
* Se combinan actividades de administración de proyectos, ingeniería de software y calidad.

Ventajas.

* Estimación mas precisa de tiempos, costos y recursos.
* Cumplir con los compromisos.
* Productividad en aumento.
* Localización de los defectos desde fases iniciales.
* Mejora los tiempos del ciclo de vida
* Reduce costos
* Facilita el seguimiento a procesos.

Desventajas.

* Puede tornarse un ambiente burocrático ya que la implementación sugiere mas documentación.
* La metodología es muy precisa, puede propiciar la exageración en su aplicación.
* Implementar esta metodología puede consumir mucho tiempo extra.
* Los desarrolladores al documentar sus tiempos se sentirán expuestos.

Antecedentes de PSP y su relación con TSP y CMMI

El Proceso Personal de Software (por sus siglas en inglés), es una disciplina diseñada por el ingeniero de software, Whatts Humphrey en los años 90.

Para poder describir que es el PSP, es necesario destacar sus orígenes y también analizar como es que, en conjunto con TSP Y CMMI, forman una disciplina organizacional que permite realizar software en menor tiempo, optimizar costos y sobre todo con calidad.
El CMMI fue desarrollado por el Software Engineering Institute (SEI) y es basado en la mejora continua de los procesos. Tiene la finalidad de incrementar la capacidad administrativa de las organizaciones para controlar los costos, tiempos y productividad en general. Por otro lado, el TSP tiene como objetivo capacitar a los ingenieros de software en el desarrollo de equipos y llegar en menos tiempo a niveles altos de desempeño por medio de la práctica del proceso personal del software de cada uno de sus integrantes, el cual; nace como un acercamiento estructurado y disciplinado para el desarrollo de software proporcionando al ingeniero un conjunto de formularios, guías y estándares que les ayudan a estimar y planificar su trabajo. De esta manera es factible cumplir con todos los niveles de CMMI.

¿Cual fue el motivo por el cual fue necesario crear el proceso personal de software?

La respuesta es sencilla, los desarrolladores no siempre estaban siguiendo una metodología de trabajo, esto ocasionaba que los resultados que lograban eran diferentes, aunado a que había un descontrol en la cantidad de errores, validaciones, duración del proyecto. Whatts Humphrey, miembro del Instituto de Ingeniería de Software (SEI), de la Universidad de Carnegie Mellon detectó estos errores con sus propios alumnos y se dio cuenta que eran los mismos errores que se presentaban en la industria. Es por eso que el señor Humphrey desarrollo una serie de disciplinas que posteriormente darían pie al PSP.

NO HAY MEJOR MANERA DE HACER LAS COSAS QUE MIDIENDO.

PSP pretende mejorar las prácticas del desarrollo de software y la calidad del mismo. En esta disciplina se generan las métricas de lineas de código, lineas de código por hora, los tiempos de desarrollo, etc.

Un poco de historia.

Después de la Segunda guerra mundial, las organizaciones dedicadas al desarrollo de software utilizaban sus procesos basados en “probar y corregir”, se dieron cuenta que era muy costoso tanto en tiempo como en recursos. 1976, se comenzaron a incluir prácticas de inspecciones al software y posteriormente en 1987, el señor Humphrey, aplicó su Modelo de Capacidad de Madures (CMM). En 1995, se dieron los primeros cursos de PSP en la universidad de Carneige Mellon. En 1997, lanzó el libro An introduction to the personal software process. (Garcia, Y. 2010. Pag. 1)

Adobe brackets

Sin duda este editor de textos a superado mi expectativas. Aunque existen numerosos editores de textos utilizados para el desarrollo de software como sublime Text (Disponible para Windows, Mac y Linux), Atom (Muy parecido a Sublime Text), Light Table, VIM, etc. Brackets tiene muchas características que al usarlas me han gustado bastante.
Cuando usaba sublime text, tenia la fastidiosa necesidad de actualizar mi navegador cada vez que quería revisar algún cambio en mi código. Aparentemente es una tarea fácil pero después de 100 cambios se vuelve tediosa. Es por eso que tenia que hacer uso de herramientas adicionales como el compilador Prepros. (Una excelente herramienta que vale la pena hacer todo un artículo de esta).
Brackets cuenta con una herramienta incluida que permite una vista previa dinámica. Esto permite tener una visualización inmediata de los cambios que se vayan generando en nuestro código, sin tener que actualizar nuestro navegador para visualizar los cambios. ¿Genial no?.

Hablemos de sus extensiones.

Actualmente son pocas las extensiones que he probado con este gran editor de textos, yo podría definir que estas, son las esenciales que todo programador debe de tener. Además cabe resaltar que no existe un gran diferencial entre todos los editores antes mencionados ya que por lo general todos cuentan con extensiones o plugins que facilitan el desarrollo del código, haciendo mas interesante y productiva la experiencia del desarrollador.
Las extensiones que he probado y me han encantado son las siguientes:

Emmet
Beautify
Autoprefixer
Tree Icons (Mi favorita)

Seguramente hay muchas mas extensiones que hasta ahora me he perdido, sin embargo las antes mencionadas me han servido mucho. Si tienes alguna otra recomendación, por favor déjame un mensaje y con mucho gusto estaré probando sus propuestas.

De manera resumida, creo que el único motivo por el cual he decidido usar Adobe brackets es por la facilidad las vistas previas dinámicas. Creo que hasta ahora es el diferencial que para mi me ha funcionado bastante a diferencia de los demás editores.