Modelo de Desarrollo Productivo
Edwind Richzendy Contreras Soto
[email protected]
Twitter: @Richzendy
Blog:
http://www.Richzendy.org
Esta presentación Online:
http://richzendy.org/docs/DesarrolloProductivo/
La universidad
Dice que libros leer
Te prepara para dormir menos
Te enseña que la tecnología es más rápida que la velocidad de aprobar un nuevo pensum
Te enseña que por más que estudies metodologías de desarrollo, la única que sirve es el pricipio de "Eudomar Santos"
Te enseña a pensar, pero no como aplicar los conocimientos
Te enseña a programar, no como programar mejor
La realidad de un proyecto de desarrollo de Software
Para ser productivo desarrollando se debe
Usar un buen framework
Usar un buen ide de desarrollo
Usar control de versiones de código
Usar metodologías ágiles de desarrollo
Reutilizar código y librerías de otros (Software Libre)
Usar herramientas que permitan documentar fácilmente
Usar herramientas de diseño de prototipos de interface
Saber trabajar en equipo
Cual es un buen framework?
Aquel que tiene la comunidad mas grande, incluso en tu idioma (Software Libre)
Aquel que tiene mejor documentación, incluso en tu idioma
Aquel que está basado en estandares, tiene pruebas funcionales, unitarias y soporte a largo plazo
Aquel cuyo ORM soporte la mayor cantidad de bases de datos
PHP:
symfony
,
cake
,
zend
python:
Django
,
TurboGears
perl:
catalyst
javascript:
JQuery
,
Mootools
,
ExtJs
java:
spring
Cual es un buen ide de desarrollo?
Aquel que soporta más lenguajes de programación
Aquel que tiene autocompletado de código
Aquel que tiene la comunidad más grande y más gente usa
Aquel que tiene más plugines, sobre todo para versionamiento de código
Aquel que maneje el concepto de proyectos y memorize el ambiente de trabajo
Aquel que tenga autobuscado de clases y funciones, indentado, resaltado y debug de código
IDES:
eclipse
,
netbeans
,
Aptana Studio
,
gedit + plugins (bajos recursos
,
Kdevelop
,
Anjuta
Versionadores de código?
Facilitan el trabajo en equipo
Llevar el control de cambios en el código fuente (historial) y versiones, regresar cambios
Versionadores de código libres:
cvs
,
subversion
,
git
,
mercurial
Metodologías ágiles de desarrollo?
Algunos métodos ágiles de desarrollo de software:
Agile Unified Process (AUP)
,
Rational Unified Process (RUP)
Feature Driven Development (FDD)
,
Lean Software Development (LSD).
Scrum
,
Programación Extrema (XP)
,
Open Unified Process (OpenUP).
Método desarrollo de sistemas dinámicos (DSDM).
Reutilizar código y librerías de otros, ¿por qué?
Antes de escribir código, el revisar si ya existe algo parecido ahorra tiempo
Muchos programas pequeños pueden hacer grandes sistemas
No hay que reinventar la rueda, NO,NO,NO.
Un gran sistema, dividido en pequeñas partes es más fácil de mantener
Perl tiene
CPAN
, php tiene
pear
, Python tiene
PyPi
.
Así como tomas código de otros, no se te olvide compartir el tuyo :-)
Usar herramientas que permitan documentar fácilmente!
El documentar puede ser lo más tedioso de un proyecto
Hacer diagramas de bases de datos ahora es fácil! (
Mysql Workbench
)
Usar wikis para documentar colaborativamente, puede ayudar
moin moin
Cada lenguaje serio tiene librerías para facilitar la documentación:
javadoc
,
phpdoc
,
Pydoc
,
POD
Wiki Vs Correo
Herramientas de diseño de prototipos de interface (mockups)
Permiten comunicarse efectivamente con el cliente antes de escribir código
Facilita la planificación del desarrollo al establer un plan coherente de trabajo
Anticipa omisiones en los requerimientos
Aplicaciones:
Evolous Pencil
-
↓
,
lunzi (web)
.
Preguntas?
FIN!
Muchas gracias por su asistencia y su tiempo.